Professional Documents
Culture Documents
Manejo Loop Actualiacion Tabla SM30
Manejo Loop Actualiacion Tabla SM30
LOOP AT TOTAL.
move-corresponding <VIM_TOTAL_STRUC> to lw_rec.
* Comprobar la acción
CASE <ACTION>.
WHEN 'D'. "Borrado
cdoc_upd_object = 'D'.
lw_new = lw_rec.
lw_old = lw_rec.
WHEN 'U'. "Update
cdoc_upd_object = 'U'.
lw_new = lw_rec.
SELECT SINGLE *
INTO lw_old
FROM zliber_solped
WHERE bukrs EQ lw_new-bukrs AND
centro EQ lw_new-centro AND
knttp EQ lw_new-knttp AND
kostl EQ lw_new-kostl.
IF sy-subrc NE 0.
CLEAR lw_old.
ENDIF.
WHEN 'N'. "Insert
cdoc_upd_object = 'I'.
CLEAR lw_old.
lw_new = lw_rec.
WHEN 'Y'. "Act + Borrado
cdoc_upd_object = 'D'.
lw_new = lw_rec.
lw_old = lw_rec.
WHEN 'M'. "Borrado
cdoc_upd_object = 'D'.
lw_new = lw_rec.
lw_old = lw_rec.
WHEN OTHERS.
CONTINUE.
ENDCASE.
aux = lw_rec.
* Construir la clave
CLEAR objectid.
objectid(4) = aux-bukrs.
objectid+4(4) = aux-centro.
objectid+8(1) = aux-knttp.
objectid+9(10) = aux-kostl.
CALL FUNCTION 'ZLIBER_SOLPED_WRITE_DOCUMENT'
EXPORTING
objectid = objectid
tcode = sy-tcode
utime = sy-uzeit
udate = sy-datum
username = sy-uname
* PLANNED_CHANGE_NUMBER = ' '
object_change_indicator = cdoc_upd_object
* PLANNED_OR_REAL_CHANGES = ' '
* NO_CHANGE_POINTERS = ' '
n_zliber_solped = lw_new
o_zliber_solped = lw_old
upd_zliber_solped = cdoc_upd_object.
ENDLOOP.
SY-SUBRC = 0.
ENDFORM. "zgrabar