Ver Mensaje Individual
  #3  
Viejo 05/10/07, 10:53:29
Avatar de nenuke
nenuke nenuke is offline
Member
 
Fecha de Ingreso: sep 2006
Localización: Madrid
Mensajes: 87
Hola,

si te he entendido bien deberías hacer algo parecido a esto:

LOOP AT it_tab.
* Comprobamor la existencia del registro en la tabla del diccionario
SELECT COUNT( * )
FROM tabla_diccionario
WHERE campo1 = it_tab-campo1 AND
campo2 = it_tab-campo2 AND
campo3 = it_tab-campo3.
* Si existe lo modificas
IF sy-subrc EQ 0.
MODIFY tabla_diccionario FROM it_tab.
ENDIF.
ENDLOOP.

Ten en cuenta que este código es lento si la tabla interna tiene muchos registros.
La tabla interna debe tener cabecera para poder hacer el modify así.
El select tienes que hacerlo utilizando el mayor número de campos clave( si no todos) para evitar incoherencias a la hora de modificar.

Espero que te sirva.

Un saludo.
Responder Con Cita