Skip to content

Commit cb3a05c

Browse files
authored
bugfix CALL TRANSFORMATION (#957)
1 parent af92b32 commit cb3a05c

File tree

3 files changed

+48
-3
lines changed

3 files changed

+48
-3
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
},
1616
"license": "MIT",
1717
"dependencies": {
18-
"@abaplint/cli": "^2.113.110",
18+
"@abaplint/cli": "^2.113.119",
1919
"@abaplint/database-pg": "^2.10.24",
2020
"@abaplint/database-sqlite": "^2.10.24",
21-
"@abaplint/runtime": "^2.10.49",
22-
"@abaplint/transpiler-cli": "^2.10.49",
21+
"@abaplint/runtime": "^2.10.55",
22+
"@abaplint/transpiler-cli": "^2.10.55",
2323
"0x": "^5.8.0"
2424
}
2525
}

src/kernel/call_transformation/kernel_call_transformation.clas.abap

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ CLASS kernel_call_transformation IMPLEMENTATION.
7474
IF lv_source(1) = '<'
7575
OR ( strlen( lv_source ) > 1 AND ( lv_source(1) = lv_bom_big OR lv_source(1) = lv_bom_little ) AND lv_source+1(1) = '<' ).
7676
lv_type = 'XML'.
77+
IF lv_source(1) = lv_bom_big OR lv_source(1) = lv_bom_little.
78+
lv_source = lv_source+1.
79+
ENDIF.
7780
parse_xml( lv_source ).
7881
ELSEIF lv_source(1) = '{' OR lv_source(1) = '['.
7982
lv_type = 'JSON'.

src/kernel/call_transformation/kernel_call_transformation.clas.testclasses.abap

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ CLASS ltcl_call_transformation DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATI
131131
METHODS xml_to_xml_rm_header_bom FOR TESTING RAISING cx_static_check.
132132
METHODS byte_order_mark_big FOR TESTING RAISING cx_static_check.
133133
METHODS byte_order_mark_little FOR TESTING RAISING cx_static_check.
134+
METHODS dot_abapgit FOR TESTING RAISING cx_static_check.
134135
ENDCLASS.
135136

136137
CLASS ltcl_call_transformation IMPLEMENTATION.
@@ -1196,4 +1197,45 @@ CLASS ltcl_call_transformation IMPLEMENTATION.
11961197

11971198
ENDMETHOD.
11981199

1200+
METHOD dot_abapgit.
1201+
1202+
DATA lv_xml TYPE string.
1203+
DATA: BEGIN OF rs_data,
1204+
starting_folder TYPE string,
1205+
END OF rs_data.
1206+
DATA lv_str_bom TYPE string.
1207+
DATA lv_hex_bom TYPE xstring.
1208+
1209+
lv_hex_bom = cl_abap_char_utilities=>byte_order_mark_big.
1210+
lv_str_bom = cl_abap_codepage=>convert_from(
1211+
source = lv_hex_bom
1212+
codepage = 'UTF-16' ).
1213+
1214+
lv_xml = |{ lv_str_bom }<?xml version="1.0" encoding="utf-8"?>| &&
1215+
|<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">| &&
1216+
| <asx:values>| &&
1217+
| <DATA>| &&
1218+
| <MASTER_LANGUAGE>E</MASTER_LANGUAGE>| &&
1219+
| <STARTING_FOLDER>/src/</STARTING_FOLDER>| &&
1220+
| <FOLDER_LOGIC>PREFIX</FOLDER_LOGIC>| &&
1221+
| <IGNORE>| &&
1222+
| <item>/LICENSE</item>| &&
1223+
| <item>/README.md</item>| &&
1224+
| <item>/abaplint.json</item>| &&
1225+
| </IGNORE>| &&
1226+
| </DATA>| &&
1227+
| </asx:values>| &&
1228+
|</asx:abap>|.
1229+
1230+
CALL TRANSFORMATION id
1231+
OPTIONS value_handling = 'accept_data_loss'
1232+
SOURCE XML lv_xml
1233+
RESULT data = rs_data.
1234+
1235+
cl_abap_unit_assert=>assert_equals(
1236+
act = rs_data-starting_folder
1237+
exp = '/src/' ).
1238+
1239+
ENDMETHOD.
1240+
11991241
ENDCLASS.

0 commit comments

Comments
 (0)