Skip to content

Commit 5e5fb4c

Browse files
authored
Merge pull request #23 from abap2UI5-renamed/create-pull-request/patch
Automatic Update
2 parents 8a4ff65 + 1abc4e4 commit 5e5fb4c

10 files changed

+475
-110
lines changed

src/01/00/03/z2ui6_cl_util.clas.abap

Lines changed: 15 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,18 @@ CLASS z2ui6_cl_util DEFINITION
6060
END OF ty_s_sql.
6161

6262
TYPES:
63-
BEGIN OF ty_S_msg,
64-
text TYPE string,
65-
id TYPE string,
66-
no TYPE string,
67-
type TYPE string,
68-
v1 TYPE string,
69-
v2 TYPE string,
70-
v3 TYPE string,
71-
v4 TYPE string,
63+
BEGIN OF ty_s_msg,
64+
text TYPE string,
65+
id TYPE string,
66+
no TYPE string,
67+
type TYPE string,
68+
v1 TYPE string,
69+
v2 TYPE string,
70+
v3 TYPE string,
71+
v4 TYPE string,
72+
timestampl TYPE timestampl,
7273
END OF ty_s_msg,
73-
ty_T_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
74+
ty_t_msg TYPE STANDARD TABLE OF ty_S_msg WITH EMPTY KEY.
7475

7576
CLASS-METHODS ui5_get_msg_type
7677
IMPORTING
@@ -82,7 +83,7 @@ CLASS z2ui6_cl_util DEFINITION
8283
IMPORTING
8384
val TYPE any
8485
RETURNING
85-
VALUE(result) TYPE ty_T_msg.
86+
VALUE(result) TYPE ty_t_msg.
8687

8788
CLASS-METHODS rtti_get_t_attri_by_include
8889
IMPORTING
@@ -1400,96 +1401,7 @@ CLASS z2ui6_cl_util IMPLEMENTATION.
14001401

14011402
METHOD msg_get.
14021403

1403-
DATA(lv_kind) = z2ui6_cl_util=>rtti_get_type_kind( val ).
1404-
CASE lv_kind.
1405-
1406-
WHEN cl_abap_datadescr=>typekind_table.
1407-
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
1408-
ASSIGN val TO <tab>.
1409-
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
1410-
DATA(lt_tab) = msg_get( <row> ).
1411-
INSERT LINES OF lt_tab INTO TABLE result.
1412-
ENDLOOP.
1413-
1414-
WHEN cl_abap_datadescr=>typekind_struct1 OR cl_abap_datadescr=>typekind_struct2.
1415-
1416-
IF val IS INITIAL.
1417-
RETURN.
1418-
ENDIF.
1419-
1420-
DATA(lt_attri) = z2ui6_cl_util=>rtti_get_t_attri_by_any( val ).
1421-
1422-
DATA(ls_result) = VALUE ty_s_msg( ).
1423-
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
1424-
DATA(lv_name) = |VAL-{ ls_attri->name }|.
1425-
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
1426-
CASE ls_attri->name.
1427-
WHEN 'ID' OR 'MSGID'.
1428-
ls_result-id = <comp>.
1429-
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
1430-
ls_result-no = <comp>.
1431-
WHEN 'MESSAGE' OR 'TEXT'.
1432-
ls_result-text = <comp>.
1433-
WHEN 'TYPE' OR 'MSGTY'.
1434-
ls_result-type = <comp>.
1435-
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
1436-
ls_result-v1 = <comp>.
1437-
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
1438-
ls_result-v2 = <comp>.
1439-
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
1440-
ls_result-v3 = <comp>.
1441-
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
1442-
ls_result-v4 = <comp>.
1443-
ENDCASE.
1444-
ENDLOOP.
1445-
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
1446-
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
1447-
WITH ls_result-v1 ls_result-v2 ls_result-v3 ls_result-v4
1448-
INTO ls_result-text.
1449-
ENDIF.
1450-
INSERT ls_result INTO TABLE result.
1451-
1452-
WHEN cl_abap_datadescr=>typekind_oref.
1453-
TRY.
1454-
DATA(lx) = CAST cx_root( val ).
1455-
ls_result = VALUE #( type = 'E' text = lx->get_text( ) ).
1456-
DATA(lt_attri_o) = z2ui6_cl_util=>rtti_get_t_attri_by_oref( val ).
1457-
LOOP AT lt_attri_o REFERENCE INTO DATA(ls_attri_o)
1458-
WHERE visibility = 'U'.
1459-
lv_name = |VAL->{ ls_attri_o->name }|.
1460-
ASSIGN (lv_name) TO <comp>.
1461-
CASE ls_attri_o->name.
1462-
WHEN 'ID' OR 'MSGID'.
1463-
ls_result-id = <comp>.
1464-
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
1465-
ls_result-no = <comp>.
1466-
WHEN 'MESSAGE'.
1467-
ls_result-text = <comp>.
1468-
WHEN 'TYPE' OR 'MSGTY'.
1469-
ls_result-type = <comp>.
1470-
WHEN 'MESSAGE_V1' OR 'MSGV1'.
1471-
ls_result-v1 = <comp>.
1472-
WHEN 'MESSAGE_V2' OR 'MSGV2'.
1473-
ls_result-v2 = <comp>.
1474-
WHEN 'MESSAGE_V3' OR 'MSGV3'.
1475-
ls_result-v3 = <comp>.
1476-
WHEN 'MESSAGE_V4' OR 'MSGV4'.
1477-
ls_result-v4 = <comp>.
1478-
ENDCASE.
1479-
1480-
ENDLOOP.
1481-
INSERT ls_result INTO TABLE result.
1482-
CATCH cx_root.
1483-
ENDTRY.
1484-
1485-
WHEN OTHERS.
1486-
1487-
IF rtti_check_clike( val ).
1488-
INSERT VALUE #( text = val
1489-
)
1490-
INTO TABLE result.
1491-
ENDIF.
1492-
ENDCASE.
1404+
result = lcl_msp_mapper=>msg_get( val ).
14931405

