Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 7a7e4b7

Browse files
abapsheepViktor Hoffmann
and
Viktor Hoffmann
authoredApr 23, 2024··
New Sample typ ref to Data not working (#170)
* New Sample typ ref to Data not working Serialization does not work with complex type ref to data elements * Update --------- Co-authored-by: Viktor Hoffmann <[email protected]>
1 parent 3f4e48c commit 7a7e4b7

File tree

2 files changed

+127
-0
lines changed

2 files changed

+127
-0
lines changed
 

‎src/z2ui5_cl_demo_app_192.clas.abap

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
CLASS z2ui5_cl_demo_app_192 DEFINITION PUBLIC.
2+
3+
PUBLIC SECTION.
4+
INTERFACES z2ui5_if_app.
5+
6+
DATA client TYPE REF TO z2ui5_if_client.
7+
8+
TYPES: BEGIN OF ty_s_key_value,
9+
fname TYPE char30,
10+
value TYPE string,
11+
tabname TYPE char30,
12+
comp TYPE abap_componentdescr,
13+
END OF ty_S_key_value,
14+
ty_t_key_values TYPE STANDARD TABLE OF ty_s_key_value WITH EMPTY KEY.
15+
16+
TYPES: BEGIN OF ty_s_merged_Data,
17+
t_kopf TYPE REF TO data,
18+
t_pos TYPE REF TO data,
19+
t_keyva TYPE ty_T_KEY_VALUEs,
20+
END OF ty_S_merged_Data,
21+
ty_t_merged_Data TYPE STANDARD TABLE OF ty_s_merged_Data WITH EMPTY KEY.
22+
23+
DATA mt_new_data TYPE ty_t_merged_data.
24+
25+
TYPES:
26+
BEGIN OF ty_s_out,
27+
aa TYPE string,
28+
bb TYPE string,
29+
cc TYPE string,
30+
END OF ty_s_out,
31+
ty_t_out TYPE STANDARD TABLE OF ty_s_out WITH EMPTY KEY.
32+
33+
DATA mt_out TYPE ty_t_out.
34+
35+
METHODS ui5_display.
36+
METHODS ui5_event.
37+
38+
PROTECTED SECTION.
39+
METHODS get_data.
40+
41+
PRIVATE SECTION.
42+
ENDCLASS.
43+
44+
CLASS z2ui5_cl_demo_app_192 IMPLEMENTATION.
45+
46+
METHOD ui5_event.
47+
48+
CASE client->get( )-event.
49+
50+
WHEN 'BACK'.
51+
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
52+
53+
ENDCASE.
54+
55+
ENDMETHOD.
56+
57+
METHOD ui5_display.
58+
59+
DATA(view) = z2ui5_cl_xml_view=>factory( ).
60+
view->shell(
61+
)->page( title = 'xxx'
62+
navbuttonpress = client->_event( val = 'BACK' )
63+
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack IS NOT INITIAL )
64+
)->header_content( ).
65+
66+
client->view_display( view->stringify( ) ).
67+
68+
ENDMETHOD.
69+
70+
METHOD z2ui5_if_app~main.
71+
72+
me->client = client.
73+
74+
get_DATA( ).
75+
76+
ui5_display( ).
77+
78+
ENDMETHOD.
79+
80+
METHOD get_data.
81+
82+
mt_out = VALUE #( ( aa = 'aa' bb = 'bb' cc = 'cc' )
83+
( aa = 'a1' bb = 'b1' cc = 'c1' ) ).
84+
85+
DATA(kopf) = REF #( mt_out ).
86+
87+
DATA lr_structdescr TYPE REF TO cl_abap_structdescr.
88+
DATA lr_tabdescr TYPE REF TO cl_abap_tabledescr.
89+
90+
FIELD-SYMBOLS <fs_s_head> TYPE any.
91+
FIELD-SYMBOLS <fs_t_head_new> TYPE STANDARD TABLE.
92+
FIELD-SYMBOLS <fs_s_head_new> TYPE any.
93+
94+
LOOP AT kopf->* ASSIGNING <fs_s_head>.
95+
96+
APPEND INITIAL LINE TO mt_new_data ASSIGNING FIELD-SYMBOL(<fs_s_new_data>).
97+
98+
lr_structdescr ?= cl_abap_structdescr=>describe_by_data( <fs_s_head> ).
99+
lr_tabdescr ?= cl_abap_tabledescr=>create( p_line_type = lr_structdescr ).
100+
101+
CREATE DATA <fs_s_new_data>-t_kopf TYPE HANDLE lr_tabdescr.
102+
ASSIGN <fs_s_new_data>-t_kopf->* TO <fs_t_head_new>.
103+
104+
APPEND INITIAL LINE TO <fs_t_head_new> ASSIGNING <fs_s_head_new>.
105+
<fs_s_head> = CORRESPONDING #( <fs_s_head_new> ).
106+
107+
ENDLOOP.
108+
109+
ENDMETHOD.
110+
111+
ENDCLASS.

‎src/z2ui5_cl_demo_app_192.clas.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<VSEOCLASS>
6+
<CLSNAME>Z2UI5_CL_DEMO_APP_192</CLSNAME>
7+
<LANGU>E</LANGU>
8+
<DESCRIPT>App Calling App with REF</DESCRIPT>
9+
<STATE>1</STATE>
10+
<CLSCCINCL>X</CLSCCINCL>
11+
<FIXPT>X</FIXPT>
12+
<UNICODE>X</UNICODE>
13+
</VSEOCLASS>
14+
</asx:values>
15+
</asx:abap>
16+
</abapGit>

0 commit comments

Comments
 (0)
Please sign in to comment.