refactoring toolbox (#1735)

This commit is contained in:
oblomov-dev 2025-02-04 09:10:23 -05:00 committed by GitHub
parent ba1e7ed9b7
commit c3b2b8b12f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 198 additions and 252 deletions

View File

@ -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.

View File

@ -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 ).

View File

@ -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>

View File

@ -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 ).

View File

@ -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>

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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>

View File

@ -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 `/`.

View File

@ -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.