PDA

Ver la Versión Completa : Registrar cambios


JuanFCalle
24/03/10, 19:31:34
Hola, tengo una tabla Z de parametros con una vista de actualizacion, y necesito registrar el usuario, la fecha y la hora en que se adiciona o cambia algun registro en esa tabla, como puedo hacer esto?

Alfredosite
24/03/10, 19:39:47
Uhh podrias activar en tu tabla Z la propiedad:
Para hacerlo debes ingresar a tu tabla via SE11, ingresas a Opciones Técnicas y activas el checkbox Grabar en log modificaciones de datos.

Grabar en log modificaciones de datos

Mediante el indicador de grabación en log de sistema podrá determinar si
se deben grabar en log modificaciones a los registros de una tabla. Si
la grabación en log de sistema está activada, todas las modificaciones
(mediante UPDATE o BORRAR) de cualquier registro existente efectuadas
por un usuario o por un programa de aplicación se grabarán en una tabla
log de la base de datos.

Nota: La activación de la grabación en log de sistema retarda los
accesos para modificar la tabla. En primer lugar para cada modificación
debe escribirse un registro en la tabla log. En segundo lugar, muchos
usuarios acceden paralelamente a la tabla log, de modo que pueden
producirse situaciones de bloqueo, a pesar de que los usuarios trabajen
en diferentes tablas de aplicación.

Podrá visualizar los logs existentes mediante la transacción historial
de tablas (SCU3).

Espero esto te sirva.

Pdta: Si ya generaste la vista de actualización te sugiero que renegeres la vista para que se ahaga efectiva esta propiedad.
ALfredo Pastor Avendaño:cool:

Marco
24/03/10, 20:54:41
mmmm.... Lo que se comenta del LOG de datos de modificaciones lo que va hacer es que en SAP te grabe que se esta haciendo para esa tabla Z. Es decir, te comentara que registros se borraron, cuales se modificaron y cuales se adicionaron, obviamente te dira el usuario y la hora de la modificacion. Esa opcion es un LOG de modificaciones de SAP.
--> No lo vas a tener en tu tabla Z

Ahora si quieres que en tu tabla Z, se graben esos datos de usuario, pues lo que hice es adicionar los campos a mi tabla Z, y modificar la funcion que me crea automaticamente SAP ;) Es una estafadita, en el PAI creo un MODULE y ahi le paso los valores a mi tabla. Lo compilo y LISTO!! Te graba esos campos en tu tabla Z.

:cool:
Saludos,

francesc
25/03/10, 07:29:56
Otra posible opción es a través de los eventos. Desde la tabla vas a utilidades-->generador de actualización de tabla. Una vez alli vas a entorno-->modificación-->eventos. Seleccionas el evento que te interese, en este caso el evento que hace referencia a justo antes de grabar y alli te permite crear un perform donde codificas que te grabe usuario (sy-uname) y fecha, hora etc lo que precises. Esto se efectuará de forma automática cada vez que se efectue alguna modificación de la tabla. Es otra idea.

JuanFCalle
25/03/10, 19:29:41
Muchas gracias, realmente me ayudaron!!!
Decidí hacer el código dentro del evento de creación de registros nuevos y adicionar automáticamente el usuario, la fecha y la hora.

Ahora quiero no permitir editar los campos de usuario, fecha y hora que le adicione a mi tabla Z, como puedo hacer esto?

Nuevamente muchas gracias

JuanFCalle
25/03/10, 19:46:57
Ya encontré como hacerlo, en de la vista de actualización logre editar la Dynpro que se muestra cuando uno entra a la transacción de la vista de actualización y seleccione como campo de solo salida los 3 campos, de esta forma el usuario no puede editar estos campos manualmente y serán adicionados automáticamente por el evento cuando se adicione un registro nuevo.

Marco
25/03/10, 22:33:27
Exacto. Al igual que te comente que modifiques el codigo y pases los valores, puedes habilitarlos como dices.
Pero si son campos de auditoria, esos campos NO se deberian modificar por el manetenimiento, ya que deben de registrar quien modifica ese registro, ya que pueden alterar el usuario, hora y eso muy delicado.
Revisalo.

Saludos,
:cool: