Skip to content

Commit f607aa3

Browse files
authored
serialization example on cell level (#172)
1 parent da47401 commit f607aa3

File tree

2 files changed

+65
-11
lines changed

2 files changed

+65
-11
lines changed

src/z2ui5_cl_demo_app_192.clas.abap

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ CLASS z2ui5_cl_demo_app_192 DEFINITION PUBLIC.
3939

4040
PROTECTED SECTION.
4141
METHODS get_data.
42+
METHODS xml_parse.
43+
METHODS xml_stringify.
4244

4345
PRIVATE SECTION.
4446
ENDCLASS.
@@ -62,23 +64,21 @@ CLASS z2ui5_cl_demo_app_192 IMPLEMENTATION.
6264
view->shell(
6365
)->page( title = 'xxx'
6466
navbuttonpress = client->_event( val = 'BACK' )
65-
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
67+
shownavbutton = abap_true
6668
)->header_content( ).
6769

6870
client->view_display( view->stringify( ) ).
6971

7072
ENDMETHOD.
7173

7274
METHOD z2ui5_if_app~main.
75+
xml_parse( ).
7376

7477
me->client = client.
7578
get_data( ).
7679
ui5_display( ).
7780

78-
* DATA(lv_stringify) = z2ui5_cl_util_api=>xml_srtti_stringify( data = mt_new_data2 ).
79-
80-
* DATA(lr_result) = z2ui5_cl_util_api=>xml_srtti_parse( rtti_data = lv_stringify ).
81-
81+
xml_stringify( ).
8282
ENDMETHOD.
8383

8484
METHOD get_data.
@@ -97,7 +97,6 @@ CLASS z2ui5_cl_demo_app_192 IMPLEMENTATION.
9797

9898
LOOP AT kopf->* ASSIGNING <fs_s_head>.
9999

100-
* APPEND INITIAL LINE TO mt_new_data ASSIGNING FIELD-SYMBOL(<fs_s_new_data>).
101100
DATA(lo_new_data) = NEW z2ui5_cl_demo_app_193( ).
102101
INSERT lo_new_data INTO TABLE mt_new_data2.
103102

@@ -109,10 +108,27 @@ CLASS z2ui5_cl_demo_app_192 IMPLEMENTATION.
109108

110109
APPEND INITIAL LINE TO <fs_t_head_new> ASSIGNING <fs_s_head_new>.
111110
<fs_s_head_new> = CORRESPONDING #( <fs_s_head> ).
112-
* <fs_s_head> = CORRESPONDING #( <fs_s_head_new> ).
113111

114112
ENDLOOP.
115113

116114
ENDMETHOD.
117115

116+
117+
METHOD xml_parse.
118+
119+
LOOP AT mt_new_data2 INTO DATA(lo_data).
120+
lo_data->xml_parse( ).
121+
ENDLOOP.
122+
123+
ENDMETHOD.
124+
125+
126+
METHOD xml_stringify.
127+
128+
LOOP AT mt_new_data2 INTO DATA(lo_data).
129+
lo_data->xml_stringify( ).
130+
ENDLOOP.
131+
132+
ENDMETHOD.
133+
118134
ENDCLASS.
Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
CLASS z2ui5_cl_demo_app_193 DEFINITION PUBLIC.
22

33
PUBLIC SECTION.
4+
INTERFACES if_serializable_object.
45

56
TYPES:
67
BEGIN OF ty_s_key_value,
@@ -11,16 +12,53 @@ CLASS z2ui5_cl_demo_app_193 DEFINITION PUBLIC.
1112
END OF ty_s_key_value,
1213
ty_t_key_values TYPE STANDARD TABLE OF ty_s_key_value WITH EMPTY KEY.
1314

14-
DATA:
15-
mt_kopf TYPE REF TO data,
16-
mt_pos TYPE REF TO data,
17-
mt_keyva TYPE ty_t_key_values.
15+
DATA mt_kopf TYPE REF TO data.
16+
DATA mt_pos TYPE REF TO data.
17+
DATA mt_keyva TYPE ty_t_key_values.
18+
19+
DATA mt_kopf_xml TYPE string.
20+
DATA mt_pos_xml TYPE string.
21+
22+
METHODS xml_parse.
23+
METHODS xml_stringify.
1824

1925
PROTECTED SECTION.
2026
PRIVATE SECTION.
2127
ENDCLASS.
2228

29+
30+
2331
CLASS z2ui5_cl_demo_app_193 IMPLEMENTATION.
2432

2533

34+
METHOD xml_parse.
35+
36+
IF mt_pos_xml IS NOT INITIAL.
37+
mt_kopf = z2ui5_cl_util_api=>xml_srtti_parse( mt_kopf_xml ).
38+
CLEAR mt_kopf_xml.
39+
ENDIF.
40+
41+
IF mt_pos_xml IS NOT INITIAL.
42+
mt_pos = z2ui5_cl_util_api=>xml_srtti_parse( mt_pos_xml ).
43+
CLEAR mt_pos_xml.
44+
ENDIF.
45+
46+
ENDMETHOD.
47+
48+
49+
METHOD xml_stringify.
50+
51+
ASSIGN mt_kopf->* TO FIELD-SYMBOL(<head>).
52+
IF sy-subrc = 0.
53+
mt_kopf_xml = z2ui5_cl_util_api=>xml_srtti_stringify( <head> ).
54+
CLEAR mt_kopf.
55+
ENDIF.
56+
57+
ASSIGN mt_pos->* TO FIELD-SYMBOL(<pos>).
58+
IF sy-subrc = 0.
59+
mt_pos_xml = z2ui5_cl_util_api=>xml_srtti_stringify( <pos> ).
60+
CLEAR mt_pos.
61+
ENDIF.
62+
63+
ENDMETHOD.
2664
ENDCLASS.

0 commit comments

Comments
 (0)