diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index 221cceac9..abba4a1ce 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -6965,11 +6965,22 @@ CLASS lcl_object_sicf IMPLEMENTATION. METHOD change_sicf. DATA: lt_icfhndlist TYPE icfhndlist, + lt_existing TYPE TABLE OF icfhandler, ls_icfserdesc TYPE icfserdesc. + FIELD-SYMBOLS: LIKE LINE OF lt_existing. + lt_icfhndlist = to_icfhndlist( it_icfhandler ). +* Do not add handlers if they already exist, it will make the below +* call to SAP standard code raise an exception + SELECT * FROM icfhandler INTO TABLE lt_existing + WHERE icf_name = is_icfservice-icf_name. + LOOP AT lt_existing ASSIGNING . + DELETE TABLE lt_icfhndlist FROM -icfhandler. + ENDLOOP. + MOVE-CORRESPONDING is_icfservice TO ls_icfserdesc. cl_icf_tree=>if_icf_tree~change_node(