PDA

Ver la Versión Completa : Campos que se insertan/modifican con MODIFY


Astaroth_SA
09/08/16, 11:29:24
¿Hay alguna forma de saber que registros se insertar y cuales se modifican cuando hacemos un MODIFY?

guillersevilla
09/08/16, 12:55:11
Pues deberías hacerlo manualmente, cargar el registro antes en tabla/estructura auxiliar, y luego volver a leer para comparar y ver cuales campos han cambiado y cuales no.

Anthony Martinez
09/08/16, 14:20:52
que yo sepa no hay forma, pero si deseas modificar tu tabla y las ves contabilizar tu cambio podrias hacer lo sgte:

loop at lt_tutabla assigning <fs_tutabla>.

if <fs_tutabla>-campo1 eq condicion.
modificar <fs_tutabla>-campo2
lv_contador = lvcontador + 1.
endif.

endloop.

lv_contador sera tu variable que te informe cuantos registros has modificado

Saludos

J e f f
09/08/16, 14:46:32
Pues deberías hacerlo manualmente, cargar el registro antes en tabla/estructura auxiliar, y luego volver a leer para comparar y ver cuales campos han cambiado y cuales no.

Buenas! Creo que esta es la mejor opción, ya que deberías hacer una foto antes y después del cambio, y luego comparar para ver que registros cambiaron, y cuales fueron creados. Si no puedes hacerlo en el programa donde esta el MODIFY, hazlo en uno Z.

Yo haría dos select a la tabla donde haces el MODIFY. Pondría un break en el medio entre ambos select. Luego correría el Z hasta el BREAK y guardaría todo en una tabla interna INICIAL.
Seguido, corro el MODIFY del programa X.
Por ultimo, continuo con el programa Z y guardo lo que levanto en otra tabla FINAL. Luego de tener ambas tablas, comparo y muestro por pantalla aquellos registros que cambiaron.
Puedes mostrar el antes, el después, y marcar aquellos registros que fueron creados.

Esto funcionaria bien para alguna tabla que no sea muy grande, ya que sino tendrías en memoria mucha cantidad de datos (o tal vez timeout), pero sirve para el propósito.

Astaroth_SA
10/08/16, 07:04:08
Gracias a todos por las ideas. Me han venido de lujo.