14941406
ENDMETHOD.
14951407

@@ -1512,8 +1424,8 @@ CLASS z2ui6_cl_util IMPLEMENTATION.
15121424
WHEN 'E' THEN `Error`
15131425
WHEN 'S' THEN `Success`
15141426
WHEN `W` THEN `Warning`
1515-
ELSE `Information`
1516-
).
1427+
ELSE `Information` ).
15171428

15181429
ENDMETHOD.
1430+
15191431
ENDCLASS.

src/01/00/03/z2ui6_cl_util.clas.locals_imp.abap

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,166 @@ CLASS lcl_range_to_sql IMPLEMENTATION.
116116
occ = 0 ) }'|.
117117
ENDMETHOD.
118118
ENDCLASS.
119+
120+
CLASS lcl_msp_mapper DEFINITION
121+
FINAL CREATE PUBLIC.
122+
123+
PUBLIC SECTION.
124+
CLASS-METHODS msg_map
125+
IMPORTING
126+
name TYPE clike
127+
val TYPE data
128+
is_msg TYPE z2ui6_cl_util=>ty_s_msg
129+
RETURNING
130+
VALUE(result) TYPE z2ui6_cl_util=>ty_s_msg.
131+
132+
CLASS-METHODS msg_get
133+
IMPORTING
134+
val TYPE any
135+
RETURNING
136+
VALUE(result) TYPE z2ui6_cl_util=>ty_t_msg.
137+
138+
ENDCLASS.
139+
140+
CLASS lcl_msp_mapper IMPLEMENTATION.
141+
142+
METHOD msg_get.
143+
144+
DATA(lv_kind) = z2ui6_cl_util=>rtti_get_type_kind( val ).
145+
CASE lv_kind.
146+
147+
WHEN cl_abap_datadescr=>typekind_table.
148+
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
149+
ASSIGN val TO <tab>.
150+
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
151+
DATA(lt_tab) = msg_get( <row> ).
152+
INSERT LINES OF lt_tab INTO TABLE result.
153+
ENDLOOP.
154+
155+
WHEN cl_abap_datadescr=>typekind_struct1 OR cl_abap_datadescr=>typekind_struct2.
156+
157+
IF val IS INITIAL.
158+
RETURN.
159+
ENDIF.
160+
161+
DATA(lt_attri) = z2ui6_cl_util=>rtti_get_t_attri_by_any( val ).
162+
163+
DATA(ls_result) = VALUE z2ui6_cl_util=>ty_s_msg( ).
164+
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
165+
DATA(lv_name) = |VAL-{ ls_attri->name }|.
166+
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
167+
168+
IF ls_attri->name = 'ITEM'.
169+
lt_tab = msg_get( <comp> ).
170+
INSERT LINES OF lt_tab INTO TABLE result.
171+
RETURN.
172+
ELSE.
173+
ls_result = msg_map( name = ls_attri->name val = <comp> is_msg = ls_result ).
174+
ENDIF.
175+
176+
ENDLOOP.
177+
IF ls_result-text IS INITIAL AND ls_result-id IS NOT INITIAL.
178+
MESSAGE ID ls_result-id TYPE 'I' NUMBER ls_result-no
179+
WITH ls_result-v1 ls_result-v2 ls_result-v3 ls_result-v4
180+
INTO ls_result-text.
181+
ENDIF.
182+
INSERT ls_result INTO TABLE result.
183+
184+
WHEN cl_abap_datadescr=>typekind_oref.
185+
TRY.
186+
DATA(lx) = CAST cx_root( val ).
187+
ls_result = VALUE #( type = 'E' text = lx->get_text( ) ).
188+
DATA(lt_attri_o) = z2ui6_cl_util=>rtti_get_t_attri_by_oref( val ).
189+
LOOP AT lt_attri_o REFERENCE INTO DATA(ls_attri_o)
190+
WHERE visibility = 'U'.
191+
lv_name = |VAL->{ ls_attri_o->name }|.
192+
ASSIGN (lv_name) TO <comp>.
193+
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
194+
ENDLOOP.
195+
INSERT ls_result INTO TABLE result.
196+
CATCH cx_root.
197+
198+
DATA obj TYPE REF TO object.
199+
obj = val.
200+
201+
TRY.
202+
203+
DATA lr_tab TYPE REF TO data.
204+
CREATE DATA lr_tab TYPE ('if_bali_log=>ty_item_table').
205+
ASSIGN lr_tab->* TO FIELD-SYMBOL(<tab2>).
206+
207+
CALL METHOD obj->(`IF_BALI_LOG~GET_ALL_ITEMS`)
208+
RECEIVING
209+
item_table = <tab2>.
210+
211+
DATA(lt_tab2) = msg_get( <tab2> ).
212+
INSERT LINES OF lt_tab2 INTO TABLE result.
213+
214+
CATCH cx_root.
215+
216+
TRY.
217+
218+
CREATE DATA lr_tab TYPE ('BAPIRETTAB').
219+
ASSIGN lr_tab->* TO <tab2>.
220+
221+
CALL METHOD obj->(`ZIF_LOGGER~EXPORT_TO_TABLE`)
222+
RECEIVING
223+
rt_bapiret = <tab2>.
224+
225+
lt_tab2 = msg_get( <tab2> ).
226+
INSERT LINES OF lt_tab2 INTO TABLE result.
227+
228+
CATCH cx_root INTO DATA(lx2).
229+
230+
231+
lt_attri_o = z2ui6_cl_util=>rtti_get_t_attri_by_oref( val ).
232+
LOOP AT lt_attri_o REFERENCE INTO ls_attri_o
233+
WHERE visibility = 'U'.
234+
lv_name = |OBJ->{ ls_attri_o->name }|.
235+
ASSIGN (lv_name) TO <comp>.
236+
ls_result = msg_map( name = ls_attri_o->name val = <comp> is_msg = ls_result ).
237+
ENDLOOP.
238+
INSERT ls_result INTO TABLE result.
239+
240+
ENDTRY.
241+
ENDTRY.
242+
ENDTRY.
243+
244+
WHEN OTHERS.
245+
246+
IF z2ui6_cl_util=>rtti_check_clike( val ).
247+
INSERT VALUE #( text = val
248+
)
249+
INTO TABLE result.
250+
ENDIF.
251+
ENDCASE.
252+
253+
ENDMETHOD.
254+
255+
METHOD msg_map.
256+
257+
result = is_msg.
258+
CASE name.
259+
WHEN 'ID' OR 'MSGID'.
260+
result-id = val.
261+
WHEN 'NO' OR 'NUMBER' OR 'MSGNO'.
262+
result-no = val.
263+
WHEN 'MESSAGE' OR 'TEXT'.
264+
result-text = val.
265+
WHEN 'TYPE' OR 'MSGTY'.
266+
result-type = val.
267+
WHEN 'MESSAGE_V1' OR 'MSGV1' OR 'V1'.
268+
result-v1 = val.
269+
WHEN 'MESSAGE_V2' OR 'MSGV2' OR 'V2'.
270+
result-v2 = val.
271+
WHEN 'MESSAGE_V3' OR 'MSGV3' OR 'V3'.
272+
result-v3 = val.
273+
WHEN 'MESSAGE_V4' OR 'MSGV4' OR 'V4'.
274+
result-v4 = val.
275+
WHEN 'TIME_STMP'.
276+
result-timestampl = val.
277+
ENDCASE.
278+
279+
ENDMETHOD.
280+
281+
ENDCLASS.

0 commit comments

Comments
 (0)