mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
refactoring toolbox (#1735)
This commit is contained in:
parent
ba1e7ed9b7
commit
c3b2b8b12f
|
@ -1,6 +1,6 @@
|
|||
CLASS z2ui5_cl_util DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM z2ui5_cl_abap_api
|
||||
INHERITING FROM z2ui5_cl_util_abap
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
@ -96,7 +96,7 @@ CLASS z2ui5_cl_util DEFINITION
|
|||
rollname TYPE clike
|
||||
langu TYPE clike DEFAULT sy-langu
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_cl_abap_api=>ty_t_fix_val ##NEEDED.
|
||||
VALUE(result) TYPE z2ui5_cl_util_abap=>ty_t_fix_val ##NEEDED.
|
||||
|
||||
CLASS-METHODS source_get_method2
|
||||
IMPORTING
|
||||
|
@ -1244,10 +1244,10 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
CALL METHOD z2ui5_cl_srt_typedescr=>('CREATE_BY_DATA_OBJECT')
|
||||
EXPORTING
|
||||
data_object = data
|
||||
RECEIVING
|
||||
srtti = srtti.
|
||||
EXPORTING
|
||||
data_object = data
|
||||
RECEIVING
|
||||
srtti = srtti.
|
||||
|
||||
CALL TRANSFORMATION id SOURCE srtti = srtti dobj = data RESULT XML result.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
CLASS z2ui5_cl_abap_api DEFINITION
|
||||
CLASS z2ui5_cl_util_abap DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC.
|
||||
|
||||
|
@ -16,7 +16,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
|
|||
high TYPE string,
|
||||
descr TYPE string,
|
||||
END OF ty_s_fix_val.
|
||||
TYPES ty_t_fix_val TYPE STANDARD TABLE OF ty_s_fix_val WITH EMPTY KEY.
|
||||
TYPES ty_t_fix_val TYPE STANDARD TABLE OF ty_s_fix_val WITH DEFAULT KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_dfies,
|
||||
|
@ -70,7 +70,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
|
|||
nohistory TYPE c LENGTH 1,
|
||||
ampmformat TYPE c LENGTH 1,
|
||||
END OF ty_s_dfies,
|
||||
ty_t_dfies TYPE STANDARD TABLE OF ty_s_dfies WITH EMPTY KEY.
|
||||
ty_t_dfies TYPE STANDARD TABLE OF ty_s_dfies WITH DEFAULT KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_data_element_text,
|
||||
|
@ -180,7 +180,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_util_abap IMPLEMENTATION.
|
||||
METHOD context_check_abap_cloud.
|
||||
|
||||
TRY.
|
||||
|
@ -202,10 +202,14 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
ddlanguage TYPE c LENGTH 1,
|
||||
ddtext TYPE c LENGTH 60,
|
||||
END OF fixvalue.
|
||||
TYPES fixvalues TYPE STANDARD TABLE OF fixvalue WITH EMPTY KEY.
|
||||
TYPES fixvalues TYPE STANDARD TABLE OF fixvalue WITH DEFAULT KEY.
|
||||
DATA lt_values TYPE fixvalues.
|
||||
|
||||
DATA(lv_langu) = ' '.
|
||||
DATA lv_langu TYPE c LENGTH 1.
|
||||
DATA temp1 LIKE LINE OF lt_values.
|
||||
DATA lr_fix LIKE REF TO temp1.
|
||||
DATA temp2 TYPE z2ui5_cl_util_abap=>ty_s_fix_val.
|
||||
lv_langu = ' '.
|
||||
lv_langu = langu.
|
||||
|
||||
CALL METHOD elemdescr->('GET_DDIC_FIXED_VALUES')
|
||||
|
@ -215,11 +219,16 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
no_ddic_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
LOOP AT lt_values REFERENCE INTO DATA(lr_fix).
|
||||
|
||||
INSERT VALUE #( low = lr_fix->low
|
||||
high = lr_fix->high
|
||||
descr = lr_fix->ddtext )
|
||||
|
||||
LOOP AT lt_values REFERENCE INTO lr_fix.
|
||||
|
||||
|
||||
CLEAR temp2.
|
||||
temp2-low = lr_fix->low.
|
||||
temp2-high = lr_fix->high.
|
||||
temp2-descr = lr_fix->ddtext.
|
||||
INSERT temp2
|
||||
INTO TABLE result.
|
||||
|
||||
ENDLOOP.
|
||||
|
@ -227,17 +236,21 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD conv_decode_x_base64.
|
||||
DATA lv_web_http_name TYPE c LENGTH 19.
|
||||
DATA classname TYPE c LENGTH 15.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'.
|
||||
|
||||
lv_web_http_name = 'CL_WEB_HTTP_UTILITY'.
|
||||
CALL METHOD (lv_web_http_name)=>('DECODE_X_BASE64')
|
||||
EXPORTING encoded = val
|
||||
RECEIVING decoded = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
|
||||
classname = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING encoded = val
|
||||
RECEIVING decoded = result.
|
||||
|
@ -247,17 +260,21 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD conv_encode_x_base64.
|
||||
DATA lv_web_http_name TYPE c LENGTH 19.
|
||||
DATA classname TYPE c LENGTH 15.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'.
|
||||
|
||||
lv_web_http_name = 'CL_WEB_HTTP_UTILITY'.
|
||||
CALL METHOD (lv_web_http_name)=>('ENCODE_X_BASE64')
|
||||
EXPORTING unencoded = val
|
||||
RECEIVING encoded = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
|
||||
classname = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING unencoded = val
|
||||
RECEIVING encoded = result.
|
||||
|
@ -269,9 +286,12 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
METHOD conv_get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
DATA conv_codepage TYPE c LENGTH 21.
|
||||
DATA conv_in_class TYPE c LENGTH 18.
|
||||
|
||||
TRY.
|
||||
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
|
||||
conv_codepage = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
CALL METHOD (conv_codepage)=>create_in
|
||||
RECEIVING instance = conv.
|
||||
|
||||
|
@ -281,7 +301,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
|
||||
conv_in_class = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING encoding = 'UTF-8'
|
||||
RECEIVING conv = conv.
|
||||
|
@ -296,9 +317,12 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
METHOD conv_get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
DATA conv_codepage TYPE c LENGTH 21.
|
||||
DATA conv_out_class TYPE c LENGTH 19.
|
||||
|
||||
TRY.
|
||||
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
|
||||
conv_codepage = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
CALL METHOD (conv_codepage)=>create_out
|
||||
RECEIVING instance = conv.
|
||||
|
||||
|
@ -308,7 +332,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
|
||||
conv_out_class = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING encoding = 'UTF-8'
|
||||
RECEIVING conv = conv.
|
||||
|
@ -326,13 +351,23 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <any> TYPE any.
|
||||
DATA lt_source TYPE string_table.
|
||||
DATA lt_string TYPE string_table.
|
||||
DATA lv_class TYPE string.
|
||||
DATA lv_method TYPE string.
|
||||
DATA xco_cp_abap TYPE c LENGTH 11.
|
||||
DATA lv_name TYPE c LENGTH 13.
|
||||
DATA lv_check_method LIKE abap_false.
|
||||
DATA lv_source LIKE LINE OF lt_source.
|
||||
DATA lv_source_upper TYPE string.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lv_class) = to_upper( iv_classname ).
|
||||
DATA(lv_method) = to_upper( iv_methodname ).
|
||||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
lv_class = to_upper( iv_classname ).
|
||||
|
||||
lv_method = to_upper( iv_methodname ).
|
||||
|
||||
|
||||
xco_cp_abap = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>('CLASS')
|
||||
EXPORTING iv_name = lv_class
|
||||
RECEIVING ro_class = object.
|
||||
|
@ -353,7 +388,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(lv_name) = 'CL_OO_FACTORY'.
|
||||
|
||||
lv_name = 'CL_OO_FACTORY'.
|
||||
CALL METHOD (lv_name)=>('CREATE_INSTANCE')
|
||||
RECEIVING result = object.
|
||||
|
||||
|
@ -364,9 +400,12 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
CALL METHOD object->('IF_OO_CLIF_SOURCE~GET_SOURCE')
|
||||
IMPORTING source = lt_source.
|
||||
|
||||
DATA(lv_check_method) = abap_false.
|
||||
LOOP AT lt_source INTO DATA(lv_source).
|
||||
DATA(lv_source_upper) = to_upper( lv_source ).
|
||||
|
||||
lv_check_method = abap_false.
|
||||
|
||||
LOOP AT lt_source INTO lv_source.
|
||||
|
||||
lv_source_upper = to_upper( lv_source ).
|
||||
|
||||
IF lv_source_upper CS `ENDMETHOD`.
|
||||
lv_check_method = abap_false.
|
||||
|
@ -407,12 +446,24 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
DATA clsname TYPE c LENGTH 30.
|
||||
DATA END OF ls_clskey.
|
||||
DATA class TYPE REF TO data.
|
||||
DATA xco_cp_abap TYPE c LENGTH 11.
|
||||
DATA temp3 TYPE z2ui5_cl_util_abap=>ty_t_classes.
|
||||
DATA implementation_name LIKE LINE OF lt_implementation_names.
|
||||
DATA temp4 LIKE LINE OF temp3.
|
||||
DATA lv_fm TYPE string.
|
||||
DATA type TYPE c LENGTH 12.
|
||||
FIELD-SYMBOLS <class> TYPE data.
|
||||
DATA temp5 LIKE LINE OF lt_impl.
|
||||
DATA lr_impl LIKE REF TO temp5.
|
||||
FIELD-SYMBOLS <description> TYPE any.
|
||||
DATA temp6 TYPE z2ui5_cl_util_abap=>ty_s_class_descr.
|
||||
|
||||
TRY.
|
||||
|
||||
ls_clskey-clsname = val.
|
||||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
|
||||
xco_cp_abap = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>interface
|
||||
EXPORTING iv_name = ls_clskey-clsname
|
||||
RECEIVING ro_interface = obj.
|
||||
|
@ -432,15 +483,23 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
CALL METHOD obj->('IF_XCO_INTF_IMPLEMENTATIONS~GET_NAMES')
|
||||
RECEIVING rt_names = lt_implementation_names.
|
||||
|
||||
result = VALUE #( FOR implementation_name IN lt_implementation_names
|
||||
( classname = implementation_name
|
||||
description = rtti_get_class_descr_on_cloud( implementation_name ) ) ).
|
||||
|
||||
CLEAR temp3.
|
||||
|
||||
LOOP AT lt_implementation_names INTO implementation_name.
|
||||
|
||||
temp4-classname = implementation_name.
|
||||
temp4-description = rtti_get_class_descr_on_cloud( implementation_name ).
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
ENDLOOP.
|
||||
result = temp3.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
ls_key-intkey = val.
|
||||
|
||||
DATA(lv_fm) = `SEO_INTERFACE_IMPLEM_GET_ALL`.
|
||||
|
||||
lv_fm = `SEO_INTERFACE_IMPLEM_GET_ALL`.
|
||||
CALL FUNCTION lv_fm
|
||||
EXPORTING intkey = ls_key
|
||||
IMPORTING impkeys = lt_impl
|
||||
|
@ -450,11 +509,15 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(type) = 'SEOC_CLASS_R'.
|
||||
CREATE DATA class TYPE (type).
|
||||
ASSIGN class->* TO FIELD-SYMBOL(<class>).
|
||||
|
||||
LOOP AT lt_impl REFERENCE INTO DATA(lr_impl).
|
||||
type = 'SEOC_CLASS_R'.
|
||||
CREATE DATA class TYPE (type).
|
||||
|
||||
ASSIGN class->* TO <class>.
|
||||
|
||||
|
||||
|
||||
LOOP AT lt_impl REFERENCE INTO lr_impl.
|
||||
|
||||
CLEAR <class>.
|
||||
|
||||
|
@ -465,15 +528,19 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
EXPORTING clskey = ls_clskey
|
||||
IMPORTING class = <class>.
|
||||
|
||||
|
||||
ASSIGN
|
||||
COMPONENT 'DESCRIPT'
|
||||
OF STRUCTURE <class>
|
||||
TO FIELD-SYMBOL(<description>).
|
||||
TO <description>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
|
||||
CLEAR temp6.
|
||||
temp6-classname = lr_impl->clsname.
|
||||
temp6-description = <description>.
|
||||
INSERT
|
||||
VALUE #( classname = lr_impl->clsname
|
||||
description = <description> )
|
||||
temp6
|
||||
INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -494,25 +561,41 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
END OF ddic.
|
||||
DATA exists TYPE abap_bool.
|
||||
|
||||
DATA(data_element_name) = i_data_element_name.
|
||||
DATA data_element_name LIKE i_data_element_name.
|
||||
DATA temp7 TYPE REF TO cl_abap_structdescr.
|
||||
DATA struct_desrc LIKE temp7.
|
||||
FIELD-SYMBOLS <ddic> TYPE data.
|
||||
DATA lo_typedescr TYPE REF TO cl_abap_typedescr.
|
||||
DATA temp8 TYPE REF TO cl_abap_datadescr.
|
||||
DATA data_descr LIKE temp8.
|
||||
DATA xco_cp_abap_dictionary TYPE c LENGTH 22.
|
||||
data_element_name = i_data_element_name.
|
||||
|
||||
TRY.
|
||||
cl_abap_typedescr=>describe_by_name( 'T100' ).
|
||||
|
||||
DATA(struct_desrc) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_name( 'DFIES' ) ).
|
||||
|
||||
temp7 ?= cl_abap_structdescr=>describe_by_name( 'DFIES' ).
|
||||
|
||||
struct_desrc = temp7.
|
||||
|
||||
CREATE DATA ddic_ref TYPE HANDLE struct_desrc.
|
||||
ASSIGN ddic_ref->* TO FIELD-SYMBOL(<ddic>).
|
||||
|
||||
ASSIGN ddic_ref->* TO <ddic>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
|
||||
cl_abap_elemdescr=>describe_by_name( EXPORTING p_name = data_element_name
|
||||
RECEIVING p_descr_ref = DATA(lo_typedescr)
|
||||
RECEIVING p_descr_ref = lo_typedescr
|
||||
EXCEPTIONS OTHERS = 1 ).
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(data_descr) = CAST cl_abap_datadescr( lo_typedescr ).
|
||||
|
||||
temp8 ?= lo_typedescr.
|
||||
|
||||
data_descr = temp8.
|
||||
|
||||
CALL METHOD data_descr->('GET_DDIC_FIELD')
|
||||
RECEIVING p_flddescr = <ddic>
|
||||
|
@ -523,7 +606,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ddic = CORRESPONDING #( <ddic> ).
|
||||
MOVE-CORRESPONDING <ddic> TO ddic.
|
||||
result-header = ddic-reptext.
|
||||
result-short = ddic-scrtext_s.
|
||||
result-medium = ddic-scrtext_m.
|
||||
|
@ -531,7 +614,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root.
|
||||
TRY.
|
||||
DATA(xco_cp_abap_dictionary) = 'XCO_CP_ABAP_DICTIONARY'.
|
||||
|
||||
xco_cp_abap_dictionary = 'XCO_CP_ABAP_DICTIONARY'.
|
||||
CALL METHOD (xco_cp_abap_dictionary)=>('DATA_ELEMENT')
|
||||
EXPORTING iv_name = data_element_name
|
||||
RECEIVING ro_data_element = data_element.
|
||||
|
@ -567,17 +651,21 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
METHOD uuid_get_c22.
|
||||
|
||||
DATA lv_uuid TYPE c LENGTH 22.
|
||||
DATA lv_classname TYPE string.
|
||||
DATA lv_fm TYPE string.
|
||||
|
||||
TRY.
|
||||
|
||||
TRY.
|
||||
DATA(lv_classname) = `CL_SYSTEM_UUID`.
|
||||
|
||||
lv_classname = `CL_SYSTEM_UUID`.
|
||||
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c22
|
||||
RECEIVING uuid = lv_uuid.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
|
||||
lv_fm = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING ev_guid_22 = lv_uuid.
|
||||
|
||||
|
@ -610,17 +698,21 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD uuid_get_c32.
|
||||
DATA lv_uuid TYPE c LENGTH 32.
|
||||
DATA lv_classname TYPE string.
|
||||
DATA lv_fm TYPE string.
|
||||
|
||||
TRY.
|
||||
|
||||
TRY.
|
||||
DATA(lv_classname) = `CL_SYSTEM_UUID`.
|
||||
|
||||
lv_classname = `CL_SYSTEM_UUID`.
|
||||
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c32
|
||||
RECEIVING uuid = lv_uuid.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
|
||||
lv_fm = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING ev_guid_32 = lv_uuid.
|
||||
|
||||
|
@ -638,10 +730,12 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
DATA obj TYPE REF TO object.
|
||||
DATA content TYPE REF TO object.
|
||||
DATA lv_classname TYPE c LENGTH 30.
|
||||
DATA xco_cp_abap TYPE c LENGTH 11.
|
||||
|
||||
lv_classname = i_classname.
|
||||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
|
||||
xco_cp_abap = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>('CLASS')
|
||||
EXPORTING iv_name = lv_classname
|
||||
RECEIVING ro_class = obj.
|
||||
|
@ -663,14 +757,30 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <dfies> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <line> TYPE any.
|
||||
|
||||
DATA(comps) = VALUE cl_abap_structdescr=>component_table( ).
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr( cl_abap_structdescr=>describe_by_name( 'DFIES' ) ).
|
||||
DATA temp9 TYPE cl_abap_structdescr=>component_table.
|
||||
DATA comps LIKE temp9.
|
||||
DATA temp10 TYPE REF TO cl_abap_structdescr.
|
||||
DATA lo_struct LIKE temp10.
|
||||
DATA new_struct_desc TYPE REF TO cl_abap_structdescr.
|
||||
DATA new_table_desc TYPE REF TO cl_abap_tabledescr.
|
||||
DATA comp LIKE LINE OF comps.
|
||||
FIELD-SYMBOLS <value> TYPE any.
|
||||
FIELD-SYMBOLS <value_dest> TYPE any.
|
||||
CLEAR temp9.
|
||||
|
||||
comps = temp9.
|
||||
|
||||
temp10 ?= cl_abap_structdescr=>describe_by_name( 'DFIES' ).
|
||||
|
||||
lo_struct = temp10.
|
||||
comps = lo_struct->get_components( ).
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(new_struct_desc) = cl_abap_structdescr=>create( comps ).
|
||||
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
|
||||
|
||||
new_struct_desc = cl_abap_structdescr=>create( comps ).
|
||||
|
||||
new_table_desc = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA dfies TYPE HANDLE new_table_desc.
|
||||
|
@ -682,7 +792,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
IF tabname IS INITIAL.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_abap_api
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING val = `RTTI_BY_NAME_TAB_INITIAL`.
|
||||
ENDIF.
|
||||
|
||||
|
@ -691,14 +801,17 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
LOOP AT <dfies> ASSIGNING <line>.
|
||||
|
||||
LOOP AT comps INTO DATA(comp).
|
||||
|
||||
ASSIGN COMPONENT comp-name OF STRUCTURE <line> TO FIELD-SYMBOL(<value>).
|
||||
LOOP AT comps INTO comp.
|
||||
|
||||
|
||||
ASSIGN COMPONENT comp-name OF STRUCTURE <line> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
ASSIGN COMPONENT comp-name OF STRUCTURE s_dfies TO FIELD-SYMBOL(<value_dest>).
|
||||
|
||||
ASSIGN COMPONENT comp-name OF STRUCTURE s_dfies TO <value_dest>.
|
||||
IF <value_dest> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
@ -849,7 +962,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD rtti_get_t_dfies_by_table_name.
|
||||
|
||||
IF context_check_abap_cloud( ).
|
||||
IF context_check_abap_cloud( ) IS NOT INITIAL.
|
||||
result = rtti_get_t_attri_on_cloud( table_name ).
|
||||
ELSE.
|
||||
result = rtti_get_t_attri_on_prem( table_name ).
|
|
@ -3,14 +3,13 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_ABAP_API</CLSNAME>
|
||||
<CLSNAME>Z2UI5_CL_UTIL_ABAP</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abap api</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
|
@ -1,4 +1,4 @@
|
|||
CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
|
||||
CLASS z2ui5_cl_util_abap_http DEFINITION PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -6,14 +6,14 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
|
|||
IMPORTING
|
||||
server TYPE REF TO object
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_abap_api_http.
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_util_abap_http.
|
||||
|
||||
CLASS-METHODS factory_cloud
|
||||
IMPORTING
|
||||
req TYPE REF TO object
|
||||
res TYPE REF TO object
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_abap_api_http.
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_util_abap_http.
|
||||
|
||||
METHODS get_header_field
|
||||
IMPORTING
|
||||
|
@ -67,7 +67,7 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
||||
METHOD delete_response_cookie.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
|
@ -3,9 +3,9 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_ABAP_API_HTTP</CLSNAME>
|
||||
<CLSNAME>Z2UI5_CL_UTIL_ABAP_HTTP</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>http server</DESCRIPT>
|
||||
<DESCRIPT>abap api</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
|
@ -1,67 +0,0 @@
|
|||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_encoding FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_element_text FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_classes_impl_intf FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD test_func_get_uuid_32.
|
||||
|
||||
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c32( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 32 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_func_get_uuid_22.
|
||||
|
||||
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c22( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 22 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_encoding.
|
||||
|
||||
DATA(lv_string) = `my string`.
|
||||
DATA(lv_xstring) = z2ui5_cl_abap_api=>conv_get_xstring_by_string( lv_string ).
|
||||
DATA(lv_string2) = z2ui5_cl_abap_api=>conv_encode_x_base64( lv_xstring ).
|
||||
DATA(lv_xstring2) = z2ui5_cl_abap_api=>conv_decode_x_base64( lv_string2 ).
|
||||
DATA(lv_string3) = z2ui5_cl_abap_api=>conv_get_string_by_xstring( lv_xstring2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_string
|
||||
act = lv_string3 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_element_text.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_result) = z2ui5_cl_abap_api=>rtti_get_data_element_texts( `UNAME` ).
|
||||
cl_abap_unit_assert=>assert_not_initial( ls_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_classes_impl_intf.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(mt_classes) = z2ui5_cl_abap_api=>rtti_get_classes_impl_intf( `IF_SERIALIZABLE_OBJECT` ).
|
||||
cl_abap_unit_assert=>assert_not_initial( mt_classes ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,57 +0,0 @@
|
|||
CLASS z2ui5_cx_abap_api DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM cx_no_check FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ms_error,
|
||||
x_root TYPE REF TO cx_root,
|
||||
* uuid TYPE string,
|
||||
text TYPE string,
|
||||
END OF ms_error.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
val TYPE any OPTIONAL
|
||||
!previous TYPE REF TO cx_root OPTIONAL
|
||||
PREFERRED PARAMETER val.
|
||||
|
||||
METHODS if_message~get_text REDEFINITION.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cx_abap_api IMPLEMENTATION.
|
||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||
|
||||
super->constructor( previous = previous ).
|
||||
CLEAR textid.
|
||||
|
||||
TRY.
|
||||
ms_error-x_root ?= val.
|
||||
CATCH cx_root.
|
||||
ms_error-text = val.
|
||||
ENDTRY.
|
||||
* ms_error-uuid = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD if_message~get_text.
|
||||
|
||||
IF ms_error-x_root IS NOT INITIAL.
|
||||
result = ms_error-x_root->get_text( ).
|
||||
DATA(error) = abap_true.
|
||||
ELSEIF ms_error-text IS NOT INITIAL.
|
||||
result = ms_error-text.
|
||||
error = abap_true.
|
||||
ENDIF.
|
||||
|
||||
result = COND #( WHEN error = abap_true AND result IS INITIAL THEN `unknown error` ELSE result ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,23 +0,0 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_raise FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_raise.
|
||||
|
||||
TRY.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_abap_api
|
||||
EXPORTING val = `this is an error text`.
|
||||
|
||||
CATCH z2ui5_cx_abap_api INTO DATA(lx).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
|
||||
act = lx->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CX_ABAP_API</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abap api exception</DESCRIPT>
|
||||
<CATEGORY>40</CATEGORY>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -37,7 +37,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_CORE_SRV_JSON IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD model_front_to_back.
|
||||
|
@ -163,25 +163,24 @@ CLASS Z2UI5_CL_CORE_SRV_JSON IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
DATA(lo_comp) = result-s_front-o_comp_data.
|
||||
result-s_control-app_start = lo_comp->get( `/startupParameters/app_start/1` ).
|
||||
DATA(lv_app_start) = lo_comp->get( `/startupParameters/app_start/1` ).
|
||||
|
||||
result-s_control-app_start = lv_app_start.
|
||||
result-s_control-app_start = z2ui5_cl_util=>c_trim_upper( result-s_control-app_start ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
try.
|
||||
" result-s_control-app_start_draft = z2ui5_cl_util=>c_trim_upper(
|
||||
" z2ui5_cl_util=>url_param_get( val = `z2ui5-xapp-state`
|
||||
" url = result-s_front-search ) ).
|
||||
data(lv_hash) = result-s_front-hash.
|
||||
split lv_hash at '&/' into data(lv_dummy) lv_hash.
|
||||
if lv_hash is initial.
|
||||
TRY.
|
||||
DATA(lv_hash) = result-s_front-hash.
|
||||
SPLIT lv_hash AT '&/' INTO DATA(lv_dummy) lv_hash.
|
||||
IF lv_hash IS INITIAL.
|
||||
lv_hash = result-s_front-hash+2.
|
||||
endif.
|
||||
ENDIF.
|
||||
result-s_control-app_start_draft = z2ui5_cl_util=>c_trim_upper(
|
||||
z2ui5_cl_util=>url_param_get( val = `z2ui5-xapp-state`
|
||||
url = lv_hash ) ).
|
||||
catch cx_root.
|
||||
endtry.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
IF result-s_control-app_start IS NOT INITIAL.
|
||||
IF result-s_control-app_start(1) = `-`.
|
||||
REPLACE FIRST OCCURRENCE OF `-` IN result-s_control-app_start WITH `/`.
|
||||
|
|
|
@ -69,7 +69,7 @@ CLASS z2ui5_cl_http_handler DEFINITION
|
|||
PROTECTED SECTION.
|
||||
CLASS-DATA so_sticky_handler TYPE REF TO z2ui5_cl_core_handler.
|
||||
|
||||
DATA mo_server TYPE REF TO z2ui5_cl_abap_api_http.
|
||||
DATA mo_server TYPE REF TO z2ui5_cl_util_abap_http.
|
||||
|
||||
DATA ms_req TYPE z2ui5_if_core_types=>ty_s_http_req.
|
||||
DATA ms_res TYPE z2ui5_if_core_types=>ty_s_http_res.
|
||||
|
@ -109,7 +109,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
result = NEW #( ).
|
||||
|
||||
IF server IS BOUND.
|
||||
result->mo_server = z2ui5_cl_abap_api_http=>factory( server ).
|
||||
result->mo_server = z2ui5_cl_util_abap_http=>factory( server ).
|
||||
ELSEIF req IS BOUND AND res IS BOUND.
|
||||
result = factory_cloud( req = req
|
||||
res = res ).
|
||||
|
@ -122,7 +122,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
METHOD factory_cloud.
|
||||
|
||||
result = NEW #( ).
|
||||
result->mo_server = z2ui5_cl_abap_api_http=>factory_cloud( req = req
|
||||
result->mo_server = z2ui5_cl_util_abap_http=>factory_cloud( req = req
|
||||
res = res ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
Loading…
Reference in New Issue
Block a user