Skip to content

Commit c56f774

Browse files
authored
Merge pull request #4 from abap2UI5-addons/claude/charming-archimedes-95rvpx
Refactor data conversion methods to use utility functions
2 parents ca78381 + 108a7e3 commit c56f774

1 file changed

Lines changed: 14 additions & 76 deletions

File tree

src/z2ui5_cl_tcl_app_02.clas.locals_imp.abap

Lines changed: 14 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -89,56 +89,28 @@ CLASS lcl_db IMPLEMENTATION.
8989

9090
METHOD get_table_by_json.
9191

92-
DATA lt_tab TYPE ty_t_table.
93-
94-
/ui2/cl_json=>deserialize(
95-
EXPORTING
96-
json = val
97-
* jsonx =
98-
* pretty_name =
99-
* assoc_arrays =
100-
* assoc_arrays_opt =
101-
* name_mappings =
102-
* conversion_exits =
103-
* hex_as_base64 =
104-
CHANGING
105-
data = lt_tab
106-
).
107-
108-
result = lt_tab.
92+
z2ui5_cl_util=>json_parse( EXPORTING val = val
93+
CHANGING data = result ).
10994

11095
ENDMETHOD.
11196

11297

11398
METHOD get_table_by_xml.
11499

115-
DATA lt_tab TYPE ty_t_table.
116-
117-
CALL TRANSFORMATION id SOURCE xml = val RESULT data = lt_tab.
118-
119-
result = lt_tab.
100+
z2ui5_cl_util=>xml_parse( EXPORTING xml = val
101+
IMPORTING any = result ).
120102

121103
ENDMETHOD.
122104

123105
METHOD get_table_by_csv.
124106

125-
SPLIT val AT ';' INTO TABLE DATA(lt_cols).
126-
127-
LOOP AT lt_cols INTO DATA(lv_field).
107+
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
128108

129-
DATA(ls_row) = VALUE z2ui5_cl_tcl_app_02=>ty_s_spfli( ).
130-
DATA(lv_index) = 1.
131-
DO.
132-
ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL(<field>).
133-
IF sy-subrc <> 0.
134-
EXIT.
135-
ENDIF.
136-
<field> = lv_field.
137-
lv_index = lv_index + 1.
138-
ENDDO.
139-
INSERT ls_row INTO TABLE result.
109+
DATA(lr_tab) = z2ui5_cl_util=>itab_get_itab_by_csv( val ).
110+
ASSIGN lr_tab->* TO <tab>.
140111

141-
ENDLOOP.
112+
z2ui5_cl_util=>itab_corresponding( EXPORTING val = <tab>
113+
CHANGING tab = result ).
142114

143115
ENDMETHOD.
144116

@@ -163,60 +135,26 @@ CLASS lcl_db IMPLEMENTATION.
163135

164136
METHOD get_csv_by_table.
165137

166-
LOOP AT val INTO DATA(ls_row).
167-
168-
DATA(lv_index) = 1.
169-
DO.
170-
ASSIGN COMPONENT lv_index OF STRUCTURE ls_row TO FIELD-SYMBOL(<field>).
171-
IF sy-subrc <> 0.
172-
EXIT.
173-
ENDIF.
174-
lv_index = lv_index + 1.
175-
result = result && <field> && ';'.
176-
ENDDO.
177-
result = result && cl_abap_char_utilities=>cr_lf.
178-
ENDLOOP.
179-
138+
result = z2ui5_cl_util=>itab_get_csv_by_itab( val ).
180139

181140
ENDMETHOD.
182141

183142
METHOD get_json_by_table.
184143

185-
result = /ui2/cl_json=>serialize(
186-
val
187-
* compress =
188-
* name =
189-
* pretty_name =
190-
* type_descr =
191-
* assoc_arrays =
192-
* ts_as_iso8601 =
193-
* expand_includes =
194-
* assoc_arrays_opt =
195-
* numc_as_string =
196-
* name_mappings =
197-
* conversion_exits =
198-
" format_output = abap_true
199-
* hex_as_base64 =
200-
).
201-
144+
result = z2ui5_cl_util=>json_stringify( val ).
202145

203146
ENDMETHOD.
204147

205148
METHOD get_xml_by_table.
206149

207-
CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
150+
result = z2ui5_cl_util=>xml_stringify( val ).
208151

209152
ENDMETHOD.
210153

211154
METHOD get_fieldlist_by_table.
212155

213-
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
214-
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
215-
216-
DATA(lt_comp) = lo_struc->get_components( ).
217-
218-
LOOP AT lt_comp INTO DATA(ls_comp).
219-
INSERT ls_comp-name INTO TABLE result.
156+
LOOP AT z2ui5_cl_util=>rtti_get_t_attri_by_any( it_table ) REFERENCE INTO DATA(lr_attri).
157+
INSERT CONV #( lr_attri->name ) INTO TABLE result.
220158
ENDLOOP.
221159

222160
ENDMETHOD.

0 commit comments

Comments
 (0)