My custom code is :
REPORT zriupdate_iloa .
CONSTANTS cobj_order(2) TYPE c VALUE 'OR'.
CONSTANTS cobj_notf(2) TYPE c VALUE 'QM'.
CONSTANTS cusagetype_upd LIKE ibdu-usage_type VALUE '1'.
TABLES: ibdu.
DATA iibdu LIKE ibdu OCCURS 0 WITH HEADER LINE.
DATA aufnr LIKE aufk-aufnr.
DATA qmnum LIKE qmel-qmnum.
DATA okflag LIKE sy-datar.
DATA: lw_iibdu TYPE ibdu.
* Einlesen Vormerkungsdatei
SELECT * FROM ibdu INTO TABLE iibdu
WHERE usage_type = cusagetype_upd.
SORT iibdu BY objnr.
DELETE iibdu WHERE objnr+0(2) NE 'OR'.
TYPES:BEGIN OF ty_aufnr,
aufnr TYPE aufnr,
END OF ty_aufnr.
DATA: lt_aufnr TYPE TABLE OF ty_aufnr,
lt_aufnr_temp TYPE TABLE OF ty_aufnr,
lt_aufnr_final TYPE TABLE OF ty_aufnr,
lw_aufnr_temp TYPE ty_aufnr.
*
LOOP AT iibdu.
lw_aufnr_temp-aufnr = iibdu-objnr+2(12).
APPEND lw_aufnr_temp TO lt_aufnr_temp.
CLEAR:lw_aufnr_temp,iibdu.
ENDLOOP.
*lt_aufnr_temp[] = iibdu+2(12).
SELECT aufnr FROM aufk
INTO TABLE lt_aufnr
FOR ALL ENTRIES IN lt_aufnr_temp
WHERE aufnr = lt_aufnr_temp-aufnr
AND auart IN ('PM51','PM52','PM25')
AND werks = '0007'.
IF sy-subrc IS INITIAL.
SELECT aufnr FROM afih
INTO TABLE lt_aufnr_final
FOR ALL ENTRIES IN lt_aufnr
WHERE aufnr = lt_aufnr-aufnr
AND ingpr IN ('400','425','450').
IF sy-subrc IS INITIAL.
LOOP AT iibdu.
READ TABLE lt_aufnr_final TRANSPORTING NO FIELDS WITH KEY aufnr = iibdu-objnr+2(12).
IF sy-subrc IS NOT INITIAL.
DELETE iibdu WHERE objnr = iibdu-objnr.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT iibdu.
CASE iibdu-objnr(2).
WHEN cobj_order.
* Aufträge updaten
aufnr = iibdu-objnr+2(12).
CALL FUNCTION 'CO_IH_UPDATE_OBJECTDATA'
EXPORTING
order_number = aufnr
IMPORTING
flag_ok = okflag
EXCEPTIONS
error_message = 4. "572547
* When everthing is o.k. --> commit the update
IF NOT okflag = space
AND sy-subrc IS INITIAL. "572547
CALL FUNCTION 'ILOA_UPD_DELETE_MARKER' IN UPDATE TASK
EXPORTING
i_objnr = iibdu-objnr.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
WHEN cobj_notf.
* Meldungen updaten
qmnum = iibdu-objnr+2(12).
CALL FUNCTION 'IQS0_UPDATE_REFERENCE_OBJECT'
EXPORTING
i_qmnum = qmnum
EXCEPTIONS
OTHERS = 1.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'ILOA_UPD_DELETE_MARKER' IN UPDATE TASK
EXPORTING
i_objnr = iibdu-objnr.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDCASE.
ENDLOOP.