From 76b48e63a73fedc541c076518b9e9ac5400f0393 Mon Sep 17 00:00:00 2001 From: Thomas B <49310055+kwaishang@users.noreply.github.com> Date: Sun, 28 Apr 2019 10:09:49 +0200 Subject: [PATCH] RS_CUA_INTERNAL_WRITE another fix (#2656) * Update zcl_abapgit_objects_program.clas.abap Found a situation on my project where on pulling code from a zip file, the error RS_CUA_INTERNAL_WRITE sy-subrc = 2 popped. The error was due to the content of XML file exported : ACTCODE was containing an 'X' value for a single file. I corrected the file putting it blank and it worked. But it's a fastidious task so I fixed the method ZCL_ABAPGIT_OBJECTS_PROGRAM->auto_correct_cua_adm in order to fix this field also when it contains only an 'X'. Tested ok on my system so I propose this small change. * Update zcl_abapgit_objects_program.clas.abap * Update zcl_abapgit_objects_program.clas.abap Use the same check SAP does in form check_adm of include LSMPIF03 for the CUA values. --- .../zcl_abapgit_objects_program.clas.abap | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/objects/zcl_abapgit_objects_program.clas.abap b/src/objects/zcl_abapgit_objects_program.clas.abap index 119941d65..3f8c428c3 100644 --- a/src/objects/zcl_abapgit_objects_program.clas.abap +++ b/src/objects/zcl_abapgit_objects_program.clas.abap @@ -191,29 +191,37 @@ CLASS ZCL_ABAPGIT_OBJECTS_PROGRAM IMPLEMENTATION. METHOD auto_correct_cua_adm. " issue #1807 automatic correction of CUA interfaces saved incorrectly in the past (ADM was not saved in the XML) + + CONSTANTS: + lc_num_n_space TYPE string VALUE ' 0123456789', + lc_num_only TYPE string VALUE '0123456789'. + FIELD-SYMBOLS: TYPE rsmpe_pfk, TYPE rsmpe_act, TYPE rsmpe_men. - IF cs_adm IS NOT INITIAL. + IF cs_adm IS NOT INITIAL + AND ( cs_adm-actcode CO lc_num_n_space + AND cs_adm-mencode CO lc_num_n_space + AND cs_adm-pfkcode CO lc_num_n_space ). "Check performed in form check_adm of include LSMPIF03 RETURN. ENDIF. LOOP AT is_cua-act ASSIGNING . - IF -code+6(14) IS INITIAL AND -code(6) CO '0123456789'. + IF -code+6(14) IS INITIAL AND -code(6) CO lc_num_only. cs_adm-actcode = -code. ENDIF. ENDLOOP. LOOP AT is_cua-men ASSIGNING . - IF -code+6(14) IS INITIAL AND -code(6) CO '0123456789'. + IF -code+6(14) IS INITIAL AND -code(6) CO lc_num_only. cs_adm-mencode = -code. ENDIF. ENDLOOP. LOOP AT is_cua-pfk ASSIGNING . - IF -code+6(14) IS INITIAL AND -code(6) CO '0123456789'. + IF -code+6(14) IS INITIAL AND -code(6) CO lc_num_only. cs_adm-pfkcode = -code. ENDIF. ENDLOOP.