diff --git a/package.json b/package.json index f631ad031..af6492e02 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "devDependencies": { "@abaplint/cli": "^2.93.9", "@abaplint/database-sqlite": "^2.1.45", - "@abaplint/runtime": "^2.1.49", - "@abaplint/transpiler-cli": "^2.1.49", + "@abaplint/runtime": "^2.1.50", + "@abaplint/transpiler-cli": "^2.1.50", "abapmerge": "^0.14.7", "c8": "^7.12.0", "eslint": "^8.23.0" diff --git a/src/ui/zcl_abapgit_gui_page_data.clas.abap b/src/ui/zcl_abapgit_gui_page_data.clas.abap index 4092e7eac..d2c052a32 100644 --- a/src/ui/zcl_abapgit_gui_page_data.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_data.clas.abap @@ -160,7 +160,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DATA IMPLEMENTATION. DATA lo_structdescr TYPE REF TO cl_abap_structdescr. DATA lt_fields TYPE ddfields. DATA ls_field LIKE LINE OF lt_fields. - DATA lv_key TYPE string. + DATA lv_key TYPE c LENGTH 900. lv_key = iv_tabkey. lo_structdescr ?= cl_abap_typedescr=>describe_by_name( iv_table ). diff --git a/src/ui/zcl_abapgit_gui_page_data.clas.testclasses.abap b/src/ui/zcl_abapgit_gui_page_data.clas.testclasses.abap index b2955fb91..02c94083f 100644 --- a/src/ui/zcl_abapgit_gui_page_data.clas.testclasses.abap +++ b/src/ui/zcl_abapgit_gui_page_data.clas.testclasses.abap @@ -4,13 +4,16 @@ CLASS zcl_abapgit_gui_page_data DEFINITION LOCAL FRIENDS ltcl_test. CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL. PRIVATE SECTION. - METHODS concatenated_key_to_where FOR TESTING RAISING cx_static_check. + METHODS concatenated_key_to_where1 FOR TESTING RAISING cx_static_check. + METHODS concatenated_key_to_where2 FOR TESTING RAISING cx_static_check. + METHODS concatenated_key_to_where3 FOR TESTING RAISING cx_static_check. + METHODS concatenated_key_to_where4 FOR TESTING RAISING cx_static_check. ENDCLASS. CLASS ltcl_test IMPLEMENTATION. - METHOD concatenated_key_to_where. + METHOD concatenated_key_to_where1. DATA lv_where TYPE string. @@ -24,4 +27,46 @@ CLASS ltcl_test IMPLEMENTATION. ENDMETHOD. + METHOD concatenated_key_to_where2. + + DATA lv_where TYPE string. + + lv_where = zcl_abapgit_gui_page_data=>concatenated_key_to_where( + iv_table = 'T100' + iv_tabkey = 'ESHORT' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_where + exp = |sprsl = 'E' AND arbgb = 'SHORT' AND msgnr = ''| ). + + ENDMETHOD. + + METHOD concatenated_key_to_where3. + + DATA lv_where TYPE string. + + lv_where = zcl_abapgit_gui_page_data=>concatenated_key_to_where( + iv_table = 'T100' + iv_tabkey = 'ESHORT 001' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_where + exp = |sprsl = 'E' AND arbgb = 'SHORT' AND msgnr = '001'| ). + + ENDMETHOD. + + METHOD concatenated_key_to_where4. + + DATA lv_where TYPE string. + + lv_where = zcl_abapgit_gui_page_data=>concatenated_key_to_where( + iv_table = 'T100' + iv_tabkey = 'ESHORT 0' ). + + cl_abap_unit_assert=>assert_equals( + act = lv_where + exp = |sprsl = 'E' AND arbgb = 'SHORT' AND msgnr = '0'| ). + + ENDMETHOD. + ENDCLASS.