Refactoring2 (#1520)

* update

* update

* update

* update
This commit is contained in:
oblomov-dev 2024-10-27 15:33:52 +01:00 committed by GitHub
parent a0df28a4ab
commit 771f7f9d0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
66 changed files with 3486 additions and 4119 deletions

View File

@ -1,36 +0,0 @@
name: Clean-up ABAP Files
on:
push:
branches: ["main"]
# pull_request:
# branches: ["main"]
workflow_dispatch:
jobs:
Code-Cleanup:
runs-on: ubuntu-latest
steps:
- run: git config --global core.autocrlf true
- name: Checkout
uses: actions/checkout@v3
- name: Download ABAP Cleaner (latest version)
run: |
mkdir .cleanup
cd .cleanup
wget -q -c https://github.com/SAP/abap-cleaner/releases/latest/download/com.sap.adt.abapcleaner.app-linux.gtk.x86_64.tar.gz -O - | tar -xz
cd ..
- name: Clean-up files in /src
run: ./.cleanup/abapcleaner/abap-cleaner --sourcedir src --recursive --overwrite --profile cleaner-profile.cfj --release 750 --stats --usedrules
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: "style: code cleanup with ABAP cleaner"
add: "src"

View File

@ -33,7 +33,7 @@
"RemoveIncludeWarnings": "1", "RemoveIncludeWarnings": "1",
"RemoveEmptyLineAboveEndClass": "0", "RemoveEmptyLineAboveEndClass": "0",
"AddEmptyLineAboveSections": "1", "AddEmptyLineAboveSections": "1",
"RemoveEmptyLineBelowSections": "1", "RemoveEmptyLineBelowSections": "0",
"MaxEmptyLines": "1", "MaxEmptyLines": "1",
"AddLineBetweenDefTypes": "2" "AddLineBetweenDefTypes": "2"
} }

View File

@ -1,14 +1,14 @@
CLASS z2ui5_cl_abap_api DEFINITION CLASS z2ui5_cl_abap_api DEFINITION
PUBLIC PUBLIC
CREATE PUBLIC . CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
* abap-api - Serving a Release & Version Independent ABAP Layer " abap-api - Serving a Release & Version Independent ABAP Layer
* version: '0.0.1'. " version: '0.0.1'.
* origin: https://github.com/oblomov-dev/abap-api " origin: https://github.com/oblomov-dev/abap-api
* author: https://github.com/oblomov-dev " author: https://github.com/oblomov-dev
* license: MIT. " license: MIT.
TYPES: TYPES:
BEGIN OF ty_s_fix_val, BEGIN OF ty_s_fix_val,
@ -78,7 +78,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
short TYPE string, short TYPE string,
medium TYPE string, medium TYPE string,
long TYPE string, long TYPE string,
END OF ty_s_data_element_text . END OF ty_s_data_element_text.
TYPES: TYPES:
BEGIN OF ty_s_class_descr, BEGIN OF ty_s_class_descr,
@ -180,9 +180,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_abap_api IMPLEMENTATION. CLASS z2ui5_cl_abap_api IMPLEMENTATION.
METHOD context_check_abap_cloud. METHOD context_check_abap_cloud.
TRY. TRY.
@ -211,12 +209,9 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
lv_langu = langu. lv_langu = langu.
CALL METHOD elemdescr->('GET_DDIC_FIXED_VALUES') CALL METHOD elemdescr->('GET_DDIC_FIXED_VALUES')
EXPORTING EXPORTING p_langu = lv_langu
p_langu = lv_langu RECEIVING p_fixed_values = lt_values
RECEIVING EXCEPTIONS not_found = 1
p_fixed_values = lt_values
EXCEPTIONS
not_found = 1
no_ddic_type = 2 no_ddic_type = 2
OTHERS = 3. OTHERS = 3.
@ -237,50 +232,40 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'. DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'.
CALL METHOD (lv_web_http_name)=>('DECODE_X_BASE64') CALL METHOD (lv_web_http_name)=>('DECODE_X_BASE64')
EXPORTING EXPORTING encoded = val
encoded = val RECEIVING decoded = result.
RECEIVING
decoded = result.
CATCH cx_root. CATCH cx_root.
DATA(classname) = 'CL_HTTP_UTILITY'. DATA(classname) = 'CL_HTTP_UTILITY'.
CALL METHOD (classname)=>('DECODE_X_BASE64') CALL METHOD (classname)=>('DECODE_X_BASE64')
EXPORTING EXPORTING encoded = val
encoded = val RECEIVING decoded = result.
RECEIVING
decoded = result.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD conv_encode_x_base64. METHOD conv_encode_x_base64.
TRY. TRY.
DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'. DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'.
CALL METHOD (lv_web_http_name)=>('ENCODE_X_BASE64') CALL METHOD (lv_web_http_name)=>('ENCODE_X_BASE64')
EXPORTING EXPORTING unencoded = val
unencoded = val RECEIVING encoded = result.
RECEIVING
encoded = result.
CATCH cx_root. CATCH cx_root.
DATA(classname) = 'CL_HTTP_UTILITY'. DATA(classname) = 'CL_HTTP_UTILITY'.
CALL METHOD (classname)=>('ENCODE_X_BASE64') CALL METHOD (classname)=>('ENCODE_X_BASE64')
EXPORTING EXPORTING unencoded = val
unencoded = val RECEIVING encoded = result.
RECEIVING
encoded = result.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD conv_get_string_by_xstring. METHOD conv_get_string_by_xstring.
DATA conv TYPE REF TO object. DATA conv TYPE REF TO object.
@ -288,34 +273,26 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
TRY. TRY.
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'. DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
CALL METHOD (conv_codepage)=>create_in CALL METHOD (conv_codepage)=>create_in
RECEIVING RECEIVING instance = conv.
instance = conv.
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT') CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
EXPORTING EXPORTING source = val
source = val RECEIVING result = result.
RECEIVING
result = result.
CATCH cx_root. CATCH cx_root.
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'. DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
CALL METHOD (conv_in_class)=>create CALL METHOD (conv_in_class)=>create
EXPORTING EXPORTING encoding = 'UTF-8'
encoding = 'UTF-8' RECEIVING conv = conv.
RECEIVING
conv = conv.
CALL METHOD conv->('CONVERT') CALL METHOD conv->('CONVERT')
EXPORTING EXPORTING input = val
input = val IMPORTING data = result.
IMPORTING
data = result.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD conv_get_xstring_by_string. METHOD conv_get_xstring_by_string.
DATA conv TYPE REF TO object. DATA conv TYPE REF TO object.
@ -323,34 +300,26 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
TRY. TRY.
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'. DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
CALL METHOD (conv_codepage)=>create_out CALL METHOD (conv_codepage)=>create_out
RECEIVING RECEIVING instance = conv.
instance = conv.
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT') CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
EXPORTING EXPORTING source = val
source = val RECEIVING result = result.
RECEIVING
result = result.
CATCH cx_root. CATCH cx_root.
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'. DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
CALL METHOD (conv_out_class)=>create CALL METHOD (conv_out_class)=>create
EXPORTING EXPORTING encoding = 'UTF-8'
encoding = 'UTF-8' RECEIVING conv = conv.
RECEIVING
conv = conv.
CALL METHOD conv->('CONVERT') CALL METHOD conv->('CONVERT')
EXPORTING EXPORTING data = val
data = val IMPORTING buffer = result.
IMPORTING
buffer = result.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD source_get_method. METHOD source_get_method.
DATA object TYPE REF TO object. DATA object TYPE REF TO object.
@ -365,45 +334,35 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(xco_cp_abap) = 'XCO_CP_ABAP'. DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
CALL METHOD (xco_cp_abap)=>('CLASS') CALL METHOD (xco_cp_abap)=>('CLASS')
EXPORTING EXPORTING iv_name = lv_class
iv_name = lv_class RECEIVING ro_class = object.
RECEIVING
ro_class = object.
ASSIGN ('OBJECT->IF_XCO_AO_CLASS~IMPLEMENTATION') TO <any>. ASSIGN ('OBJECT->IF_XCO_AO_CLASS~IMPLEMENTATION') TO <any>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
object = <any>. object = <any>.
CALL METHOD object->('IF_XCO_CLAS_IMPLEMENTATION~METHOD') CALL METHOD object->('IF_XCO_CLAS_IMPLEMENTATION~METHOD')
EXPORTING EXPORTING iv_name = lv_method
iv_name = lv_method RECEIVING ro_method = object.
RECEIVING
ro_method = object.
CALL METHOD object->('IF_XCO_CLAS_I_METHOD~CONTENT') CALL METHOD object->('IF_XCO_CLAS_I_METHOD~CONTENT')
RECEIVING RECEIVING ro_content = object.
ro_content = object.
CALL METHOD object->('IF_XCO_CLAS_I_METHOD_CONTENT~GET_SOURCE') CALL METHOD object->('IF_XCO_CLAS_I_METHOD_CONTENT~GET_SOURCE')
RECEIVING RECEIVING rt_source = result.
rt_source = result.
CATCH cx_root. CATCH cx_root.
DATA(lv_name) = 'CL_OO_FACTORY'. DATA(lv_name) = 'CL_OO_FACTORY'.
CALL METHOD (lv_name)=>('CREATE_INSTANCE') CALL METHOD (lv_name)=>('CREATE_INSTANCE')
RECEIVING RECEIVING result = object.
result = object.
CALL METHOD object->('IF_OO_CLIF_SOURCE_FACTORY~CREATE_CLIF_SOURCE') CALL METHOD object->('IF_OO_CLIF_SOURCE_FACTORY~CREATE_CLIF_SOURCE')
EXPORTING EXPORTING clif_name = lv_class
clif_name = lv_class RECEIVING result = object.
RECEIVING
result = object.
CALL METHOD object->('IF_OO_CLIF_SOURCE~GET_SOURCE') CALL METHOD object->('IF_OO_CLIF_SOURCE~GET_SOURCE')
IMPORTING IMPORTING source = lt_source.
source = lt_source.
DATA(lv_check_method) = abap_false. DATA(lv_check_method) = abap_false.
LOOP AT lt_source INTO DATA(lv_source). LOOP AT lt_source INTO DATA(lv_source).
@ -413,7 +372,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
lv_check_method = abap_false. lv_check_method = abap_false.
ENDIF. ENDIF.
IF lv_source_upper CS `METHOD ` && lv_method. IF lv_source_upper CS |METHOD { lv_method }|.
lv_check_method = abap_true. lv_check_method = abap_true.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
@ -430,7 +389,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_classes_impl_intf. METHOD rtti_get_classes_impl_intf.
DATA obj TYPE REF TO object. DATA obj TYPE REF TO object.
@ -456,10 +414,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(xco_cp_abap) = 'XCO_CP_ABAP'. DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
CALL METHOD (xco_cp_abap)=>interface CALL METHOD (xco_cp_abap)=>interface
EXPORTING EXPORTING iv_name = ls_clskey-clsname
iv_name = ls_clskey-clsname RECEIVING ro_interface = obj.
RECEIVING
ro_interface = obj.
ASSIGN obj->('IF_XCO_AO_INTERFACE~IMPLEMENTATIONS') TO <any>. ASSIGN obj->('IF_XCO_AO_INTERFACE~IMPLEMENTATIONS') TO <any>.
IF sy-subrc <> 0. IF sy-subrc <> 0.
@ -474,11 +430,9 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
obj = <any>. obj = <any>.
CALL METHOD obj->('IF_XCO_INTF_IMPLEMENTATIONS~GET_NAMES') CALL METHOD obj->('IF_XCO_INTF_IMPLEMENTATIONS~GET_NAMES')
RECEIVING RECEIVING rt_names = lt_implementation_names.
rt_names = lt_implementation_names.
result = VALUE #( result = VALUE #( FOR implementation_name IN lt_implementation_names
FOR implementation_name IN lt_implementation_names
( classname = implementation_name ( classname = implementation_name
description = rtti_get_class_descr_on_cloud( implementation_name ) ) ). description = rtti_get_class_descr_on_cloud( implementation_name ) ) ).
@ -488,12 +442,9 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(lv_fm) = `SEO_INTERFACE_IMPLEM_GET_ALL`. DATA(lv_fm) = `SEO_INTERFACE_IMPLEM_GET_ALL`.
CALL FUNCTION lv_fm CALL FUNCTION lv_fm
EXPORTING EXPORTING intkey = ls_key
intkey = ls_key IMPORTING impkeys = lt_impl
IMPORTING EXCEPTIONS not_existing = 1
impkeys = lt_impl
EXCEPTIONS
not_existing = 1
OTHERS = 2. OTHERS = 2.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RETURN. RETURN.
@ -511,10 +462,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
lv_fm = `SEO_CLASS_READ`. lv_fm = `SEO_CLASS_READ`.
CALL FUNCTION lv_fm CALL FUNCTION lv_fm
EXPORTING EXPORTING clskey = ls_clskey
clskey = ls_clskey IMPORTING class = <class>.
IMPORTING
class = <class>.
ASSIGN ASSIGN
COMPONENT 'DESCRIPT' COMPONENT 'DESCRIPT'
@ -532,20 +481,18 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_data_element_texts. METHOD rtti_get_data_element_texts.
DATA: DATA ddic_ref TYPE REF TO data.
ddic_ref TYPE REF TO data, DATA data_element TYPE REF TO object.
data_element TYPE REF TO object, DATA content TYPE REF TO object.
content TYPE REF TO object, DATA: BEGIN OF ddic,
BEGIN OF ddic,
reptext TYPE string, reptext TYPE string,
scrtext_s TYPE string, scrtext_s TYPE string,
scrtext_m TYPE string, scrtext_m TYPE string,
scrtext_l TYPE string, scrtext_l TYPE string,
END OF ddic, END OF ddic.
exists TYPE abap_bool. DATA exists TYPE abap_bool.
DATA(data_element_name) = i_data_element_name. DATA(data_element_name) = i_data_element_name.
@ -558,13 +505,9 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ASSIGN ddic_ref->* TO FIELD-SYMBOL(<ddic>). ASSIGN ddic_ref->* TO FIELD-SYMBOL(<ddic>).
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
cl_abap_elemdescr=>describe_by_name( cl_abap_elemdescr=>describe_by_name( EXPORTING p_name = data_element_name
EXPORTING RECEIVING p_descr_ref = DATA(lo_typedescr)
p_name = data_element_name EXCEPTIONS OTHERS = 1 ).
RECEIVING
p_descr_ref = DATA(lo_typedescr)
EXCEPTIONS
OTHERS = 1 ).
IF sy-subrc <> 0. IF sy-subrc <> 0.
RETURN. RETURN.
ENDIF. ENDIF.
@ -572,10 +515,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(data_descr) = CAST cl_abap_datadescr( lo_typedescr ). DATA(data_descr) = CAST cl_abap_datadescr( lo_typedescr ).
CALL METHOD data_descr->('GET_DDIC_FIELD') CALL METHOD data_descr->('GET_DDIC_FIELD')
RECEIVING RECEIVING p_flddescr = <ddic>
p_flddescr = <ddic> EXCEPTIONS not_found = 1
EXCEPTIONS
not_found = 1
no_ddic_type = 2 no_ddic_type = 2
OTHERS = 3. OTHERS = 3.
IF sy-subrc <> 0. IF sy-subrc <> 0.
@ -592,38 +533,30 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
TRY. TRY.
DATA(xco_cp_abap_dictionary) = 'XCO_CP_ABAP_DICTIONARY'. DATA(xco_cp_abap_dictionary) = 'XCO_CP_ABAP_DICTIONARY'.
CALL METHOD (xco_cp_abap_dictionary)=>('DATA_ELEMENT') CALL METHOD (xco_cp_abap_dictionary)=>('DATA_ELEMENT')
EXPORTING EXPORTING iv_name = data_element_name
iv_name = data_element_name RECEIVING ro_data_element = data_element.
RECEIVING
ro_data_element = data_element.
CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~EXISTS') CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~EXISTS')
RECEIVING RECEIVING rv_exists = exists.
rv_exists = exists.
IF exists = abap_false. IF exists = abap_false.
RETURN. RETURN.
ENDIF. ENDIF.
CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~CONTENT') CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~CONTENT')
RECEIVING RECEIVING ro_content = content.
ro_content = content.
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_HEADING_FIELD_LABEL') CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_HEADING_FIELD_LABEL')
RECEIVING RECEIVING rs_heading_field_label = result-header.
rs_heading_field_label = result-header.
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_SHORT_FIELD_LABEL') CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_SHORT_FIELD_LABEL')
RECEIVING RECEIVING rs_short_field_label = result-short.
rs_short_field_label = result-short.
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_MEDIUM_FIELD_LABEL') CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_MEDIUM_FIELD_LABEL')
RECEIVING RECEIVING rs_medium_field_label = result-medium.
rs_medium_field_label = result-medium.
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_LONG_FIELD_LABEL') CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_LONG_FIELD_LABEL')
RECEIVING RECEIVING rs_long_field_label = result-long.
rs_long_field_label = result-long.
CATCH cx_root. CATCH cx_root.
ENDTRY. ENDTRY.
@ -631,7 +564,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD uuid_get_c22. METHOD uuid_get_c22.
DATA lv_uuid TYPE c LENGTH 22. DATA lv_uuid TYPE c LENGTH 22.
@ -641,15 +573,13 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
TRY. TRY.
DATA(lv_classname) = `CL_SYSTEM_UUID`. DATA(lv_classname) = `CL_SYSTEM_UUID`.
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c22 CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c22
RECEIVING RECEIVING uuid = lv_uuid.
uuid = lv_uuid.
CATCH cx_sy_dyn_call_illegal_class. CATCH cx_sy_dyn_call_illegal_class.
DATA(lv_fm) = `GUID_CREATE`. DATA(lv_fm) = `GUID_CREATE`.
CALL FUNCTION lv_fm CALL FUNCTION lv_fm
IMPORTING IMPORTING ev_guid_22 = lv_uuid.
ev_guid_22 = lv_uuid.
ENDTRY. ENDTRY.
@ -678,7 +608,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD uuid_get_c32. METHOD uuid_get_c32.
DATA lv_uuid TYPE c LENGTH 32. DATA lv_uuid TYPE c LENGTH 32.
@ -687,15 +616,13 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
TRY. TRY.
DATA(lv_classname) = `CL_SYSTEM_UUID`. DATA(lv_classname) = `CL_SYSTEM_UUID`.
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c32 CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c32
RECEIVING RECEIVING uuid = lv_uuid.
uuid = lv_uuid.
CATCH cx_root. CATCH cx_root.
DATA(lv_fm) = `GUID_CREATE`. DATA(lv_fm) = `GUID_CREATE`.
CALL FUNCTION lv_fm CALL FUNCTION lv_fm
IMPORTING IMPORTING ev_guid_32 = lv_uuid.
ev_guid_32 = lv_uuid.
ENDTRY. ENDTRY.
@ -706,7 +633,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_class_descr_on_cloud. METHOD rtti_get_class_descr_on_cloud.
DATA obj TYPE REF TO object. DATA obj TYPE REF TO object.
@ -717,22 +643,17 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
DATA(xco_cp_abap) = 'XCO_CP_ABAP'. DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
CALL METHOD (xco_cp_abap)=>('CLASS') CALL METHOD (xco_cp_abap)=>('CLASS')
EXPORTING EXPORTING iv_name = lv_classname
iv_name = lv_classname RECEIVING ro_class = obj.
RECEIVING
ro_class = obj.
CALL METHOD obj->('IF_XCO_AO_CLASS~CONTENT') CALL METHOD obj->('IF_XCO_AO_CLASS~CONTENT')
RECEIVING RECEIVING ro_content = content.
ro_content = content.
CALL METHOD content->('IF_XCO_CLAS_CONTENT~GET_SHORT_DESCRIPTION') CALL METHOD content->('IF_XCO_CLAS_CONTENT~GET_SHORT_DESCRIPTION')
RECEIVING RECEIVING rv_short_description = result.
rv_short_description = result.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_attri_on_prem. METHOD rtti_get_t_attri_on_prem.
DATA structdescr TYPE REF TO cl_abap_structdescr. DATA structdescr TYPE REF TO cl_abap_structdescr.
@ -762,8 +683,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
IF tabname IS INITIAL. IF tabname IS INITIAL.
RAISE EXCEPTION TYPE z2ui5_cx_abap_api RAISE EXCEPTION TYPE z2ui5_cx_abap_api
EXPORTING EXPORTING val = `RTTI_BY_NAME_TAB_INITIAL`.
val = `RTTI_BY_NAME_TAB_INITIAL`.
ENDIF. ENDIF.
structdescr ?= cl_abap_structdescr=>describe_by_name( tabname ). structdescr ?= cl_abap_structdescr=>describe_by_name( tabname ).
@ -927,7 +847,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_dfies_by_table_name. METHOD rtti_get_t_dfies_by_table_name.
IF context_check_abap_cloud( ). IF context_check_abap_cloud( ).
@ -937,6 +856,5 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,6 +1,5 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check. METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check.
@ -13,14 +12,12 @@ ENDCLASS.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD test_func_get_uuid_32. METHOD test_func_get_uuid_32.
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c32( ). DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c32( ).
cl_abap_unit_assert=>assert_not_initial( lv_uuid ). cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
act = 32 act = 32 ).
exp = strlen( lv_uuid ) ).
ENDMETHOD. ENDMETHOD.
@ -28,9 +25,8 @@ CLASS ltcl_test IMPLEMENTATION.
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c22( ). DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c22( ).
cl_abap_unit_assert=>assert_not_initial( lv_uuid ). cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
act = 22 act = 22 ).
exp = strlen( lv_uuid ) ).
ENDMETHOD. ENDMETHOD.
@ -42,9 +38,8 @@ CLASS ltcl_test IMPLEMENTATION.
DATA(lv_xstring2) = z2ui5_cl_abap_api=>conv_decode_x_base64( lv_string2 ). 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 ). DATA(lv_string3) = z2ui5_cl_abap_api=>conv_get_string_by_xstring( lv_xstring2 ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = lv_string
act = lv_string3 act = lv_string3 ).
exp = lv_string ).
ENDMETHOD. ENDMETHOD.
@ -69,5 +64,4 @@ CLASS ltcl_test IMPLEMENTATION.
cl_abap_unit_assert=>assert_not_initial( mt_classes ). cl_abap_unit_assert=>assert_not_initial( mt_classes ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -35,7 +35,7 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
METHODS set_status METHODS set_status
IMPORTING IMPORTING
code TYPE i !code TYPE i
reason TYPE clike. reason TYPE clike.
METHODS set_session_stateful METHODS set_session_stateful
@ -54,7 +54,7 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
METHODS set_header_field METHODS set_header_field
IMPORTING IMPORTING
n TYPE clike !n TYPE clike
v TYPE clike. v TYPE clike.
DATA mo_server_onprem TYPE REF TO object. DATA mo_server_onprem TYPE REF TO object.
@ -62,11 +62,12 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
DATA mo_response_cloud TYPE REF TO object. DATA mo_response_cloud TYPE REF TO object.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
METHOD delete_response_cookie. METHOD delete_response_cookie.
DATA(lv_val) = CONV string( val ). DATA(lv_val) = CONV string( val ).
@ -80,8 +81,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('DELETE_COOKIE') CALL METHOD object->('DELETE_COOKIE')
EXPORTING EXPORTING name = lv_val.
name = lv_val.
ELSE. ELSE.
@ -97,6 +97,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
DATA object TYPE REF TO object. DATA object TYPE REF TO object.
FIELD-SYMBOLS <any> TYPE any. FIELD-SYMBOLS <any> TYPE any.
DATA(lv_val) = CONV string( val ). DATA(lv_val) = CONV string( val ).
IF mo_server_onprem IS BOUND. IF mo_server_onprem IS BOUND.
@ -105,10 +106,8 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('GET_COOKIE') CALL METHOD object->('GET_COOKIE')
EXPORTING EXPORTING name = lv_val
name = lv_val IMPORTING value = result.
IMPORTING
value = result.
ELSE. ELSE.
@ -126,6 +125,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
DATA object TYPE REF TO object. DATA object TYPE REF TO object.
FIELD-SYMBOLS <any> TYPE any. FIELD-SYMBOLS <any> TYPE any.
DATA(lv_val) = CONV string( val ). DATA(lv_val) = CONV string( val ).
IF mo_server_onprem IS BOUND. IF mo_server_onprem IS BOUND.
@ -134,18 +134,14 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('GET_HEADER_FIELD') CALL METHOD object->('GET_HEADER_FIELD')
EXPORTING EXPORTING name = lv_val
name = lv_val RECEIVING value = result.
RECEIVING
value = result.
ELSE. ELSE.
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_HEADER_FIELD') CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_HEADER_FIELD')
EXPORTING EXPORTING i_name = lv_val
i_name = lv_val RECEIVING r_value = result.
RECEIVING
r_value = result.
ENDIF. ENDIF.
@ -164,15 +160,13 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('SET_HEADER_FIELD') CALL METHOD object->('SET_HEADER_FIELD')
EXPORTING EXPORTING name = lv_n
name = lv_n
value = lv_v. value = lv_v.
ELSE. ELSE.
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_HEADER_FIELD') CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_HEADER_FIELD')
EXPORTING EXPORTING i_name = lv_n
i_name = lv_n
i_value = lv_v. i_value = lv_v.
ENDIF. ENDIF.
@ -205,14 +199,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('GET_CDATA') CALL METHOD object->('GET_CDATA')
RECEIVING RECEIVING data = result.
data = result.
ELSE. ELSE.
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_TEXT') CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_TEXT')
RECEIVING RECEIVING r_value = result.
r_value = result.
ENDIF. ENDIF.
@ -229,14 +221,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('IF_HTTP_REQUEST~GET_METHOD') CALL METHOD object->('IF_HTTP_REQUEST~GET_METHOD')
RECEIVING RECEIVING method = result.
method = result.
ELSE. ELSE.
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_METHOD') CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_METHOD')
RECEIVING RECEIVING r_value = result.
r_value = result.
ENDIF. ENDIF.
@ -253,14 +243,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('SET_CDATA') CALL METHOD object->('SET_CDATA')
EXPORTING EXPORTING data = val.
data = val.
ELSE. ELSE.
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_TEXT') CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_TEXT')
EXPORTING EXPORTING i_text = val.
i_text = val.
ENDIF. ENDIF.
@ -270,6 +258,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
DATA object TYPE REF TO object. DATA object TYPE REF TO object.
FIELD-SYMBOLS <any> TYPE any. FIELD-SYMBOLS <any> TYPE any.
DATA(lv_reason) = CONV string( reason ). DATA(lv_reason) = CONV string( reason ).
IF mo_server_onprem IS BOUND. IF mo_server_onprem IS BOUND.
@ -278,15 +267,13 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
object = <any>. object = <any>.
CALL METHOD object->('IF_HTTP_RESPONSE~SET_STATUS') CALL METHOD object->('IF_HTTP_RESPONSE~SET_STATUS')
EXPORTING EXPORTING code = code
code = code
reason = lv_reason. reason = lv_reason.
ELSE. ELSE.
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_STATUS') CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_STATUS')
EXPORTING EXPORTING i_code = code
i_code = code
i_reason = lv_reason. i_reason = lv_reason.
ENDIF. ENDIF.
@ -298,8 +285,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
IF mo_server_onprem IS BOUND. IF mo_server_onprem IS BOUND.
CALL METHOD mo_server_onprem->('SET_SESSION_STATEFUL') CALL METHOD mo_server_onprem->('SET_SESSION_STATEFUL')
EXPORTING EXPORTING stateful = val.
stateful = val.
ELSE. ELSE.
@ -308,5 +294,4 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,8 +1,7 @@
CLASS z2ui5_cx_abap_api DEFINITION CLASS z2ui5_cx_abap_api DEFINITION
PUBLIC PUBLIC
INHERITING FROM cx_no_check INHERITING FROM cx_no_check FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -11,26 +10,23 @@ CLASS z2ui5_cx_abap_api DEFINITION
x_root TYPE REF TO cx_root, x_root TYPE REF TO cx_root,
* uuid TYPE string, * uuid TYPE string,
text TYPE string, text TYPE string,
END OF ms_error . END OF ms_error.
METHODS constructor METHODS constructor
IMPORTING IMPORTING
!val TYPE any OPTIONAL val TYPE any OPTIONAL
!previous TYPE REF TO cx_root OPTIONAL !previous TYPE REF TO cx_root OPTIONAL
PREFERRED PARAMETER val. PREFERRED PARAMETER val.
METHODS if_message~get_text METHODS if_message~get_text REDEFINITION.
REDEFINITION.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cx_abap_api IMPLEMENTATION. CLASS z2ui5_cx_abap_api IMPLEMENTATION.
METHOD constructor ##ADT_SUPPRESS_GENERATION. METHOD constructor ##ADT_SUPPRESS_GENERATION.
super->constructor( previous = previous ). super->constructor( previous = previous ).
@ -45,7 +41,6 @@ CLASS z2ui5_cx_abap_api IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD if_message~get_text. METHOD if_message~get_text.
IF ms_error-x_root IS NOT INITIAL. IF ms_error-x_root IS NOT INITIAL.

View File

@ -1,6 +1,5 @@
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING CLASS ltcl_unit_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
RISK LEVEL DANGEROUS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_raise FOR TESTING RAISING cx_static_check. METHODS test_raise FOR TESTING RAISING cx_static_check.
@ -8,21 +7,17 @@ ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION. CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_raise. METHOD test_raise.
TRY. TRY.
RAISE EXCEPTION TYPE z2ui5_cx_abap_api RAISE EXCEPTION TYPE z2ui5_cx_abap_api
EXPORTING EXPORTING val = `this is an error text`.
val = `this is an error text`.
CATCH z2ui5_cx_abap_api INTO DATA(lx). CATCH z2ui5_cx_abap_api INTO DATA(lx).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
act = lx->get_text( ) act = lx->get_text( ) ).
exp = `this is an error text` ).
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,15 +1,15 @@
CLASS z2ui5_cl_util DEFINITION CLASS z2ui5_cl_util DEFINITION
PUBLIC PUBLIC
CREATE PUBLIC INHERITING FROM z2ui5_cl_abap_api
INHERITING FROM z2ui5_cl_abap_api. CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
* abap-toolkit - Utility Functions for ABAP Cloud & Standard ABAP " abap-toolkit - Utility Functions for ABAP Cloud & Standard ABAP
* version: '0.0.1'. " version: '0.0.1'.
* origin: https://github.com/oblomov-dev/abap-toolkit " origin: https://github.com/oblomov-dev/abap-toolkit
* author: https://github.com/oblomov-dev " author: https://github.com/oblomov-dev
* license: MIT. " license: MIT.
TYPES: TYPES:
BEGIN OF ty_s_name_value, BEGIN OF ty_s_name_value,
@ -85,7 +85,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS rtti_get_t_attri_by_include CLASS-METHODS rtti_get_t_attri_by_include
IMPORTING IMPORTING
type TYPE REF TO cl_abap_datadescr !type TYPE REF TO cl_abap_datadescr
RETURNING RETURNING
VALUE(result) TYPE abap_component_tab. VALUE(result) TYPE abap_component_tab.
@ -153,7 +153,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS filter_itab CLASS-METHODS filter_itab
IMPORTING IMPORTING
filter TYPE ty_t_filter_multi !filter TYPE ty_t_filter_multi
CHANGING CHANGING
val TYPE STANDARD TABLE. val TYPE STANDARD TABLE.
@ -175,7 +175,6 @@ CLASS z2ui5_cl_util DEFINITION
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS filter_get_sql_by_sql_string CLASS-METHODS filter_get_sql_by_sql_string
IMPORTING IMPORTING
val TYPE clike val TYPE clike
@ -184,20 +183,20 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS url_param_get CLASS-METHODS url_param_get
IMPORTING IMPORTING
!val TYPE string val TYPE string
!url TYPE string url TYPE string
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS url_param_create_url CLASS-METHODS url_param_create_url
IMPORTING IMPORTING
!t_params TYPE ty_t_name_value t_params TYPE ty_t_name_value
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS url_param_set CLASS-METHODS url_param_set
IMPORTING IMPORTING
!url TYPE string url TYPE string
!name TYPE string !name TYPE string
!value TYPE string !value TYPE string
RETURNING RETURNING
@ -223,7 +222,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS x_check_raise CLASS-METHODS x_check_raise
IMPORTING IMPORTING
!v TYPE clike DEFAULT `CX_SY_SUBRC` v TYPE clike DEFAULT `CX_SY_SUBRC`
!when TYPE xfeld. !when TYPE xfeld.
CLASS-METHODS x_raise CLASS-METHODS x_raise
@ -237,19 +236,19 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS json_stringify CLASS-METHODS json_stringify
IMPORTING IMPORTING
any TYPE any !any TYPE any
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS xml_parse CLASS-METHODS xml_parse
IMPORTING IMPORTING
xml TYPE clike !xml TYPE clike
EXPORTING EXPORTING
any TYPE any. !any TYPE any.
CLASS-METHODS xml_stringify CLASS-METHODS xml_stringify
IMPORTING IMPORTING
any TYPE any !any TYPE any
RETURNING RETURNING
VALUE(result) TYPE string VALUE(result) TYPE string
RAISING RAISING
@ -271,7 +270,7 @@ CLASS z2ui5_cl_util DEFINITION
IMPORTING IMPORTING
val TYPE any val TYPE any
CHANGING CHANGING
data TYPE any. !data TYPE any.
CLASS-METHODS c_trim_upper CLASS-METHODS c_trim_upper
IMPORTING IMPORTING
@ -281,7 +280,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS xml_srtti_stringify CLASS-METHODS xml_srtti_stringify
IMPORTING IMPORTING
data TYPE any !data TYPE any
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -297,8 +296,8 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS time_substract_seconds CLASS-METHODS time_substract_seconds
IMPORTING IMPORTING
time TYPE timestampl !time TYPE timestampl
seconds TYPE i !seconds TYPE i
RETURNING RETURNING
VALUE(result) TYPE timestampl. VALUE(result) TYPE timestampl.
@ -377,7 +376,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS filter_update_tokens CLASS-METHODS filter_update_tokens
IMPORTING IMPORTING
val TYPE ty_t_filter_multi val TYPE ty_t_filter_multi
name TYPE string !name TYPE string
RETURNING RETURNING
VALUE(result) TYPE ty_t_filter_multi. VALUE(result) TYPE ty_t_filter_multi.
@ -407,19 +406,19 @@ CLASS z2ui5_cl_util DEFINITION
IMPORTING IMPORTING
val TYPE STANDARD TABLE val TYPE STANDARD TABLE
CHANGING CHANGING
tab TYPE STANDARD TABLE. !tab TYPE STANDARD TABLE.
CLASS-METHODS itab_filter_by_val CLASS-METHODS itab_filter_by_val
IMPORTING IMPORTING
val TYPE clike val TYPE clike
CHANGING CHANGING
tab TYPE STANDARD TABLE. !tab TYPE STANDARD TABLE.
CLASS-METHODS itab_filter_by_t_range CLASS-METHODS itab_filter_by_t_range
IMPORTING IMPORTING
val TYPE ty_t_filter_multi val TYPE ty_t_filter_multi
CHANGING CHANGING
tab TYPE STANDARD TABLE. !tab TYPE STANDARD TABLE.
CLASS-METHODS time_get_time_by_stampl CLASS-METHODS time_get_time_by_stampl
IMPORTING IMPORTING
@ -435,7 +434,7 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS conv_copy_ref_data CLASS-METHODS conv_copy_ref_data
IMPORTING IMPORTING
from TYPE any !from TYPE any
RETURNING RETURNING
VALUE(result) TYPE REF TO data. VALUE(result) TYPE REF TO data.
@ -445,11 +444,12 @@ CLASS z2ui5_cl_util DEFINITION
CLASS-METHODS rtti_tab_get_relative_name CLASS-METHODS rtti_tab_get_relative_name
IMPORTING IMPORTING
table TYPE any !table TYPE any
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
CLASS-METHODS check_raise_srtti_installed. CLASS-METHODS check_raise_srtti_installed.
CLASS-METHODS rtti_check_clike CLASS-METHODS rtti_check_clike
IMPORTING IMPORTING
val TYPE any val TYPE any
@ -457,15 +457,13 @@ CLASS z2ui5_cl_util DEFINITION
VALUE(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_util IMPLEMENTATION. CLASS z2ui5_cl_util IMPLEMENTATION.
METHOD boolean_abap_2_json. METHOD boolean_abap_2_json.
IF boolean_check_by_data( val ). IF boolean_check_by_data( val ).
@ -476,7 +474,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD boolean_check_by_data. METHOD boolean_check_by_data.
TRY. TRY.
@ -487,7 +484,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD boolean_check_by_name. METHOD boolean_check_by_name.
CASE val. CASE val.
@ -505,7 +501,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD check_bound_a_not_inital. METHOD check_bound_a_not_inital.
IF val IS NOT BOUND. IF val IS NOT BOUND.
@ -516,7 +511,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD check_unassign_inital. METHOD check_unassign_inital.
IF val IS INITIAL. IF val IS INITIAL.
@ -531,7 +525,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD conv_copy_ref_data. METHOD conv_copy_ref_data.
FIELD-SYMBOLS <from> TYPE data. FIELD-SYMBOLS <from> TYPE data.
@ -549,14 +542,12 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD conv_get_as_data_ref. METHOD conv_get_as_data_ref.
GET REFERENCE OF val INTO result. GET REFERENCE OF val INTO result.
ENDMETHOD. ENDMETHOD.
METHOD c_trim. METHOD c_trim.
result = shift_left( shift_right( CONV string( val ) ) ). result = shift_left( shift_right( CONV string( val ) ) ).
@ -568,21 +559,18 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD c_trim_lower. METHOD c_trim_lower.
result = to_lower( c_trim( CONV string( val ) ) ). result = to_lower( c_trim( CONV string( val ) ) ).
ENDMETHOD. ENDMETHOD.
METHOD c_trim_upper. METHOD c_trim_upper.
result = to_upper( c_trim( CONV string( val ) ) ). result = to_upper( c_trim( CONV string( val ) ) ).
ENDMETHOD. ENDMETHOD.
METHOD filter_itab. METHOD filter_itab.
DATA ref TYPE REF TO data. DATA ref TYPE REF TO data.
@ -606,7 +594,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_multi_by_data. METHOD filter_get_multi_by_data.
LOOP AT rtti_get_t_attri_by_any( val ) REFERENCE INTO DATA(lr_comp). LOOP AT rtti_get_t_attri_by_any( val ) REFERENCE INTO DATA(lr_comp).
@ -615,32 +602,43 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_range_by_token. METHOD filter_get_range_by_token.
DATA(lv_length) = strlen( value ) - 1. DATA(lv_length) = strlen( value ) - 1.
CASE value(1). CASE value(1).
WHEN `=`. WHEN `=`.
result = VALUE #( sign = `I` option = `EQ` low = value+1 ). result = VALUE #( sign = `I`
option = `EQ`
low = value+1 ).
WHEN `<`. WHEN `<`.
IF value+1(1) = `=`. IF value+1(1) = `=`.
result = VALUE #( sign = `I` option = `LE` low = value+2 ). result = VALUE #( sign = `I`
option = `LE`
low = value+2 ).
ELSE. ELSE.
result = VALUE #( sign = `I` option = `LT` low = value+1 ). result = VALUE #( sign = `I`
option = `LT`
low = value+1 ).
ENDIF. ENDIF.
WHEN `>`. WHEN `>`.
IF value+1(1) = `=`. IF value+1(1) = `=`.
result = VALUE #( sign = `I` option = `GE` low = value+2 ). result = VALUE #( sign = `I`
option = `GE`
low = value+2 ).
ELSE. ELSE.
result = VALUE #( sign = `I` option = `GT` low = value+1 ). result = VALUE #( sign = `I`
option = `GT`
low = value+1 ).
ENDIF. ENDIF.
WHEN `*`. WHEN `*`.
IF value+lv_length(1) = `*`. IF value+lv_length(1) = `*`.
SHIFT value RIGHT DELETING TRAILING `*`. SHIFT value RIGHT DELETING TRAILING `*`.
SHIFT value LEFT DELETING LEADING `*`. SHIFT value LEFT DELETING LEADING `*`.
result = VALUE #( sign = `I` option = `CP` low = value ). result = VALUE #( sign = `I`
option = `CP`
low = value ).
ENDIF. ENDIF.
WHEN OTHERS. WHEN OTHERS.
@ -648,14 +646,15 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
SPLIT value AT `...` INTO result-low result-high. SPLIT value AT `...` INTO result-low result-high.
result-option = `BT`. result-option = `BT`.
ELSE. ELSE.
result = VALUE #( sign = `I` option = `EQ` low = value ). result = VALUE #( sign = `I`
option = `EQ`
low = value ).
ENDIF. ENDIF.
ENDCASE. ENDCASE.
ENDMETHOD. ENDMETHOD.
METHOD filter_update_tokens. METHOD filter_update_tokens.
result = val. result = val.
@ -665,12 +664,16 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDLOOP. ENDLOOP.
LOOP AT lr_filter->t_token_added INTO ls_token. LOOP AT lr_filter->t_token_added INTO ls_token.
INSERT VALUE #( key = ls_token-key text = ls_token-text visible = abap_true editable = abap_true ) INTO TABLE lr_filter->t_token. INSERT VALUE #( key = ls_token-key
text = ls_token-text
visible = abap_true
editable = abap_true ) INTO TABLE lr_filter->t_token.
ENDLOOP. ENDLOOP.
CLEAR lr_filter->t_token_removed. CLEAR lr_filter->t_token_removed.
CLEAR lr_filter->t_token_added. CLEAR lr_filter->t_token_added.
" TODO: variable is assigned but never used (ABAP cleaner)
DATA(lt_token) = result[ name = name ]-t_token. DATA(lt_token) = result[ name = name ]-t_token.
DATA(lt_range) = z2ui5_cl_util=>filter_get_range_t_by_token_t( result[ name = name ]-t_token ). DATA(lt_range) = z2ui5_cl_util=>filter_get_range_t_by_token_t( result[ name = name ]-t_token ).
lr_filter->t_range = lt_range. lr_filter->t_range = lt_range.
@ -685,11 +688,9 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_token_range_mapping. METHOD filter_get_token_range_mapping.
result = VALUE #( result = VALUE #( ( n = `EQ` v = `={LOW}` )
( n = `EQ` v = `={LOW}` )
( n = `LT` v = `<{LOW}` ) ( n = `LT` v = `<{LOW}` )
( n = `LE` v = `<={LOW}` ) ( n = `LE` v = `<={LOW}` )
( n = `GT` v = `>{LOW}` ) ( n = `GT` v = `>{LOW}` )
@ -702,18 +703,14 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_token_t_by_range_t. METHOD filter_get_token_t_by_range_t.
DATA(lt_mapping) = filter_get_token_range_mapping( ). DATA(lt_mapping) = filter_get_token_range_mapping( ).
DATA(lt_tab) = VALUE ty_t_range( ). DATA(lt_tab) = VALUE ty_t_range( ).
itab_corresponding( itab_corresponding( EXPORTING val = val
EXPORTING CHANGING tab = lt_tab
val = val
CHANGING
tab = lt_tab
). ).
LOOP AT lt_tab REFERENCE INTO DATA(lr_row). LOOP AT lt_tab REFERENCE INTO DATA(lr_row).
@ -722,12 +719,14 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
REPLACE `{LOW}` IN lv_value WITH lr_row->low. REPLACE `{LOW}` IN lv_value WITH lr_row->low.
REPLACE `{HIGH}` IN lv_value WITH lr_row->high. REPLACE `{HIGH}` IN lv_value WITH lr_row->high.
INSERT VALUE #( key = lv_value text = lv_value visible = abap_true editable = abap_true ) INTO TABLE result. INSERT VALUE #( key = lv_value
text = lv_value
visible = abap_true
editable = abap_true ) INTO TABLE result.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD itab_filter_by_val. METHOD itab_filter_by_val.
FIELD-SYMBOLS <row> TYPE any. FIELD-SYMBOLS <row> TYPE any.
@ -751,17 +750,17 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD itab_get_csv_by_itab. METHOD itab_get_csv_by_itab.
FIELD-SYMBOLS <tab> TYPE table. FIELD-SYMBOLS <tab> TYPE table.
ASSIGN val TO <tab>. ASSIGN val TO <tab>.
DATA(tab) = CAST cl_abap_tabledescr( cl_abap_typedescr=>describe_by_data( <tab> ) ). DATA(tab) = CAST cl_abap_tabledescr( cl_abap_typedescr=>describe_by_data( <tab> ) ).
DATA(struc) = CAST cl_abap_structdescr( tab->get_table_line_type( ) ). DATA(struc) = CAST cl_abap_structdescr( tab->get_table_line_type( ) ).
LOOP AT struc->get_components( ) REFERENCE INTO DATA(lr_comp). LOOP AT struc->get_components( ) REFERENCE INTO DATA(lr_comp).
result = result && lr_comp->name && ';'. result = |{ result }{ lr_comp->name };|.
ENDLOOP. ENDLOOP.
result = result && cl_abap_char_utilities=>cr_lf. result = result && cl_abap_char_utilities=>cr_lf.
@ -777,14 +776,13 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
EXIT. EXIT.
ENDIF. ENDIF.
lv_index = lv_index + 1. lv_index = lv_index + 1.
result = result && <field> && ';'. result = |{ result }{ <field> };|.
ENDDO. ENDDO.
result = result && cl_abap_char_utilities=>cr_lf. result = result && cl_abap_char_utilities=>cr_lf.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD itab_get_itab_by_csv. METHOD itab_get_itab_by_csv.
DATA lt_comp TYPE cl_abap_structdescr=>component_table. DATA lt_comp TYPE cl_abap_structdescr=>component_table.
@ -794,18 +792,17 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
SPLIT val AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_rows). SPLIT val AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_rows).
SPLIT lt_rows[ 1 ] AT ';' INTO TABLE DATA(lt_cols). SPLIT lt_rows[ 1 ] AT ';' INTO TABLE DATA(lt_cols).
LOOP AT lt_cols REFERENCE INTO DATA(lr_col). LOOP AT lt_cols REFERENCE INTO DATA(lr_col).
DATA(lv_name) = c_trim_upper( lr_col->* ). DATA(lv_name) = c_trim_upper( lr_col->* ).
REPLACE ` ` IN lv_name WITH `_`. REPLACE ` ` IN lv_name WITH `_`.
INSERT VALUE #( name = lv_name type = cl_abap_elemdescr=>get_c( 40 ) ) INTO TABLE lt_comp. INSERT VALUE #( name = lv_name
type = cl_abap_elemdescr=>get_c( 40 ) ) INTO TABLE lt_comp.
ENDLOOP. ENDLOOP.
DATA(struc) = cl_abap_structdescr=>get( lt_comp ). DATA(struc) = cl_abap_structdescr=>get( lt_comp ).
DATA(o_table_desc) = cl_abap_tabledescr=>create( DATA(o_table_desc) = cl_abap_tabledescr=>create( p_line_type = CAST #( struc )
p_line_type = CAST #( struc )
p_table_kind = cl_abap_tabledescr=>tablekind_std p_table_kind = cl_abap_tabledescr=>tablekind_std
p_unique = abap_false ). p_unique = abap_false ).
@ -830,42 +827,34 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD json_parse. METHOD json_parse.
TRY. TRY.
z2ui5_cl_ajson=>parse( val )->to_abap( z2ui5_cl_ajson=>parse( val )->to_abap( EXPORTING iv_corresponding = abap_true
EXPORTING IMPORTING ev_container = data ).
iv_corresponding = abap_true
IMPORTING
ev_container = data ).
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
ASSERT x IS NOT BOUND. ASSERT x IS NOT BOUND.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD json_stringify. METHOD json_stringify.
TRY. TRY.
DATA(li_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ). DATA(li_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ).
result = li_ajson->set( iv_path = `/` iv_val = any )->stringify( ). result = li_ajson->set( iv_path = `/`
iv_val = any )->stringify( ).
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
ASSERT x IS NOT BOUND. ASSERT x IS NOT BOUND.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD rtti_check_class_exists. METHOD rtti_check_class_exists.
TRY. TRY.
cl_abap_classdescr=>describe_by_name( cl_abap_classdescr=>describe_by_name( EXPORTING p_name = val
EXPORTING EXCEPTIONS type_not_found = 1 ).
p_name = val
EXCEPTIONS
type_not_found = 1 ).
IF sy-subrc = 0. IF sy-subrc = 0.
result = abap_true. result = abap_true.
ENDIF. ENDIF.
@ -876,7 +865,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_check_ref_data. METHOD rtti_check_ref_data.
TRY. TRY.
@ -888,7 +876,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_check_type_kind_dref. METHOD rtti_check_type_kind_dref.
DATA(lv_type_kind) = cl_abap_datadescr=>get_data_type_kind( val ). DATA(lv_type_kind) = cl_abap_datadescr=>get_data_type_kind( val ).
@ -896,32 +883,30 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_classname_by_ref. METHOD rtti_get_classname_by_ref.
DATA(lv_classname) = cl_abap_classdescr=>get_class_name( in ). DATA(lv_classname) = cl_abap_classdescr=>get_class_name( in ).
result = substring_after( val = lv_classname sub = `\CLASS=` ). result = substring_after( val = lv_classname
sub = `\CLASS=` ).
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_intfname_by_ref. METHOD rtti_get_intfname_by_ref.
DATA(rtti) = cl_abap_typedescr=>describe_by_data( in ). DATA(rtti) = cl_abap_typedescr=>describe_by_data( in ).
DATA(ref) = CAST cl_abap_refdescr( rtti ). DATA(ref) = CAST cl_abap_refdescr( rtti ).
DATA(name) = ref->get_referenced_type( )->absolute_name. DATA(name) = ref->get_referenced_type( )->absolute_name.
result = substring_after( val = name sub = `\INTERFACE=` ). result = substring_after( val = name
sub = `\INTERFACE=` ).
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_type_kind. METHOD rtti_get_type_kind.
result = cl_abap_datadescr=>get_data_type_kind( val ). result = cl_abap_datadescr=>get_data_type_kind( val ).
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_type_name. METHOD rtti_get_type_name.
TRY. TRY.
@ -933,7 +918,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_attri_by_include. METHOD rtti_get_t_attri_by_include.
DATA(sdescr) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( type->absolute_name ) ). DATA(sdescr) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_name( type->absolute_name ) ).
@ -961,7 +945,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_attri_by_oref. METHOD rtti_get_t_attri_by_oref.
DATA(lo_obj_ref) = cl_abap_objectdescr=>describe_by_object_ref( val ). DATA(lo_obj_ref) = cl_abap_objectdescr=>describe_by_object_ref( val ).
@ -969,7 +952,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_attri_by_any. METHOD rtti_get_t_attri_by_any.
TRY. TRY.
@ -1003,7 +985,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_ddic_fixed_values. METHOD rtti_get_t_ddic_fixed_values.
IF rollname IS INITIAL. IF rollname IS INITIAL.
@ -1022,8 +1003,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
DATA(elemdescr) = CAST cl_abap_elemdescr( typedescr ). DATA(elemdescr) = CAST cl_abap_elemdescr( typedescr ).
result = rtti_get_t_fixvalues( result = rtti_get_t_fixvalues( elemdescr = elemdescr
elemdescr = elemdescr
langu = langu ). langu = langu ).
CATCH cx_root. CATCH cx_root.
@ -1031,7 +1011,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_tab_get_relative_name. METHOD rtti_tab_get_relative_name.
FIELD-SYMBOLS <table> TYPE any. FIELD-SYMBOLS <table> TYPE any.
@ -1058,32 +1037,28 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD source_get_file_types. METHOD source_get_file_types.
DATA(lv_types) = `abap, abc, actionscript, ada, apache_conf, applescript, asciidoc, assembly_x86, autohotkey, batchfile, bro, c9search, c_cpp, cirru, clojure, cobol, coffee, coldfusion, csharp, css, curly, d, dart, diff, django, dockerfile, ` && DATA(lv_types) = |abap, abc, actionscript, ada, apache_conf, applescript, asciidoc, assembly_x86, autohotkey, batchfile, bro, c9search, c_cpp, cirru, clojure, cobol, coffee, coldfusion, csharp, css, curly, d, dart, diff, django, dockerfile, | &&
`dot, drools, eiffel, yaml, ejs, elixir, elm, erlang, forth, fortran, ftl, gcode, gherkin, gitignore, glsl, gobstones, golang, groovy, haml, handlebars, haskell, haskell_cabal, haxe, hjson, html, html_elixir, html_ruby, ini, io, jack, jade, java, ja` && |dot, drools, eiffel, yaml, ejs, elixir, elm, erlang, forth, fortran, ftl, gcode, gherkin, gitignore, glsl, gobstones, golang, groovy, haml, handlebars, haskell, haskell_cabal, haxe, hjson, html, html_elixir, html_ruby, ini, io, jack, jade, java, ja| &&
`vascri` && |vascri| &&
`pt, json, jsoniq, jsp, jsx, julia, kotlin, latex, lean, less, liquid, lisp, live_script, livescript, logiql, lsl, lua, luapage, lucene, makefile, markdown, mask, matlab, mavens_mate_log, maze, mel, mips_assembler, mipsassembler, mushcode, mysql, ni` && |pt, json, jsoniq, jsp, jsx, julia, kotlin, latex, lean, less, liquid, lisp, live_script, livescript, logiql, lsl, lua, luapage, lucene, makefile, markdown, mask, matlab, mavens_mate_log, maze, mel, mips_assembler, mipsassembler, mushcode, mysql, ni| &&
`x, nsis, objectivec, ocaml, pascal, perl, pgsql, php, plain_text, powershell, praat, prolog, properties, protobuf, python, r, razor, rdoc, rhtml, rst, ruby, rust, sass, scad, scala, scheme, scss, sh, sjs, smarty, snippets, soy_template, space, sql,` && |x, nsis, objectivec, ocaml, pascal, perl, pgsql, php, plain_text, powershell, praat, prolog, properties, protobuf, python, r, razor, rdoc, rhtml, rst, ruby, rust, sass, scad, scala, scheme, scss, sh, sjs, smarty, snippets, soy_template, space, sql,| &&
` sqlserver, stylus, svg, swift, swig, tcl, tex, text, textile, toml, tsx, twig, typescript, vala, vbscript, velocity, verilog, vhdl, wollok, xml, xquery, terraform, slim, redshift, red, puppet, php_laravel_blade, mixal, jssm, fsharp, edifact,` && | sqlserver, stylus, svg, swift, swig, tcl, tex, text, textile, toml, tsx, twig, typescript, vala, vbscript, velocity, verilog, vhdl, wollok, xml, xquery, terraform, slim, redshift, red, puppet, php_laravel_blade, mixal, jssm, fsharp, edifact,| &&
` csp, cssound_score, cssound_orchestra, cssound_document`. | csp, cssound_score, cssound_orchestra, cssound_document|.
SPLIT lv_types AT ',' INTO TABLE result. SPLIT lv_types AT ',' INTO TABLE result.
ENDMETHOD. ENDMETHOD.
METHOD source_get_method2. METHOD source_get_method2.
DATA(lt_source) = source_get_method( DATA(lt_source) = source_get_method( iv_classname = iv_classname
iv_classname = iv_classname
iv_methodname = iv_methodname ). iv_methodname = iv_methodname ).
result = source_method_to_file( lt_source ). result = source_method_to_file( lt_source ).
ENDMETHOD. ENDMETHOD.
METHOD source_method_to_file. METHOD source_method_to_file.
LOOP AT it_source INTO DATA(lv_source). LOOP AT it_source INTO DATA(lv_source).
@ -1095,7 +1070,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_sql_by_sql_string. METHOD filter_get_sql_by_sql_string.
DATA(lv_sql) = CONV string( val ). DATA(lv_sql) = CONV string( val ).
@ -1108,58 +1082,54 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD time_get_date_by_stampl. METHOD time_get_date_by_stampl.
" TODO: variable is assigned but never used (ABAP cleaner)
CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE result TIME DATA(lv_dummy). CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE result TIME DATA(lv_dummy).
ENDMETHOD. ENDMETHOD.
METHOD time_get_timestampl. METHOD time_get_timestampl.
GET TIME STAMP FIELD result. GET TIME STAMP FIELD result.
ENDMETHOD. ENDMETHOD.
METHOD time_get_time_by_stampl. METHOD time_get_time_by_stampl.
" TODO: variable is assigned but never used (ABAP cleaner)
CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE DATA(lv_dummy) TIME result. CONVERT TIME STAMP val TIME ZONE sy-zonlo INTO DATE DATA(lv_dummy) TIME result.
ENDMETHOD. ENDMETHOD.
METHOD time_substract_seconds. METHOD time_substract_seconds.
result = cl_abap_tstmp=>subtractsecs( tstmp = time result = cl_abap_tstmp=>subtractsecs( tstmp = time
secs = seconds ). secs = seconds ).
ENDMETHOD. ENDMETHOD.
METHOD unassign_data. METHOD unassign_data.
FIELD-SYMBOLS <unassign> TYPE any. FIELD-SYMBOLS <unassign> TYPE any.
ASSIGN val->* TO <unassign>. ASSIGN val->* TO <unassign>.
result = <unassign>. result = <unassign>.
ENDMETHOD. ENDMETHOD.
METHOD unassign_object. METHOD unassign_object.
FIELD-SYMBOLS <unassign> TYPE any. FIELD-SYMBOLS <unassign> TYPE any.
ASSIGN val->* TO <unassign>. ASSIGN val->* TO <unassign>.
result = <unassign>. result = <unassign>.
ENDMETHOD. ENDMETHOD.
METHOD url_param_create_url. METHOD url_param_create_url.
LOOP AT t_params INTO DATA(ls_param). LOOP AT t_params INTO DATA(ls_param).
result = result && ls_param-n && `=` && ls_param-v && `&`. result = |{ result }{ ls_param-n }={ ls_param-v }&|.
ENDLOOP. ENDLOOP.
result = shift_right( val = result result = shift_right( val = result
sub = `&` ). sub = `&` ).
ENDMETHOD. ENDMETHOD.
METHOD url_param_get. METHOD url_param_get.
DATA(lt_params) = url_param_get_tab( url ). DATA(lt_params) = url_param_get_tab( url ).
@ -1168,7 +1138,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD url_param_get_tab. METHOD url_param_get_tab.
DATA(lv_search) = replace( val = i_val DATA(lv_search) = replace( val = i_val
@ -1199,12 +1168,12 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
LOOP AT lt_param REFERENCE INTO DATA(lr_param). LOOP AT lt_param REFERENCE INTO DATA(lr_param).
SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value). SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value).
INSERT VALUE #( n = c_trim_lower( lv_name ) v = c_trim_lower( lv_value ) ) INTO TABLE rt_params. INSERT VALUE #( n = c_trim_lower( lv_name )
v = c_trim_lower( lv_value ) ) INTO TABLE rt_params.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD url_param_set. METHOD url_param_set.
DATA(lt_params) = url_param_get_tab( url ). DATA(lt_params) = url_param_get_tab( url ).
@ -1215,19 +1184,18 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
lr_params->v = c_trim_lower( value ). lr_params->v = c_trim_lower( value ).
ENDLOOP. ENDLOOP.
IF sy-subrc <> 0. IF sy-subrc <> 0.
INSERT VALUE #( n = lv_n v = c_trim_lower( value ) ) INTO TABLE lt_params. INSERT VALUE #( n = lv_n
v = c_trim_lower( value ) ) INTO TABLE lt_params.
ENDIF. ENDIF.
result = url_param_create_url( lt_params ). result = url_param_create_url( lt_params ).
ENDMETHOD. ENDMETHOD.
METHOD context_get_user_tech. METHOD context_get_user_tech.
result = sy-uname. result = sy-uname.
ENDMETHOD. ENDMETHOD.
METHOD xml_parse. METHOD xml_parse.
CALL TRANSFORMATION id CALL TRANSFORMATION id
@ -1236,7 +1204,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD xml_srtti_parse. METHOD xml_srtti_parse.
check_raise_srtti_installed( ). check_raise_srtti_installed( ).
@ -1246,8 +1213,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
DATA rtti_type TYPE REF TO cl_abap_typedescr. DATA rtti_type TYPE REF TO cl_abap_typedescr.
CALL METHOD srtti->('GET_RTTI') CALL METHOD srtti->('GET_RTTI')
RECEIVING RECEIVING rtti = rtti_type.
rtti = rtti_type.
DATA lo_datadescr TYPE REF TO cl_abap_datadescr. DATA lo_datadescr TYPE REF TO cl_abap_datadescr.
lo_datadescr ?= rtti_type. lo_datadescr ?= rtti_type.
@ -1258,7 +1224,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD xml_srtti_stringify. METHOD xml_srtti_stringify.
check_raise_srtti_installed( ). check_raise_srtti_installed( ).
@ -1266,16 +1231,13 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
DATA srtti TYPE REF TO object. DATA srtti TYPE REF TO object.
DATA(lv_classname) = 'ZCL_SRTTI_TYPEDESCR'. DATA(lv_classname) = 'ZCL_SRTTI_TYPEDESCR'.
CALL METHOD (lv_classname)=>('CREATE_BY_DATA_OBJECT') CALL METHOD (lv_classname)=>('CREATE_BY_DATA_OBJECT')
EXPORTING EXPORTING data_object = data
data_object = data RECEIVING srtti = srtti.
RECEIVING
srtti = srtti.
CALL TRANSFORMATION id SOURCE srtti = srtti dobj = data RESULT XML result. CALL TRANSFORMATION id SOURCE srtti = srtti dobj = data RESULT XML result.
ENDMETHOD. ENDMETHOD.
METHOD xml_stringify. METHOD xml_stringify.
CALL TRANSFORMATION id CALL TRANSFORMATION id
@ -1285,16 +1247,15 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD x_check_raise. METHOD x_check_raise.
IF when = abap_true. IF when = abap_true.
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v. RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING val = v.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD x_get_last_t100. METHOD x_get_last_t100.
DATA(x) = val. DATA(x) = val.
@ -1312,70 +1273,56 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD x_raise. METHOD x_raise.
RAISE EXCEPTION TYPE z2ui5_cx_util_error EXPORTING val = v. RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING val = v.
ENDMETHOD. ENDMETHOD.
METHOD check_raise_srtti_installed. METHOD check_raise_srtti_installed.
IF rtti_check_class_exists( 'ZCL_SRTTI_TYPEDESCR' ) = abap_false. IF rtti_check_class_exists( 'ZCL_SRTTI_TYPEDESCR' ) = abap_false.
DATA(lv_text) = `UNSUPPORTED_FEATURE - Please install the open-source project S-RTTI by sandraros and try again: https://github.com/sandraros/S-RTTI`. DATA(lv_text) = `UNSUPPORTED_FEATURE - Please install the open-source project S-RTTI by sandraros and try again: https://github.com/sandraros/S-RTTI`.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = lv_text.
val = lv_text.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD rtti_get_t_attri_by_table_name. METHOD rtti_get_t_attri_by_table_name.
IF table_name IS INITIAL. IF table_name IS INITIAL.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = 'TABLE_NAME_INITIAL_ERROR'.
val = 'TABLE_NAME_INITIAL_ERROR'.
ENDIF. ENDIF.
TRY. TRY.
cl_abap_structdescr=>describe_by_name( cl_abap_structdescr=>describe_by_name( EXPORTING p_name = table_name
EXPORTING RECEIVING p_descr_ref = DATA(lo_obj)
p_name = table_name EXCEPTIONS type_not_found = 1
RECEIVING
p_descr_ref = DATA(lo_obj)
EXCEPTIONS
type_not_found = 1
OTHERS = 2 OTHERS = 2
). ).
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |TABLE_NOT_FOUD_NAME___{ table_name }|.
val = 'TABLE_NOT_FOUD_NAME___' && table_name.
ENDIF. ENDIF.
DATA(lo_struct) = CAST cl_abap_structdescr( lo_obj ). DATA(lo_struct) = CAST cl_abap_structdescr( lo_obj ).
CATCH cx_root. CATCH cx_root.
TRY. TRY.
cl_abap_structdescr=>describe_by_name( cl_abap_structdescr=>describe_by_name( EXPORTING p_name = table_name
EXPORTING RECEIVING p_descr_ref = lo_obj
p_name = table_name EXCEPTIONS type_not_found = 1
RECEIVING
p_descr_ref = lo_obj
EXCEPTIONS
type_not_found = 1
OTHERS = 2 OTHERS = 2
). ).
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |TABLE_NOT_FOUD_NAME___{ table_name }|.
val = 'TABLE_NOT_FOUD_NAME___' && table_name.
ENDIF. ENDIF.
DATA(lo_tab) = CAST cl_abap_tabledescr( lo_obj ). DATA(lo_tab) = CAST cl_abap_tabledescr( lo_obj ).
@ -1399,7 +1346,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD itab_corresponding. METHOD itab_corresponding.
FIELD-SYMBOLS <row_in> TYPE any. FIELD-SYMBOLS <row_in> TYPE any.
@ -1420,33 +1366,28 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD itab_filter_by_t_range. METHOD itab_filter_by_t_range.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_data_by_multi. METHOD filter_get_data_by_multi.
ENDMETHOD. ENDMETHOD.
METHOD filter_get_sql_where. METHOD filter_get_sql_where.
LOOP AT val INTO DATA(ls_filter). LOOP AT val INTO DATA(ls_filter).
" TODO: variable is assigned but never used (ABAP cleaner)
DATA lo_range TYPE REF TO lcl_range_to_sql. DATA lo_range TYPE REF TO lcl_range_to_sql.
CREATE OBJECT lo_range lo_range = NEW #( iv_fieldname = ls_filter-name
EXPORTING ir_range = REF #( ls_filter-t_range ) ).
iv_fieldname = ls_filter-name
ir_range = REF #( ls_filter-t_range ).
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD msg_get. METHOD msg_get.
DATA(lv_kind) = z2ui5_cl_util=>rtti_get_type_kind( val ). DATA(lv_kind) = z2ui5_cl_util=>rtti_get_type_kind( val ).
@ -1470,7 +1411,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
DATA(ls_result) = VALUE ty_s_msg( ). DATA(ls_result) = VALUE ty_s_msg( ).
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri). LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
DATA(lv_name) = 'VAL-' && ls_attri->name. DATA(lv_name) = |VAL-{ ls_attri->name }|.
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>). ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
CASE ls_attri->name. CASE ls_attri->name.
WHEN 'ID' OR 'MSGID'. WHEN 'ID' OR 'MSGID'.
@ -1501,8 +1442,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
WHEN cl_abap_datadescr=>typekind_oref. WHEN cl_abap_datadescr=>typekind_oref.
TRY. TRY.
DATA(lx) = CAST cx_root( val ). DATA(lx) = CAST cx_root( val ).
ls_result = VALUE #( ls_result = VALUE #( type = 'E'
type = 'E'
text = lx->get_text( ) text = lx->get_text( )
). ).
@ -1547,8 +1487,7 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
WHEN OTHERS. WHEN OTHERS.
IF rtti_check_clike( val ). IF rtti_check_clike( val ).
INSERT VALUE #( INSERT VALUE #( text = val
text = val
) )
INTO TABLE result. INTO TABLE result.
ENDIF. ENDIF.
@ -1556,7 +1495,6 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD rtti_check_clike. METHOD rtti_check_clike.
DATA(lv_type) = rtti_get_type_kind( val ). DATA(lv_type) = rtti_get_type_kind( val ).
@ -1572,11 +1510,12 @@ CLASS z2ui5_cl_util IMPLEMENTATION.
METHOD ui5_get_msg_type. METHOD ui5_get_msg_type.
result = SWITCH #( val WHEN 'E' THEN `Error` result = SWITCH #( val
WHEN 'S' THEN `Success` WHEN `W` THEN `Warning` WHEN 'E' THEN `Error`
else `Information` WHEN 'S' THEN `Success`
WHEN `W` THEN `Warning`
ELSE `Information`
). ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -40,13 +40,10 @@ CLASS lcl_range_to_sql DEFINITION
RETURNING RETURNING
VALUE(out) TYPE string. VALUE(out) TYPE string.
ENDCLASS. ENDCLASS.
CLASS lcl_range_to_sql IMPLEMENTATION. CLASS lcl_range_to_sql IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mr_range = ir_range. mr_range = ir_range.
@ -118,5 +115,4 @@ CLASS lcl_range_to_sql IMPLEMENTATION.
with = `''` with = `''`
occ = 0 ) }'|. occ = 0 ) }'|.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -21,6 +21,7 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
CLASS-DATA sv_var TYPE string. CLASS-DATA sv_var TYPE string.
CLASS-DATA ss_tab TYPE ty_row. CLASS-DATA ss_tab TYPE ty_row.
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY. CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
CLASS-METHODS class_constructor. CLASS-METHODS class_constructor.
DATA mv_val TYPE string ##NEEDED. DATA mv_val TYPE string ##NEEDED.
@ -28,11 +29,12 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
DATA mt_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY ##NEEDED. DATA mt_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY ##NEEDED.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app IMPLEMENTATION.
CLASS ltcl_test_app IMPLEMENTATION.
METHOD class_constructor. METHOD class_constructor.
sv_var = 1. sv_var = 1.
@ -42,9 +44,9 @@ CLASS ltcl_test_app IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
DURATION SHORT CLASS ltcl_unit_test_abap_api DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
PRIVATE SECTION. PRIVATE SECTION.
@ -67,9 +69,9 @@ CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
ENDCLASS. ENDCLASS.
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
DURATION MEDIUM CLASS ltcl_unit_test DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
PRIVATE SECTION. PRIVATE SECTION.
@ -87,7 +89,6 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
METHODS test_time_substract_seconds FOR TESTING RAISING cx_static_check. METHODS test_time_substract_seconds FOR TESTING RAISING cx_static_check.
METHODS test_func_get_user_tech FOR TESTING RAISING cx_static_check. METHODS test_func_get_user_tech FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_t_attri_by_incl FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_t_attri_by_incl FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_classname_by_ref FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_classname_by_ref FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_type_name FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_type_name FOR TESTING RAISING cx_static_check.
@ -119,9 +120,8 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
ENDCLASS. ENDCLASS.
CLASS ltcl_unit_test_abap_api IMPLEMENTATION. CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
METHOD test_assign. METHOD test_assign.
DATA(lo_app) = NEW ltcl_test_app( ). DATA(lo_app) = NEW ltcl_test_app( ).
@ -129,23 +129,22 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
lo_app->mv_val = `ABC`. lo_app->mv_val = `ABC`.
DATA(lv_assign) = `LO_APP->` && 'MV_VAL'. DATA(lv_assign) = |LO_APP->MV_VAL|.
ASSIGN (lv_assign) TO <any>. ASSIGN (lv_assign) TO <any>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `ABC`
act = <any> act = <any> ).
exp = `ABC` ).
ENDMETHOD. ENDMETHOD.
METHOD test_classdescr. METHOD test_classdescr.
DATA(lo_app) = NEW ltcl_test_app( ). DATA(lo_app) = NEW ltcl_test_app( ).
DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes. DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes.
" TODO: variable is assigned but never used (ABAP cleaner)
DATA(lv_test) = lt_attri[ name = `MS_TAB` ]. DATA(lv_test) = lt_attri[ name = `MS_TAB` ].
lv_test = lt_attri[ name = `MT_TAB` ]. lv_test = lt_attri[ name = `MT_TAB` ].
lv_test = lt_attri[ name = `MV_VAL` ]. lv_test = lt_attri[ name = `MV_VAL` ].
@ -160,33 +159,32 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( abap_true ) ). DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( abap_true ) ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `ABAP_BOOL`
act = lo_ele->get_relative_name( ) act = lo_ele->get_relative_name( ) ).
exp = `ABAP_BOOL` ).
ENDMETHOD. ENDMETHOD.
METHOD test_substring_after. METHOD test_substring_after.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = ` string`
act = substring_after( val = 'this is a string' sub = 'a' ) act = substring_after( val = 'this is a string'
exp = ` string` ). sub = 'a' ) ).
ENDMETHOD. ENDMETHOD.
METHOD test_substring_before. METHOD test_substring_before.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `this is `
act = substring_before( val = 'this is a string' sub = 'a' ) act = substring_before( val = 'this is a string'
exp = `this is ` ). sub = 'a' ) ).
ENDMETHOD. ENDMETHOD.
METHOD test_string_shift. METHOD test_string_shift.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `string`
act = shift_left( shift_right( val = ` string ` sub = ` ` ) ) act = shift_left( shift_right( val = ` string `
exp = `string` ). sub = ` ` ) ) ).
ENDMETHOD. ENDMETHOD.
@ -197,9 +195,11 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
with = 'ABC' with = 'ABC'
occ = 0 ) ##NEEDED. occ = 0 ) ##NEEDED.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `one ABC three`
act = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 ) act = replace( val = `one two three`
exp = `one ABC three` ). sub = `two`
with = 'ABC'
occ = 0 ) ).
ENDMETHOD. ENDMETHOD.
@ -221,9 +221,7 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
DATA(lv_xsdbool) = xsdbool( 1 = 1 ). DATA(lv_xsdbool) = xsdbool( 1 = 1 ).
IF lv_xsdbool = abap_false. IF lv_xsdbool = abap_false.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_false( lv_xsdbool ).
act = lv_xsdbool
exp = abap_false ).
ENDIF. ENDIF.
IF xsdbool( 1 = 1 ) = abap_false. IF xsdbool( 1 = 1 ) = abap_false.
@ -236,9 +234,7 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
DATA(lv_xsdbool) = check_input( xsdbool( 1 = 1 ) ). DATA(lv_xsdbool) = check_input( xsdbool( 1 = 1 ) ).
IF lv_xsdbool = abap_false. IF lv_xsdbool = abap_false.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_false( lv_xsdbool ).
act = lv_xsdbool
exp = abap_false ).
ENDIF. ENDIF.
IF check_input( abap_false ). IF check_input( abap_false ).
@ -256,30 +252,21 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
result = val. result = val.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION.
CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_boolean_check. METHOD test_boolean_check.
DATA(lv_bool) = xsdbool( 1 = 1 ). DATA(lv_bool) = xsdbool( 1 = 1 ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
exp = abap_true ).
lv_bool = xsdbool( 1 = 2 ). lv_bool = xsdbool( 1 = 2 ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( abap_true ) ).
act = z2ui5_cl_util=>boolean_check_by_data( abap_true )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( abap_false ) ).
act = z2ui5_cl_util=>boolean_check_by_data( abap_false )
exp = abap_true ).
ENDMETHOD. ENDMETHOD.
@ -341,13 +328,9 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA lr_data TYPE REF TO data. DATA lr_data TYPE REF TO data.
GET REFERENCE OF lv_test INTO lr_data. GET REFERENCE OF lv_test INTO lr_data.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>rtti_check_ref_data( lr_data ) ).
act = z2ui5_cl_util=>rtti_check_ref_data( lr_data )
exp = abap_true ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>rtti_check_ref_data( lv_test ) ).
act = z2ui5_cl_util=>rtti_check_ref_data( lv_test )
exp = abap_false ).
ENDMETHOD. ENDMETHOD.
@ -362,17 +345,15 @@ CLASS ltcl_unit_test IMPLEMENTATION.
FIELD-SYMBOLS <result> TYPE data. FIELD-SYMBOLS <result> TYPE data.
ASSIGN lr_test2->* TO <result>. ASSIGN lr_test2->* TO <result>.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = lv_test
act = <result> act = <result> ).
exp = lv_test ).
ENDMETHOD. ENDMETHOD.
METHOD test_boolean_abap_2_json. METHOD test_boolean_abap_2_json.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{ABCD}`
act = z2ui5_cl_util=>boolean_abap_2_json( `{ABCD}` ) act = z2ui5_cl_util=>boolean_abap_2_json( `{ABCD}` ) ).
exp = `{ABCD}` ).
ENDMETHOD. ENDMETHOD.
@ -380,8 +361,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ). DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds( DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds( time = lv_time
time = lv_time
seconds = 60 * 60 * 4 ). seconds = 60 * 60 * 4 ).
IF lv_time IS INITIAL OR lv_time2 IS INITIAL. IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
@ -411,33 +391,29 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_c_trim. METHOD test_c_trim.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `JsadfHHs`
act = z2ui5_cl_util=>c_trim( ` JsadfHHs ` ) act = z2ui5_cl_util=>c_trim( ` JsadfHHs ` ) ).
exp = `JsadfHHs` ).
ENDMETHOD. ENDMETHOD.
METHOD test_c_trim_lower. METHOD test_c_trim_lower.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `jsadfhhs`
act = z2ui5_cl_util=>c_trim_lower( ` JsadfHHs ` ) act = z2ui5_cl_util=>c_trim_lower( ` JsadfHHs ` ) ).
exp = `jsadfhhs` ).
ENDMETHOD. ENDMETHOD.
METHOD test_c_trim_upper. METHOD test_c_trim_upper.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `JSADFHHS`
act = z2ui5_cl_util=>c_trim_upper( ` JsadfHHs ` ) act = z2ui5_cl_util=>c_trim_upper( ` JsadfHHs ` ) ).
exp = `JSADFHHS` ).
ENDMETHOD. ENDMETHOD.
METHOD test_func_get_user_tech. METHOD test_func_get_user_tech.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = z2ui5_cl_util=>context_get_user_tech( )
act = sy-uname act = sy-uname ).
exp = z2ui5_cl_util=>context_get_user_tech( ) ).
cl_abap_unit_assert=>assert_not_initial( z2ui5_cl_util=>context_get_user_tech( ) ). cl_abap_unit_assert=>assert_not_initial( z2ui5_cl_util=>context_get_user_tech( ) ).
@ -453,7 +429,6 @@ CLASS ltcl_unit_test IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD test_x_check_raise. METHOD test_x_check_raise.
TRY. TRY.
@ -470,7 +445,6 @@ CLASS ltcl_unit_test IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD test_trans_json_any_2__w_struc. METHOD test_trans_json_any_2__w_struc.
TYPES: TYPES:
@ -479,23 +453,22 @@ CLASS ltcl_unit_test IMPLEMENTATION.
value TYPE string, value TYPE string,
selected TYPE abap_bool, selected TYPE abap_bool,
END OF ty_row. END OF ty_row.
DATA(ls_row) = VALUE ty_row( title = `test` ). DATA(ls_row) = VALUE ty_row( title = `test` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{"selected":false,"title":"test","value":""}`
act = z2ui5_cl_util=>json_stringify( ls_row ) act = z2ui5_cl_util=>json_stringify( ls_row ) ).
exp = `{"selected":false,"title":"test","value":""}` ).
ENDMETHOD. ENDMETHOD.
METHOD test_url_param_create_url. METHOD test_url_param_create_url.
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ). DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab(
`https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
DATA(lv_url) = z2ui5_cl_util=>url_param_create_url( lt_param ). DATA(lv_url) = z2ui5_cl_util=>url_param_create_url( lt_param ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world`
act = lv_url act = lv_url ).
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
ENDMETHOD. ENDMETHOD.
@ -505,23 +478,21 @@ CLASS ltcl_unit_test IMPLEMENTATION.
val = `app_start` val = `app_start`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ). url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `z2ui5_cl_app_hello_world`
act = lv_param act = lv_param ).
exp = `z2ui5_cl_app_hello_world` ).
ENDMETHOD. ENDMETHOD.
METHOD test_url_param_get_tab. METHOD test_url_param_get_tab.
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ). DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab(
`https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `100`
act = lt_param[ n = `sap-client` ]-v act = lt_param[ n = `sap-client` ]-v ).
exp = `100` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `z2ui5_cl_app_hello_world`
act = lt_param[ n = `app_start` ]-v act = lt_param[ n = `app_start` ]-v ).
exp = `z2ui5_cl_app_hello_world` ).
ENDMETHOD. ENDMETHOD.
@ -532,9 +503,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
value = `z2ui5_cl_app_hello_world2` value = `z2ui5_cl_app_hello_world2`
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ). url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world2`
act = lv_param act = lv_param ).
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world2` ).
ENDMETHOD. ENDMETHOD.
@ -551,9 +521,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_xsdbool) = VALUE xsdboolean( ). DATA(lv_xsdbool) = VALUE xsdboolean( ).
DATA(lv_name) = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ). DATA(lv_name) = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `XSDBOOLEAN`
act = lv_name act = lv_name ).
exp = `XSDBOOLEAN` ).
ENDMETHOD. ENDMETHOD.
@ -563,16 +532,13 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_type_kind) = z2ui5_cl_util=>rtti_get_type_kind( lv_string ). DATA(lv_type_kind) = z2ui5_cl_util=>rtti_get_type_kind( lv_string ).
DATA lr_string TYPE REF TO string. DATA lr_string TYPE REF TO string.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>typekind_string
act = lv_type_kind act = lv_type_kind ).
exp = cl_abap_typedescr=>typekind_string ).
CREATE DATA lr_string. CREATE DATA lr_string.
lv_type_kind = z2ui5_cl_util=>rtti_get_type_kind( lr_string ). lv_type_kind = z2ui5_cl_util=>rtti_get_type_kind( lr_string ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>typekind_dref
act = lv_type_kind act = lv_type_kind ).
exp = cl_abap_typedescr=>typekind_dref ).
ENDMETHOD. ENDMETHOD.
@ -580,15 +546,10 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_string) = VALUE string( ). DATA(lv_string) = VALUE string( ).
DATA lr_string TYPE REF TO string. DATA lr_string TYPE REF TO string.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string ) ).
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string )
exp = abap_false ).
CREATE DATA lr_string. CREATE DATA lr_string.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>rtti_check_type_kind_dref( lr_string ) ).
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lr_string )
exp = abap_true ).
ENDMETHOD. ENDMETHOD.
@ -605,15 +566,21 @@ CLASS ltcl_unit_test IMPLEMENTATION.
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
ENDIF. ENDIF.
IF NOT line_exists( lt_attri[ name = `SS_TAB` type_kind = `v` ] ). IF NOT line_exists( lt_attri[ name = `SS_TAB`
type_kind = `v` ] ).
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
ENDIF. ENDIF.
IF NOT line_exists( lt_attri[ name = `SV_VAR` type_kind = `g` is_class = abap_true ] ). IF NOT line_exists( lt_attri[ name = `SV_VAR`
type_kind = `g`
is_class = abap_true ] ).
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
ENDIF. ENDIF.
IF NOT line_exists( lt_attri[ name = `SV_STATUS` type_kind = `g` is_class = abap_true is_constant = `X` ] ). IF NOT line_exists( lt_attri[ name = `SV_STATUS`
type_kind = `g`
is_class = abap_true
is_constant = `X` ] ).
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
ENDIF. ENDIF.
@ -680,11 +647,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( lo_obj ). DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( lo_obj ).
CLEAR lo_obj. CLEAR lo_obj.
z2ui5_cl_util=>xml_parse( z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
EXPORTING IMPORTING any = lo_obj ).
xml = lv_xml
IMPORTING
any = lo_obj ).
IF lo_obj IS NOT BOUND. IF lo_obj IS NOT BOUND.
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
@ -735,19 +699,14 @@ CLASS ltcl_unit_test IMPLEMENTATION.
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ). DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
z2ui5_cl_util=>xml_parse( z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
EXPORTING IMPORTING any = ls_row2 ).
xml = lv_xml
IMPORTING
any = ls_row2 ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = ls_row2
act = ls_row act = ls_row ).
exp = ls_row2 ).
ENDMETHOD. ENDMETHOD.
METHOD test_c_trim_horizontal_tab. METHOD test_c_trim_horizontal_tab.
IF z2ui5_cl_util=>c_trim( |{ cl_abap_char_utilities=>horizontal_tab }| IF z2ui5_cl_util=>c_trim( |{ cl_abap_char_utilities=>horizontal_tab }|
@ -761,8 +720,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_get_token_t_by_r_t. METHOD test_get_token_t_by_r_t.
DATA(lt_range) = VALUE z2ui5_cl_util=>ty_t_range( DATA(lt_range) = VALUE z2ui5_cl_util=>ty_t_range( ( sign = 'I' option = 'EQ' low = `table` high = `` )
( sign = 'I' option = 'EQ' low = `table` high = `` )
). ).
DATA(lt_result) = z2ui5_cl_util=>filter_get_token_t_by_range_t( lt_range ). DATA(lt_result) = z2ui5_cl_util=>filter_get_token_t_by_range_t( lt_range ).
@ -771,9 +729,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
( key = `=table` text = `=table` visible = 'X' selkz = '' editable = 'X' ) ( key = `=table` text = `=table` visible = 'X' selkz = '' editable = 'X' )
). ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = lt_exp
act = lt_result act = lt_result
exp = lt_exp
). ).
ENDMETHOD. ENDMETHOD.
@ -798,8 +755,7 @@ CLASS ltcl_unit_test IMPLEMENTATION.
value2 TYPE string, value2 TYPE string,
END OF ty_struc. END OF ty_struc.
DATA DATA BEGIN OF ms_struc2.
BEGIN OF ms_struc2.
INCLUDE TYPE ty_struc. INCLUDE TYPE ty_struc.
INCLUDE TYPE ty_struc_incl. INCLUDE TYPE ty_struc_incl.
DATA END OF ms_struc2. DATA END OF ms_struc2.
@ -812,5 +768,4 @@ CLASS ltcl_unit_test IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,8 +1,7 @@
CLASS z2ui5_cx_util_error DEFINITION CLASS z2ui5_cx_util_error DEFINITION
PUBLIC PUBLIC
INHERITING FROM cx_no_check INHERITING FROM cx_no_check FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -11,26 +10,23 @@ CLASS z2ui5_cx_util_error DEFINITION
x_root TYPE REF TO cx_root, x_root TYPE REF TO cx_root,
uuid TYPE string, uuid TYPE string,
text TYPE string, text TYPE string,
END OF ms_error . END OF ms_error.
METHODS constructor METHODS constructor
IMPORTING IMPORTING
!val TYPE any OPTIONAL val TYPE any OPTIONAL
!previous TYPE REF TO cx_root OPTIONAL !previous TYPE REF TO cx_root OPTIONAL
PREFERRED PARAMETER val. PREFERRED PARAMETER val.
METHODS if_message~get_text METHODS if_message~get_text REDEFINITION.
REDEFINITION.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cx_util_error IMPLEMENTATION. CLASS z2ui5_cx_util_error IMPLEMENTATION.
METHOD constructor ##ADT_SUPPRESS_GENERATION. METHOD constructor ##ADT_SUPPRESS_GENERATION.
super->constructor( previous = previous ). super->constructor( previous = previous ).
@ -45,7 +41,6 @@ CLASS z2ui5_cx_util_error IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD if_message~get_text. METHOD if_message~get_text.
IF ms_error-x_root IS NOT INITIAL. IF ms_error-x_root IS NOT INITIAL.

View File

@ -1,6 +1,5 @@
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING CLASS ltcl_unit_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
RISK LEVEL DANGEROUS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_raise FOR TESTING RAISING cx_static_check. METHODS test_raise FOR TESTING RAISING cx_static_check.
@ -8,21 +7,17 @@ ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION. CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_raise. METHOD test_raise.
TRY. TRY.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `this is an error text`.
val = `this is an error text`.
CATCH z2ui5_cx_util_error INTO DATA(lx). CATCH z2ui5_cx_util_error INTO DATA(lx).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
act = lx->get_text( ) act = lx->get_text( ) ).
exp = `this is an error text` ).
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_core_srv_draft DEFINITION CLASS z2ui5_cl_core_srv_draft DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -11,8 +10,8 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
METHODS create METHODS create
IMPORTING IMPORTING
!draft TYPE z2ui5_if_types=>ty_s_draft draft TYPE z2ui5_if_types=>ty_s_draft
!model_xml TYPE clike. model_xml TYPE clike.
METHODS read_draft METHODS read_draft
IMPORTING IMPORTING
@ -33,7 +32,7 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
METHODS read METHODS read
IMPORTING IMPORTING
!id TYPE clike !id TYPE clike
!check_load_app TYPE abap_bool DEFAULT abap_true check_load_app TYPE abap_bool DEFAULT abap_true
RETURNING RETURNING
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db. VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db.
@ -41,14 +40,10 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION. CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
METHOD cleanup. METHOD cleanup.
DATA(lv_four_hours_ago) = z2ui5_cl_util=>time_substract_seconds( DATA(lv_four_hours_ago) = z2ui5_cl_util=>time_substract_seconds( time = z2ui5_cl_util=>time_get_timestampl( )
time = z2ui5_cl_util=>time_get_timestampl( )
seconds = 60 * 60 * 4 ). seconds = 60 * 60 * 4 ).
DELETE FROM z2ui5_t_01 WHERE timestampl < @lv_four_hours_ago. DELETE FROM z2ui5_t_01 WHERE timestampl < @lv_four_hours_ago.
@ -56,13 +51,11 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD create. METHOD create.
ASSERT draft-id IS NOT INITIAL. ASSERT draft-id IS NOT INITIAL.
DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db( DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db( id = draft-id
id = draft-id
id_prev = draft-id_prev id_prev = draft-id_prev
id_prev_app = draft-id_prev_app id_prev_app = draft-id_prev_app
id_prev_app_stack = draft-id_prev_app_stack id_prev_app_stack = draft-id_prev_app_stack
@ -73,20 +66,17 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
MODIFY z2ui5_t_01 FROM @ls_db. MODIFY z2ui5_t_01 FROM @ls_db.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
ENDIF. ENDIF.
COMMIT WORK AND WAIT. COMMIT WORK AND WAIT.
ENDMETHOD. ENDMETHOD.
METHOD read. METHOD read.
IF check_load_app = abap_true. IF check_load_app = abap_true.
SELECT SINGLE * SELECT SINGLE * FROM z2ui5_t_01
FROM z2ui5_t_01
WHERE id = @id WHERE id = @id
INTO @result ##SUBRC_OK. INTO @result ##SUBRC_OK.
@ -101,38 +91,31 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD read_draft. METHOD read_draft.
result = read( id ). result = read( id ).
ENDMETHOD. ENDMETHOD.
METHOD read_info. METHOD read_info.
DATA(ls_db) = read( DATA(ls_db) = read( id = id
id = id
check_load_app = abap_false ). check_load_app = abap_false ).
result = CORRESPONDING #( ls_db ). result = CORRESPONDING #( ls_db ).
ENDMETHOD. ENDMETHOD.
METHOD count_entries. METHOD count_entries.
SELECT SELECT COUNT( * )
COUNT( * )
FROM z2ui5_t_01 FROM z2ui5_t_01
INTO @result. INTO @result.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,6 +1,5 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION LONG FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -8,12 +7,12 @@ CLASS ltcl_test DEFINITION FINAL FOR TESTING
METHODS test_create FOR TESTING. METHODS test_create FOR TESTING.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD constructor. METHOD constructor.
ENDMETHOD. ENDMETHOD.
@ -22,17 +21,14 @@ CLASS ltcl_test IMPLEMENTATION.
DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ). DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ).
lo_draft->create( lo_draft->create( draft = VALUE #( id = `TEST_ID` )
draft = VALUE #( id = `TEST_ID` )
model_xml = `my xml` model_xml = `my xml`
). ).
DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ). DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `my xml`
act = ls_db-data act = ls_db-data ).
exp = `my xml` ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,6 +1,5 @@
CLASS z2ui5_cl_core_action DEFINITION CLASS z2ui5_cl_core_action DEFINITION
PUBLIC PUBLIC FINAL
FINAL
CREATE PUBLIC. CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
@ -47,10 +46,7 @@ CLASS z2ui5_cl_core_action DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_action IMPLEMENTATION. CLASS z2ui5_cl_core_action IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mo_http_post = val. mo_http_post = val.
@ -58,7 +54,6 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory_by_frontend. METHOD factory_by_frontend.
result = NEW #( mo_http_post ). result = NEW #( mo_http_post ).
@ -69,13 +64,11 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
result->mo_app = z2ui5_cl_core_app=>db_load( mo_http_post->ms_request-s_front-id ). result->mo_app = z2ui5_cl_core_app=>db_load( mo_http_post->ms_request-s_front-id ).
ENDIF. ENDIF.
result->mo_app->ms_draft-id = z2ui5_cl_util=>uuid_get_c32( ). result->mo_app->ms_draft-id = z2ui5_cl_util=>uuid_get_c32( ).
result->mo_app->ms_draft-id_prev = mo_http_post->ms_request-s_front-id. result->mo_app->ms_draft-id_prev = mo_http_post->ms_request-s_front-id.
result->ms_actual-view = mo_http_post->ms_request-s_front-view. result->ms_actual-view = mo_http_post->ms_request-s_front-view.
result->mo_app->model_json_parse( result->mo_app->model_json_parse( iv_view = mo_http_post->ms_request-s_front-view
iv_view = mo_http_post->ms_request-s_front-view
io_model = mo_http_post->ms_request-o_model ). io_model = mo_http_post->ms_request-o_model ).
result->ms_actual-event = mo_http_post->ms_request-s_front-event. result->ms_actual-event = mo_http_post->ms_request-s_front-event.
@ -84,7 +77,6 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory_first_start. METHOD factory_first_start.
TRY. TRY.
@ -100,14 +92,12 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |App with name { mo_http_post->ms_request-s_control-app_start } not found...|
val = `App with name ` && mo_http_post->ms_request-s_control-app_start && ` not found...`
previous = x. previous = x.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD factory_stack_call. METHOD factory_stack_call.
result = prepare_app_stack( ms_next-o_app_call ). result = prepare_app_stack( ms_next-o_app_call ).
@ -115,12 +105,11 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory_stack_leave. METHOD factory_stack_leave.
result = prepare_app_stack( ms_next-o_app_leave ). result = prepare_app_stack( ms_next-o_app_leave ).
"check for new app? " check for new app?
TRY. TRY.
DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ). DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ).
DATA(ls_draft) = lo_draft->read_info( ms_next-o_app_leave->id_draft ). DATA(ls_draft) = lo_draft->read_info( ms_next-o_app_leave->id_draft ).
@ -129,7 +118,7 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
RETURN. RETURN.
ENDTRY. ENDTRY.
"check for already existing app? " check for already existing app?
IF mo_app->ms_draft-id_prev_app_stack IS NOT INITIAL. IF mo_app->ms_draft-id_prev_app_stack IS NOT INITIAL.
ls_draft = lo_draft->read_info( mo_app->ms_draft-id_prev_app_stack ). ls_draft = lo_draft->read_info( mo_app->ms_draft-id_prev_app_stack ).
result->mo_app->ms_draft-id_prev_app_stack = ls_draft-id_prev_app_stack. result->mo_app->ms_draft-id_prev_app_stack = ls_draft-id_prev_app_stack.
@ -177,9 +166,9 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
result->ms_next-s_set-s_popup-check_update_model = abap_false. result->ms_next-s_set-s_popup-check_update_model = abap_false.
result->ms_next-s_set-s_popover-check_update_model = abap_false. result->ms_next-s_set-s_popover-check_update_model = abap_false.
IF ms_next-s_set-s_follow_up_action IS NOT INITIAL. IF ms_next-s_set-s_follow_up_action IS NOT INITIAL.
* .eB(['POPUP_CONFIRM']) " .eB(['POPUP_CONFIRM'])
" TODO: variable is assigned but never used (ABAP cleaner)
SPLIT ms_next-s_set-s_follow_up_action-custom_js AT `.eB(['` INTO DATA(lv_dummy) SPLIT ms_next-s_set-s_follow_up_action-custom_js AT `.eB(['` INTO DATA(lv_dummy)
result->ms_actual-event. result->ms_actual-event.
SPLIT result->ms_actual-event AT `']` INTO result->ms_actual-event lv_dummy. SPLIT result->ms_actual-event AT `']` INTO result->ms_actual-event lv_dummy.
@ -190,5 +179,4 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
CLEAR result->ms_next-s_set-s_msg_toast. CLEAR result->ms_next-s_set-s_msg_toast.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,21 +1,17 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS METHODS first_test FOR TESTING RAISING cx_static_check.
first_test FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_action DEFINITION LOCAL FRIENDS ltcl_test. CLASS z2ui5_cl_core_action DEFINITION LOCAL FRIENDS ltcl_test.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ). DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ).
DATA(lo_action) = NEW z2ui5_cl_core_action( lo_http ) ##NEEDED. DATA(lo_action) = NEW z2ui5_cl_core_action( lo_http ) ##NEEDED.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_core_app DEFINITION CLASS z2ui5_cl_core_app DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -13,12 +12,12 @@ CLASS z2ui5_cl_core_app DEFINITION
METHODS model_json_stringify METHODS model_json_stringify
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
METHODS model_json_parse METHODS model_json_parse
IMPORTING IMPORTING
!iv_view TYPE clike iv_view TYPE clike
!io_model TYPE REF TO z2ui5_if_ajson. io_model TYPE REF TO z2ui5_if_ajson.
METHODS all_xml_stringify METHODS all_xml_stringify
RETURNING RETURNING
@ -46,31 +45,24 @@ CLASS z2ui5_cl_core_app DEFINITION
METHODS db_save. METHODS db_save.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_app IMPLEMENTATION. CLASS z2ui5_cl_core_app IMPLEMENTATION.
METHOD all_xml_parse. METHOD all_xml_parse.
z2ui5_cl_util=>xml_parse( z2ui5_cl_util=>xml_parse( EXPORTING xml = xml
EXPORTING IMPORTING any = result ).
xml = xml
IMPORTING
any = result ).
ENDMETHOD. ENDMETHOD.
METHOD all_xml_stringify. METHOD all_xml_stringify.
TRY. TRY.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
lo_model->attri_before_save( ). lo_model->attri_before_save( ).
result = z2ui5_cl_util=>xml_stringify( me ). result = z2ui5_cl_util=>xml_stringify( me ).
@ -82,14 +74,12 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
CLEAR mt_attri->*. CLEAR mt_attri->*.
DATA(lo_dissolver) = NEW z2ui5_cl_core_srv_diss( DATA(lo_dissolver) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
lo_dissolver->main( ). lo_dissolver->main( ).
lo_dissolver->main( ). lo_dissolver->main( ).
lo_model = NEW z2ui5_cl_core_srv_attri( lo_model = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
lo_model->attri_before_save( ). lo_model->attri_before_save( ).
@ -99,36 +89,32 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING
val = `<p>` && cx->get_text( ) && `<p>` && x2->get_text( ) && ` or <p> Please check if all generic data references are public attributes of your class`. val = |<p>{ cx->get_text( ) }<p>{ x2->get_text( ) } or <p> Please check if all generic data references are public attributes of your class|.
ENDTRY. ENDTRY.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD constructor. METHOD constructor.
CREATE DATA mt_attri. CREATE DATA mt_attri.
ENDMETHOD. ENDMETHOD.
METHOD db_load. METHOD db_load.
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ). DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
DATA(ls_db) = lo_db->read_draft( id ). DATA(ls_db) = lo_db->read_draft( id ).
result = all_xml_parse( ls_db-data ). result = all_xml_parse( ls_db-data ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
attri = result->mt_attri
app = result->mo_app ). app = result->mo_app ).
lo_model->attri_after_load( ). lo_model->attri_after_load( ).
ENDMETHOD. ENDMETHOD.
METHOD db_load_by_app. METHOD db_load_by_app.
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ). DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
@ -137,15 +123,13 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
result->mo_app = app. result->mo_app = app.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
attri = result->mt_attri
app = result->mo_app ). app = result->mo_app ).
lo_model->attri_refs_update( ). lo_model->attri_refs_update( ).
ENDMETHOD. ENDMETHOD.
METHOD db_save. METHOD db_save.
IF mo_app IS BOUND. IF mo_app IS BOUND.
@ -154,24 +138,20 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
ENDIF. ENDIF.
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ). DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
lo_db->create( lo_db->create( draft = ms_draft
draft = ms_draft
model_xml = all_xml_stringify( ) ). model_xml = all_xml_stringify( ) ).
ENDMETHOD. ENDMETHOD.
METHOD model_json_parse. METHOD model_json_parse.
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ). DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
lo_json_mapper->model_front_to_back( lo_json_mapper->model_front_to_back( view = iv_view
view = iv_view
t_attri = mt_attri t_attri = mt_attri
model = io_model ). model = io_model ).
ENDMETHOD. ENDMETHOD.
METHOD model_json_stringify. METHOD model_json_stringify.
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ). DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).

View File

@ -1,43 +1,41 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS METHODS first_test FOR TESTING RAISING cx_static_check.
first_test FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_app DEFINITION LOCAL FRIENDS ltcl_test. CLASS z2ui5_cl_core_app DEFINITION LOCAL FRIENDS ltcl_test.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_action) = NEW z2ui5_cl_core_app( ) ##NEEDED. DATA(lo_action) = NEW z2ui5_cl_core_app( ) ##NEEDED.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_db DEFINITION FINAL FOR TESTING
DURATION LONG CLASS ltcl_test_db DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
PUBLIC SECTION. PUBLIC SECTION.
DATA mv_value TYPE string. DATA mv_value TYPE string.
INTERFACES z2ui5_if_app. INTERFACES z2ui5_if_app.
METHODS constructor. METHODS constructor.
METHODS test_db_save FOR TESTING. METHODS test_db_save FOR TESTING.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_db IMPLEMENTATION. CLASS ltcl_test_db IMPLEMENTATION.
METHOD constructor. METHOD constructor.
ENDMETHOD. ENDMETHOD.
@ -60,14 +58,12 @@ CLASS ltcl_test_db IMPLEMENTATION.
DATA(lo_app_db) = z2ui5_cl_core_app=>db_load( `TEST_ID` ). DATA(lo_app_db) = z2ui5_cl_core_app=>db_load( `TEST_ID` ).
DATA(lo_app_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ). DATA(lo_app_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = lo_app_user->mv_value
act = lo_app_user_db->mv_value act = lo_app_user_db->mv_value ).
exp = lo_app_user->mv_value ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,10 +1,10 @@
CLASS z2ui5_cl_core_client DEFINITION CLASS z2ui5_cl_core_client DEFINITION
PUBLIC PUBLIC
CREATE PUBLIC . CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES z2ui5_if_client . INTERFACES z2ui5_if_client.
DATA mo_action TYPE REF TO z2ui5_cl_core_action. DATA mo_action TYPE REF TO z2ui5_cl_core_action.
@ -13,32 +13,27 @@ CLASS z2ui5_cl_core_client DEFINITION
!action TYPE REF TO z2ui5_cl_core_action. !action TYPE REF TO z2ui5_cl_core_action.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_client IMPLEMENTATION. CLASS z2ui5_cl_core_client IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mo_action = action. mo_action = action.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~follow_up_action. METHOD z2ui5_if_client~follow_up_action.
mo_action->ms_next-s_set-s_follow_up_action-custom_js = val. mo_action->ms_next-s_set-s_follow_up_action-custom_js = val.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~get. METHOD z2ui5_if_client~get.
result = VALUE #( result = VALUE #( event = mo_action->ms_actual-event
event = mo_action->ms_actual-event
check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad
t_event_arg = mo_action->ms_actual-t_event_arg t_event_arg = mo_action->ms_actual-t_event_arg
s_draft = CORRESPONDING #( mo_action->mo_app->ms_draft ) s_draft = CORRESPONDING #( mo_action->mo_app->ms_draft )
@ -56,8 +51,9 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
REFERENCE INTO DATA(lr_comp) REFERENCE INTO DATA(lr_comp)
WHERE name = `1`. WHERE name = `1`.
INSERT VALUE #( INSERT VALUE #( n = shift_left( val = shift_right( val = lr_comp->path
n = shift_left( val = shift_right( val = lr_comp->path sub = `/` ) sub = `/` ) sub = `/` )
sub = `/` )
v = lr_comp->value ) INTO TABLE result-t_comp_params. v = lr_comp->value ) INTO TABLE result-t_comp_params.
ENDLOOP. ENDLOOP.
CATCH cx_root. CATCH cx_root.
@ -85,7 +81,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~message_box_display. METHOD z2ui5_if_client~message_box_display.
IF z2ui5_cl_util=>rtti_check_clike( text ) = abap_false. IF z2ui5_cl_util=>rtti_check_clike( text ) = abap_false.
@ -95,21 +90,24 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
DATA(lv_type) = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ). DATA(lv_type) = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ).
lv_type = to_lower( lv_type ). lv_type = to_lower( lv_type ).
DATA(lv_title) = SWITCH #( lt_msg[ 1 ]-type WHEN 'E' THEN `Error` DATA(lv_title) = SWITCH #( lt_msg[ 1 ]-type
WHEN 'S' THEN `Success` WHEN `W` THEN `Warning` WHEN 'E' THEN `Error`
WHEN 'S' THEN `Success`
WHEN `W` THEN `Warning`
ELSE `Information` ). ELSE `Information` ).
ELSEIF lines( lt_msg ) > 1. ELSEIF lines( lt_msg ) > 1.
lv_text = | { lines( lt_msg ) } Messages found: |. lv_text = | { lines( lt_msg ) } Messages found: |.
DATA(lv_details) = `<ul>`. DATA(lv_details) = `<ul>`.
LOOP AT lt_msg REFERENCE INTO DATA(lr_msg). LOOP AT lt_msg REFERENCE INTO DATA(lr_msg).
lv_details = lv_details && |<li>| && lr_msg->text && |</li>|. lv_details = |{ lv_details }<li>{ lr_msg->text }</li>|.
ENDLOOP. ENDLOOP.
lv_details = lv_details && |</ul>|. lv_details = |{ lv_details }</ul>|.
IF title IS INITIAL. IF title IS INITIAL.
lv_title = SWITCH #( lt_msg[ 1 ]-type WHEN 'E' THEN `Error` lv_title = SWITCH #( lt_msg[ 1 ]-type
WHEN 'S' THEN `Success` WHEN `W` THEN `Warning` WHEN 'E' THEN `Error`
WHEN 'S' THEN `Success`
WHEN `W` THEN `Warning`
ELSE `Information` ). ELSE `Information` ).
ENDIF. ENDIF.
lv_type = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ). lv_type = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ).
@ -134,8 +132,7 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
lv_type = 'show'. lv_type = 'show'.
ENDIF. ENDIF.
mo_action->ms_next-s_set-s_msg_box = VALUE #( mo_action->ms_next-s_set-s_msg_box = VALUE #( text = lv_text
text = lv_text
type = lv_type type = lv_type
title = lv_title title = lv_title
styleclass = styleclass styleclass = styleclass
@ -151,11 +148,9 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~message_toast_display. METHOD z2ui5_if_client~message_toast_display.
mo_action->ms_next-s_set-s_msg_toast = VALUE #( mo_action->ms_next-s_set-s_msg_toast = VALUE #( text = text
text = text
duration = duration duration = duration
width = width width = width
my = my my = my
@ -173,7 +168,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nav_app_call. METHOD z2ui5_if_client~nav_app_call.
IF app IS NOT BOUND. IF app IS NOT BOUND.
@ -188,7 +182,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
result = app->id_app. result = app->id_app.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nav_app_leave. METHOD z2ui5_if_client~nav_app_leave.
IF app IS NOT SUPPLIED. IF app IS NOT SUPPLIED.
@ -208,14 +201,12 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_destroy. METHOD z2ui5_if_client~nest2_view_destroy.
mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true. mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_display. METHOD z2ui5_if_client~nest2_view_display.
mo_action->ms_next-s_set-s_view_nest2-xml = val. mo_action->ms_next-s_set-s_view_nest2-xml = val.
@ -225,21 +216,18 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest2_view_model_update. METHOD z2ui5_if_client~nest2_view_model_update.
mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true. mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest_view_destroy. METHOD z2ui5_if_client~nest_view_destroy.
mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true. mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest_view_display. METHOD z2ui5_if_client~nest_view_display.
mo_action->ms_next-s_set-s_view_nest-xml = val. mo_action->ms_next-s_set-s_view_nest-xml = val.
@ -249,21 +237,18 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~nest_view_model_update. METHOD z2ui5_if_client~nest_view_model_update.
mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true. mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popover_destroy. METHOD z2ui5_if_client~popover_destroy.
mo_action->ms_next-s_set-s_popover-check_destroy = abap_true. mo_action->ms_next-s_set-s_popover-check_destroy = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popover_display. METHOD z2ui5_if_client~popover_display.
mo_action->ms_next-s_set-s_popover-check_destroy = abap_false. mo_action->ms_next-s_set-s_popover-check_destroy = abap_false.
@ -272,21 +257,18 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popover_model_update. METHOD z2ui5_if_client~popover_model_update.
mo_action->ms_next-s_set-s_popover-check_update_model = abap_true. mo_action->ms_next-s_set-s_popover-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popup_destroy. METHOD z2ui5_if_client~popup_destroy.
mo_action->ms_next-s_set-s_popup = VALUE #( check_destroy = abap_true ). mo_action->ms_next-s_set-s_popup = VALUE #( check_destroy = abap_true ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popup_display. METHOD z2ui5_if_client~popup_display.
mo_action->ms_next-s_set-s_popup-check_destroy = abap_false. mo_action->ms_next-s_set-s_popup-check_destroy = abap_false.
@ -294,43 +276,36 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~popup_model_update. METHOD z2ui5_if_client~popup_model_update.
mo_action->ms_next-s_set-s_popup-check_update_model = abap_true. mo_action->ms_next-s_set-s_popup-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~view_destroy. METHOD z2ui5_if_client~view_destroy.
mo_action->ms_next-s_set-s_view-check_destroy = abap_true. mo_action->ms_next-s_set-s_view-check_destroy = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~view_display. METHOD z2ui5_if_client~view_display.
mo_action->ms_next-s_set-s_view-xml = val. mo_action->ms_next-s_set-s_view-xml = val.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~view_model_update. METHOD z2ui5_if_client~view_model_update.
mo_action->ms_next-s_set-s_view-check_update_model = abap_true. mo_action->ms_next-s_set-s_view-check_update_model = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~_bind. METHOD z2ui5_if_client~_bind.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
result = lo_bind->main( result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
val = z2ui5_cl_util=>conv_get_as_data_ref( val )
type = z2ui5_if_core_types=>cs_bind_type-one_way type = z2ui5_if_core_types=>cs_bind_type-one_way
config = VALUE #( config = VALUE #( path_only = path
path_only = path
custom_filter = custom_filter custom_filter = custom_filter
custom_mapper = custom_mapper custom_mapper = custom_mapper
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab ) tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
@ -338,15 +313,12 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~_bind_edit. METHOD z2ui5_if_client~_bind_edit.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
result = lo_bind->main( result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
val = z2ui5_cl_util=>conv_get_as_data_ref( val )
type = z2ui5_if_core_types=>cs_bind_type-two_way type = z2ui5_if_core_types=>cs_bind_type-two_way
config = VALUE #( config = VALUE #( path_only = path
path_only = path
custom_filter = custom_filter custom_filter = custom_filter
custom_filter_back = custom_filter_back custom_filter_back = custom_filter_back
custom_mapper = custom_mapper custom_mapper = custom_mapper
@ -356,25 +328,20 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~_bind_local. METHOD z2ui5_if_client~_bind_local.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
result = lo_bind->main_local( result = lo_bind->main_local( val = val
val = val config = VALUE #( path_only = path
config = VALUE #(
path_only = path
custom_mapper = custom_mapper custom_mapper = custom_mapper
custom_filter = custom_filter ) ). custom_filter = custom_filter ) ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~_event. METHOD z2ui5_if_client~_event.
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ). DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
result = lo_ui5->get_event( result = lo_ui5->get_event( val = val
val = val
t_arg = t_arg t_arg = t_arg
s_cnt = s_ctrl ). s_cnt = s_ctrl ).
@ -385,24 +352,20 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~_event_client. METHOD z2ui5_if_client~_event_client.
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ). DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
result = lo_ui5->get_event_client( result = lo_ui5->get_event_client( val = val
val = val
t_arg = t_arg ). t_arg = t_arg ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_client~set_session_stateful. METHOD z2ui5_if_client~set_session_stateful.
DATA(lv_check_sticky) = CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky. DATA(lv_check_sticky) = CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky.
IF lv_check_sticky = abap_true AND stateful = abap_true. IF lv_check_sticky = abap_true AND stateful = abap_true.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `STATEFUL_ALREADY_ACTIVATED_ERROR`.
val = `STATEFUL_ALREADY_ACTIVATED_ERROR`.
ENDIF. ENDIF.
IF stateful = abap_true. IF stateful = abap_true.
mo_action->ms_next-s_set-s_stateful-active = 1. mo_action->ms_next-s_set-s_stateful-active = 1.
@ -441,5 +404,4 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
result = z2ui5_if_client~get_app( ls_get-s_draft-id_prev_app ). result = z2ui5_if_client~get_app( ls_get-s_draft-id_prev_app ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,6 +1,5 @@
CLASS ltcl_test_client DEFINITION FINAL FOR TESTING CLASS ltcl_test_client DEFINITION FINAL
DURATION LONG FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS first_test FOR TESTING RAISING cx_static_check. METHODS first_test FOR TESTING RAISING cx_static_check.
@ -9,7 +8,6 @@ ENDCLASS.
CLASS z2ui5_cl_core_client DEFINITION LOCAL FRIENDS ltcl_test_client. CLASS z2ui5_cl_core_client DEFINITION LOCAL FRIENDS ltcl_test_client.
CLASS ltcl_test_client IMPLEMENTATION. CLASS ltcl_test_client IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ). DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ).
@ -17,5 +15,4 @@ CLASS ltcl_test_client IMPLEMENTATION.
DATA(lo_client) = NEW z2ui5_cl_core_client( lo_action ) ##NEEDED. DATA(lo_client) = NEW z2ui5_cl_core_client( lo_action ) ##NEEDED.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_core_handler DEFINITION CLASS z2ui5_cl_core_handler DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -33,10 +32,7 @@ CLASS z2ui5_cl_core_handler DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_handler IMPLEMENTATION. CLASS z2ui5_cl_core_handler IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mv_request_json = val. mv_request_json = val.
@ -44,7 +40,6 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD main. METHOD main.
main_begin( ). main_begin( ).
@ -54,14 +49,12 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
ENDIF. ENDIF.
ENDDO. ENDDO.
result = VALUE #( result = VALUE #( body = mv_response
body = mv_response
s_stateful = ms_response-s_front-params-s_stateful s_stateful = ms_response-s_front-params-s_stateful
). ).
ENDMETHOD. ENDMETHOD.
METHOD main_begin. METHOD main_begin.
TRY. TRY.
@ -84,11 +77,9 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD main_end. METHOD main_end.
ms_response = VALUE #( ms_response = VALUE #( s_front-params = mo_action->ms_next-s_set
s_front-params = mo_action->ms_next-s_set
s_front-id = mo_action->mo_app->ms_draft-id s_front-id = mo_action->mo_app->ms_draft-id
s_front-app = z2ui5_cl_util=>rtti_get_classname_by_ref( mo_action->mo_app->mo_app ) s_front-app = z2ui5_cl_util=>rtti_get_classname_by_ref( mo_action->mo_app->mo_app )
). ).
@ -104,8 +95,7 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
OR ms_response-s_front-params-s_popup-xml IS NOT INITIAL OR ms_response-s_front-params-s_popup-xml IS NOT INITIAL
OR ms_response-s_front-params-s_popover-xml IS NOT INITIAL. OR ms_response-s_front-params-s_popover-xml IS NOT INITIAL.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_action->mo_app->mt_attri
attri = mo_action->mo_app->mt_attri
app = mo_action->mo_app->mo_app ). app = mo_action->mo_app->mo_app ).
lo_model->attri_refs_update( ). lo_model->attri_refs_update( ).
ms_response-model = mo_action->mo_app->model_json_stringify( ). ms_response-model = mo_action->mo_app->model_json_stringify( ).
@ -125,7 +115,6 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD main_process. METHOD main_process.
TRY. TRY.

View File

@ -1,17 +1,14 @@
CLASS ltcl_test_handler_post DEFINITION FINAL FOR TESTING CLASS ltcl_test_handler_post DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS METHODS load_startup_app FOR TESTING RAISING cx_static_check.
load_startup_app FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_handler DEFINITION LOCAL FRIENDS ltcl_test_handler_post. CLASS z2ui5_cl_core_handler DEFINITION LOCAL FRIENDS ltcl_test_handler_post.
CLASS ltcl_test_handler_post IMPLEMENTATION. CLASS ltcl_test_handler_post IMPLEMENTATION.
METHOD load_startup_app. METHOD load_startup_app.
IF sy-sysid = 'ABC'. IF sy-sysid = 'ABC'.
@ -24,16 +21,13 @@ CLASS ltcl_test_handler_post IMPLEMENTATION.
cl_abap_unit_assert=>assert_bound( lo_post->mo_action ). cl_abap_unit_assert=>assert_bound( lo_post->mo_action ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `ORIGIN`
act = lo_post->ms_request-s_front-origin act = lo_post->ms_request-s_front-origin ).
exp = `ORIGIN` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `PATHNAME`
act = lo_post->ms_request-s_front-pathname act = lo_post->ms_request-s_front-pathname ).
exp = `PATHNAME` ).
DATA(lo_startup) = CAST z2ui5_cl_app_startup( lo_post->mo_action->mo_app->mo_app ) ##NEEDED. DATA(lo_startup) = CAST z2ui5_cl_app_startup( lo_post->mo_action->mo_app->mo_app ) ##NEEDED.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -41,7 +41,6 @@ ENDCLASS.
CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION. CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
METHOD attri_after_load. METHOD attri_after_load.
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri). LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
@ -104,8 +103,7 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
RETURN. RETURN.
ENDIF. ENDIF.
DATA(lo_dissolve) = NEW z2ui5_cl_core_srv_diss( DATA(lo_dissolve) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
DO 5 TIMES. DO 5 TIMES.
@ -152,7 +150,6 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
EXIT. EXIT.
ENDDO. ENDDO.
""""" """""
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
@ -167,8 +164,7 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `DEREF_FAILED_TARGET_INITIAL`.
val = `DEREF_FAILED_TARGET_INITIAL`.
ENDIF. ENDIF.
GET REFERENCE OF <attri> INTO result. GET REFERENCE OF <attri> INTO result.
@ -224,7 +220,5 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING CLASS ltcl_test_app2 DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -11,22 +10,20 @@ CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING
DATA mo_app TYPE REF TO ltcl_test_app2. DATA mo_app TYPE REF TO ltcl_test_app2.
DATA xx TYPE string ##NEEDED. DATA xx TYPE string ##NEEDED.
METHODS constructor. METHODS constructor.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app2 IMPLEMENTATION.
CLASS ltcl_test_app2 IMPLEMENTATION.
METHOD constructor. METHOD constructor.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_search_attri DEFINITION FINAL
CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS first_test FOR TESTING RAISING cx_static_check. METHODS first_test FOR TESTING RAISING cx_static_check.
@ -38,20 +35,18 @@ ENDCLASS.
CLASS z2ui5_cl_core_srv_attri DEFINITION LOCAL FRIENDS ltcl_test_search_attri. CLASS z2ui5_cl_core_srv_attri DEFINITION LOCAL FRIENDS ltcl_test_search_attri.
CLASS ltcl_test_search_attri IMPLEMENTATION. CLASS ltcl_test_search_attri IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_app_client) = NEW ltcl_test_app2( ). DATA(lo_app_client) = NEW ltcl_test_app2( ).
DATA lr_value TYPE REF TO data. DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value. GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = lr_value
r_ref = lr_value o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value ) lr_value )
) ). ) ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
@ -68,13 +63,12 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
DATA lr_value TYPE REF TO data. DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value. GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = REF #( lo_app_client->mv_value )
r_ref = REF #( lo_app_client->mv_value ) o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value ) lr_value )
) ). ) ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ). DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
@ -93,8 +87,7 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
lo_app_client->mo_app = NEW #( ). lo_app_client->mo_app = NEW #( ).
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) ) ( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
( name = `2` r_ref = REF #( lo_app_client->mo_app ) ) ( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ). ( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ).
@ -105,13 +98,11 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app_sub DEFINITION FINAL FOR TESTING CLASS ltcl_test_app_sub DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -122,17 +113,16 @@ CLASS ltcl_test_app_sub DEFINITION FINAL FOR TESTING
METHODS constructor. METHODS constructor.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app_sub IMPLEMENTATION.
CLASS ltcl_test_app_sub IMPLEMENTATION.
METHOD constructor. METHOD constructor.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app3 DEFINITION FINAL FOR TESTING
DURATION MEDIUM CLASS ltcl_test_app3 DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
PUBLIC SECTION. PUBLIC SECTION.
@ -144,17 +134,16 @@ CLASS ltcl_test_app3 DEFINITION FINAL FOR TESTING
METHODS constructor. METHODS constructor.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app3 IMPLEMENTATION.
CLASS ltcl_test_app3 IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mo_app = NEW #( ). mo_app = NEW #( ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_get_attri DEFINITION FINAL FOR TESTING
DURATION SHORT CLASS ltcl_test_get_attri DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
PRIVATE SECTION. PRIVATE SECTION.
METHODS first_test FOR TESTING RAISING cx_static_check. METHODS first_test FOR TESTING RAISING cx_static_check.
@ -164,18 +153,18 @@ CLASS ltcl_test_get_attri DEFINITION FINAL FOR TESTING
ENDCLASS. ENDCLASS.
CLASS ltcl_test_get_attri IMPLEMENTATION.
CLASS ltcl_test_get_attri IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_app_client) = NEW ltcl_test_app3( ). DATA(lo_app_client) = NEW ltcl_test_app3( ).
" TODO: variable is assigned but never used (ABAP cleaner)
DATA lr_value TYPE REF TO data. DATA lr_value TYPE REF TO data.
GET REFERENCE OF lo_app_client->mv_value INTO lr_value. GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ). DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_get_val_ref( `MV_VALUE` ). DATA(lr_attri) = lo_model->attri_get_val_ref( `MV_VALUE` ).
@ -192,8 +181,7 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
CREATE DATA lo_app_client->mr_value. CREATE DATA lo_app_client->mr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ). DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_get_val_ref( `MR_VALUE->*` ). DATA(lr_attri) = lo_model->attri_get_val_ref( `MR_VALUE->*` ).
@ -209,8 +197,7 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
DATA(lo_app_client) = NEW ltcl_test_app3( ). DATA(lo_app_client) = NEW ltcl_test_app3( ).
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ). DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MV_VALUE` ). DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MV_VALUE` ).
@ -227,8 +214,7 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
CREATE DATA lo_app_client->mo_app->mr_value. CREATE DATA lo_app_client->mo_app->mr_value.
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ). DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app_client ). app = lo_app_client ).
DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MR_VALUE->*` ). DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MR_VALUE->*` ).
@ -238,6 +224,4 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,50 +1,49 @@
CLASS z2ui5_cl_core_srv_bind DEFINITION CLASS z2ui5_cl_core_srv_bind DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
DATA mo_app TYPE REF TO z2ui5_cl_core_app . DATA mo_app TYPE REF TO z2ui5_cl_core_app.
DATA mr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri . DATA mr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri.
DATA ms_config TYPE z2ui5_if_core_types=>ty_s_bind_config . DATA ms_config TYPE z2ui5_if_core_types=>ty_s_bind_config.
DATA mv_type TYPE string . DATA mv_type TYPE string.
METHODS constructor METHODS constructor
IMPORTING IMPORTING
!app TYPE REF TO z2ui5_cl_core_app . app TYPE REF TO z2ui5_cl_core_app.
METHODS main_local METHODS main_local
IMPORTING IMPORTING
!val TYPE data val TYPE data
!config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
METHODS main METHODS main
IMPORTING IMPORTING
!val TYPE REF TO data val TYPE REF TO data
!type TYPE string !type TYPE string
!config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
METHODS main_cell METHODS main_cell
IMPORTING IMPORTING
!val TYPE data val TYPE data
!type TYPE string !type TYPE string
!config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
METHODS clear METHODS clear
IMPORTING IMPORTING
!val TYPE string. val TYPE string.
METHODS bind_tab_cell METHODS bind_tab_cell
IMPORTING IMPORTING
!iv_name TYPE string iv_name TYPE string
!i_val TYPE data i_val TYPE data
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -62,10 +61,7 @@ CLASS z2ui5_cl_core_srv_bind DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
METHOD bind_tab_cell. METHOD bind_tab_cell.
FIELD-SYMBOLS <ele> TYPE any. FIELD-SYMBOLS <ele> TYPE any.
@ -73,6 +69,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
DATA lr_ref_in TYPE REF TO data. DATA lr_ref_in TYPE REF TO data.
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
ASSIGN ms_config-tab->* TO <tab>. ASSIGN ms_config-tab->* TO <tab>.
ASSIGN <tab>[ ms_config-tab_index ] TO <row>. ASSIGN <tab>[ ms_config-tab_index ] TO <row>.
@ -84,7 +81,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
lr_ref_in = REF #( <ele> ). lr_ref_in = REF #( <ele> ).
IF i_val = lr_ref_in. IF i_val = lr_ref_in.
result = iv_name && '/' && shift_right( CONV string( ms_config-tab_index - 1 ) ) && '/' && <comp>-name. result = |{ iv_name }/{ shift_right( CONV string( ms_config-tab_index - 1 ) ) }/{ <comp>-name }|.
RETURN. RETURN.
ENDIF. ENDIF.
@ -96,13 +93,11 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD check_raise_existing. METHOD check_raise_existing.
IF mr_attri->bind_type <> mv_type. IF mr_attri->bind_type <> mv_type.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |<p>Binding Error - Two different binding types for same attribute used ({ mr_attri->name }).|.
val = `<p>Binding Error - Two different binding types for same attribute used (` && mr_attri->name && `).`.
ENDIF. ENDIF.
IF mr_attri->custom_mapper IS BOUND. IF mr_attri->custom_mapper IS BOUND.
@ -111,26 +106,22 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
DATA(lv_name2) = z2ui5_cl_util=>rtti_get_classname_by_ref( ms_config-custom_mapper ). DATA(lv_name2) = z2ui5_cl_util=>rtti_get_classname_by_ref( ms_config-custom_mapper ).
IF lv_name1 <> lv_name2. IF lv_name1 <> lv_name2.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |<p>Binding Error - Two different mapper for same attribute used ({ mr_attri->name }).|.
val = `<p>Binding Error - Two different mapper for same attribute used (` && mr_attri->name && `).`.
ENDIF. ENDIF.
ENDIF. ENDIF.
IF mr_attri->custom_mapper_back IS BOUND AND mr_attri->custom_mapper_back <> ms_config-custom_mapper_back. IF mr_attri->custom_mapper_back IS BOUND AND mr_attri->custom_mapper_back <> ms_config-custom_mapper_back.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |<p>Binding Error - Two different mapper back for same attribute used ({ mr_attri->name }).|.
val = `<p>Binding Error - Two different mapper back for same attribute used (` && mr_attri->name && `).`.
ENDIF. ENDIF.
IF mr_attri->custom_filter IS BOUND AND mr_attri->custom_filter <> ms_config-custom_filter. IF mr_attri->custom_filter IS BOUND AND mr_attri->custom_filter <> ms_config-custom_filter.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = |<p>Binding Error - Two different filter for same attribute used ({ mr_attri->name }).|.
val = `<p>Binding Error - Two different filter for same attribute used (` && mr_attri->name && `).`.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD check_raise_new. METHOD check_raise_new.
IF mr_attri->custom_filter_back IS BOUND. IF mr_attri->custom_filter_back IS BOUND.
@ -138,8 +129,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
DATA(lo_dummy) = CAST if_serializable_object( mr_attri->custom_filter_back ) ##NEEDED. DATA(lo_dummy) = CAST if_serializable_object( mr_attri->custom_filter_back ) ##NEEDED.
CATCH cx_root. CATCH cx_root.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `<p>custom_filter_back used but it is not serializable, please use if_serializable_object`.
val = `<p>custom_filter_back used but it is not serializable, please use if_serializable_object`.
ENDTRY. ENDTRY.
ENDIF. ENDIF.
@ -157,11 +147,11 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD clear. METHOD clear.
TRY. TRY.
DATA(lv_path) = shift_right( val = val sub = `->*` ). DATA(lv_path) = shift_right( val = val
sub = `->*` ).
mo_app->mt_attri->*[ name = lv_path ]-check_dissolved = abap_false. mo_app->mt_attri->*[ name = lv_path ]-check_dissolved = abap_false.
mo_app->mt_attri->*[ name = val ]-check_dissolved = abap_false. mo_app->mt_attri->*[ name = val ]-check_dissolved = abap_false.
mo_app->mt_attri->*[ name = lv_path ]-name_client = ``. mo_app->mt_attri->*[ name = lv_path ]-name_client = ``.
@ -177,31 +167,33 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD constructor. METHOD constructor.
mo_app = app. mo_app = app.
ENDMETHOD. ENDMETHOD.
METHOD get_client_name. METHOD get_client_name.
result = replace( val = mr_attri->name sub = `-` with = `/` occ = 0 ). result = replace( val = mr_attri->name
result = replace( val = result sub = `>` with = `` occ = 0 ). sub = `-`
with = `/`
occ = 0 ).
result = replace( val = result
sub = `>`
with = ``
occ = 0 ).
result = COND #( WHEN mv_type = z2ui5_if_core_types=>cs_bind_type-two_way result = COND #( WHEN mv_type = z2ui5_if_core_types=>cs_bind_type-two_way
THEN `/` && z2ui5_if_core_types=>cs_ui5-two_way_model ) THEN |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }| )
&& `/` && result. && |/{ result }|.
ENDMETHOD. ENDMETHOD.
METHOD main. METHOD main.
IF z2ui5_cl_util=>check_bound_a_not_inital( config-tab ). IF z2ui5_cl_util=>check_bound_a_not_inital( config-tab ).
result = main_cell( result = main_cell( val = val
val = val
type = type type = type
config = config ). config = config ).
@ -211,8 +203,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ms_config = config. ms_config = config.
mv_type = type. mv_type = type.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_app->mt_attri
attri = mo_app->mt_attri
app = mo_app->mo_app ). app = mo_app->mo_app ).
lo_model->attri_refs_update( ). lo_model->attri_refs_update( ).
@ -227,44 +218,43 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ENDIF. ENDIF.
result = mr_attri->name_client. result = mr_attri->name_client.
IF `/` && z2ui5_if_core_types=>cs_ui5-two_way_model = result. IF |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }| = result.
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = `<p>Name of variable not allowed - x is reserved word - use anoter name for your attribute`.
val = `<p>Name of variable not allowed - x is reserved word - use anoter name for your attribute`.
ENDIF. ENDIF.
IF ms_config-path_only = abap_false. IF ms_config-path_only = abap_false.
result = `{` && result && `}`. result = |\{{ result }\}|.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD main_cell. METHOD main_cell.
ms_config = config. ms_config = config.
mv_type = type. mv_type = type.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_app ).
result = lo_bind->main( val = config-tab type = type config = VALUE #( path_only = abap_true ) ). result = lo_bind->main( val = config-tab
type = type
config = VALUE #( path_only = abap_true ) ).
result = bind_tab_cell( result = bind_tab_cell( iv_name = result
iv_name = result
i_val = val ). i_val = val ).
IF ms_config-path_only = abap_false. IF ms_config-path_only = abap_false.
result = `{` && result && `}`. result = |\{{ result }\}|.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD main_local. METHOD main_local.
TRY. TRY.
DATA(lo_json) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>new( ) ). DATA(lo_json) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>new( ) ).
lo_json->set( iv_path = `/` iv_val = val ). lo_json->set( iv_path = `/`
iv_val = val ).
IF config-custom_mapper IS BOUND. IF config-custom_mapper IS BOUND.
lo_json = lo_json->map( config-custom_mapper ). lo_json = lo_json->map( config-custom_mapper ).
@ -288,7 +278,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
result = |/{ lv_id }|. result = |/{ lv_id }|.
IF config-path_only = abap_false. IF config-path_only = abap_false.
result = `{` && result && `}`. result = |\{{ result }\}|.
ENDIF. ENDIF.
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
@ -296,7 +286,6 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD update_model_attri. METHOD update_model_attri.
mr_attri->bind_type = mv_type. mr_attri->bind_type = mv_type.
@ -305,9 +294,10 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
mr_attri->custom_filter_back = ms_config-custom_filter_back. mr_attri->custom_filter_back = ms_config-custom_filter_back.
mr_attri->custom_mapper = ms_config-custom_mapper. mr_attri->custom_mapper = ms_config-custom_mapper.
mr_attri->custom_mapper_back = ms_config-custom_mapper_back. mr_attri->custom_mapper_back = ms_config-custom_mapper_back.
mr_attri->view = COND #( WHEN ms_config-view IS INITIAL THEN z2ui5_if_client=>cs_view-main ELSE ms_config-view ). mr_attri->view = COND #( WHEN ms_config-view IS INITIAL
THEN z2ui5_if_client=>cs_view-main
ELSE ms_config-view ).
mr_attri->name_client = get_client_name( ). mr_attri->name_client = get_client_name( ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -2,9 +2,8 @@
CLASS ltcl_test_bind DEFINITION DEFERRED. CLASS ltcl_test_bind DEFINITION DEFERRED.
CLASS z2ui5_cl_core_srv_bind DEFINITION LOCAL FRIENDS ltcl_test_bind. CLASS z2ui5_cl_core_srv_bind DEFINITION LOCAL FRIENDS ltcl_test_bind.
CLASS ltcl_test_app DEFINITION FINAL FOR TESTING CLASS ltcl_test_app DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -29,23 +28,25 @@ CLASS ltcl_test_app DEFINITION FINAL FOR TESTING
DATA mo_app TYPE REF TO ltcl_test_bind ##NEEDED. DATA mo_app TYPE REF TO ltcl_test_bind ##NEEDED.
DATA xx TYPE string ##NEEDED. DATA xx TYPE string ##NEEDED.
METHODS constructor. METHODS constructor.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_app IMPLEMENTATION.
CLASS ltcl_test_app IMPLEMENTATION.
METHOD constructor. METHOD constructor.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_bind DEFINITION FINAL FOR TESTING
DURATION MEDIUM CLASS ltcl_test_bind DEFINITION FINAL
RISK LEVEL HARMLESS. FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
PUBLIC SECTION. PUBLIC SECTION.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_one_way FOR TESTING RAISING cx_static_check. METHODS test_one_way FOR TESTING RAISING cx_static_check.
METHODS test_one_way_w_x_error FOR TESTING RAISING cx_static_check. METHODS test_one_way_w_x_error FOR TESTING RAISING cx_static_check.
@ -56,8 +57,8 @@ CLASS ltcl_test_bind DEFINITION FINAL FOR TESTING
ENDCLASS. ENDCLASS.
CLASS ltcl_test_bind IMPLEMENTATION.
CLASS ltcl_test_bind IMPLEMENTATION.
METHOD test_one_way_w_x_error. METHOD test_one_way_w_x_error.
DATA(lo_app_client) = NEW ltcl_test_app( ). DATA(lo_app_client) = NEW ltcl_test_app( ).
@ -67,8 +68,7 @@ CLASS ltcl_test_bind IMPLEMENTATION.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
TRY. TRY.
lo_bind->main( lo_bind->main( val = REF #( lo_app_client->xx )
val = REF #( lo_app_client->xx )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>abort( ). cl_abap_unit_assert=>abort( ).
@ -86,13 +86,11 @@ CLASS ltcl_test_bind IMPLEMENTATION.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_bind) = lo_bind->main( DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MV_VALUE}`
act = lv_bind act = lv_bind ).
exp = `{/MV_VALUE}` ).
ENDMETHOD. ENDMETHOD.
@ -104,13 +102,11 @@ CLASS ltcl_test_bind IMPLEMENTATION.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
lo_bind->main( lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
TRY. TRY.
lo_bind->main( lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-two_way ). type = z2ui5_if_core_types=>cs_bind_type-two_way ).
cl_abap_unit_assert=>abort( ). cl_abap_unit_assert=>abort( ).
@ -120,7 +116,6 @@ CLASS ltcl_test_bind IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD test_two_way. METHOD test_two_way.
* IF sy-sysid = 'ABC'. * IF sy-sysid = 'ABC'.
@ -133,17 +128,14 @@ CLASS ltcl_test_bind IMPLEMENTATION.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_bind) = lo_bind->main( DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-two_way ). type = z2ui5_if_core_types=>cs_bind_type-two_way ).
DATA(lv_bind2) = lo_bind->main( DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-two_way ). type = z2ui5_if_core_types=>cs_bind_type-two_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = lv_bind2
act = lv_bind act = lv_bind ).
exp = lv_bind2 ).
cl_abap_unit_assert=>assert_not_initial( lv_bind ). cl_abap_unit_assert=>assert_not_initial( lv_bind ).
@ -175,20 +167,17 @@ CLASS ltcl_test_bind IMPLEMENTATION.
cl_abap_unit_assert=>assert_not_initial( lv_bind ). cl_abap_unit_assert=>assert_not_initial( lv_bind ).
DATA(lv_bind2) = lo_bind->main( DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
val = REF #( lo_app_client->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-two_way ). type = z2ui5_if_core_types=>cs_bind_type-two_way ).
cl_abap_unit_assert=>assert_not_initial( lv_bind2 ). cl_abap_unit_assert=>assert_not_initial( lv_bind2 ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_main_structure DEFINITION FINAL FOR TESTING CLASS ltcl_test_main_structure DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -215,11 +204,10 @@ CLASS ltcl_test_main_structure DEFINITION FINAL FOR TESTING
METHODS test_one_way_lev3 FOR TESTING RAISING cx_static_check. METHODS test_one_way_lev3 FOR TESTING RAISING cx_static_check.
METHODS test_one_way_lev4_long_name FOR TESTING RAISING cx_static_check. METHODS test_one_way_lev4_long_name FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_main_structure IMPLEMENTATION.
CLASS ltcl_test_main_structure IMPLEMENTATION.
METHOD test_one_way_lev1. METHOD test_one_way_lev1.
DATA(lo_test_app) = NEW ltcl_test_main_structure( ). DATA(lo_test_app) = NEW ltcl_test_main_structure( ).
@ -227,22 +215,18 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
val = REF #( lo_test_app->ms_struc-input )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/INPUT}`
act = lv_result act = lv_result ).
exp = `{/MS_STRUC/INPUT}` ).
lv_result = lo_bind->main( lv_result = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
val = REF #( lo_test_app->ms_struc-input )
config = VALUE #( path_only = abap_true ) config = VALUE #( path_only = abap_true )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `/MS_STRUC/INPUT`
act = lv_result act = lv_result ).
exp = `/MS_STRUC/INPUT` ).
ENDMETHOD. ENDMETHOD.
@ -253,13 +237,11 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-input )
val = REF #( lo_test_app->ms_struc-s_02-input )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/INPUT}`
act = lv_result act = lv_result ).
exp = `{/MS_STRUC/S_02/INPUT}` ).
ENDMETHOD. ENDMETHOD.
@ -270,13 +252,11 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-input )
val = REF #( lo_test_app->ms_struc-s_02-s_03-input )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/INPUT}`
act = lv_result act = lv_result ).
exp = `{/MS_STRUC/S_02/S_03/INPUT}` ).
ENDMETHOD. ENDMETHOD.
@ -287,22 +267,18 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-s_04-input )
val = REF #( lo_test_app->ms_struc-s_02-s_03-s_04-input )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/S_04/INPUT}`
act = lv_result act = lv_result ).
exp = `{/MS_STRUC/S_02/S_03/S_04/INPUT}` ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_main_object DEFINITION FINAL FOR TESTING CLASS ltcl_test_main_object DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -330,11 +306,10 @@ CLASS ltcl_test_main_object DEFINITION FINAL FOR TESTING
METHODS test_one_way_value FOR TESTING RAISING cx_static_check. METHODS test_one_way_value FOR TESTING RAISING cx_static_check.
METHODS test_one_way_struc FOR TESTING RAISING cx_static_check. METHODS test_one_way_struc FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS ltcl_test_main_object IMPLEMENTATION.
CLASS ltcl_test_main_object IMPLEMENTATION.
METHOD test_one_way_value. METHOD test_one_way_value.
DATA(lo_test_app) = NEW ltcl_test_main_object( ). DATA(lo_test_app) = NEW ltcl_test_main_object( ).
@ -344,13 +319,11 @@ CLASS ltcl_test_main_object IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->mv_value )
val = REF #( lo_test_app->mo_obj->mv_value )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MV_VALUE}`
act = lv_result act = lv_result ).
exp = `{/MO_OBJ/MV_VALUE}` ).
ENDMETHOD. ENDMETHOD.
@ -362,14 +335,11 @@ CLASS ltcl_test_main_object IMPLEMENTATION.
lo_app->mo_app = lo_test_app. lo_app->mo_app = lo_test_app.
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ). DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
DATA(lv_result) = lo_bind->main( DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->ms_struc-input )
val = REF #( lo_test_app->mo_obj->ms_struc-input )
type = z2ui5_if_core_types=>cs_bind_type-one_way ). type = z2ui5_if_core_types=>cs_bind_type-one_way ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MS_STRUC/INPUT}`
act = lv_result act = lv_result ).
exp = `{/MO_OBJ/MS_STRUC/INPUT}` ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,16 +1,16 @@
CLASS z2ui5_cl_core_srv_diss DEFINITION CLASS z2ui5_cl_core_srv_diss DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
METHODS constructor METHODS constructor
IMPORTING IMPORTING
!attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
!app TYPE REF TO object. app TYPE REF TO object.
METHODS main.
METHODS main .
PROTECTED SECTION. PROTECTED SECTION.
DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri. DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri.
@ -32,12 +32,14 @@ CLASS z2ui5_cl_core_srv_diss DEFINITION
VALUE(result) TYPE z2ui5_if_core_types=>ty_t_attri. VALUE(result) TYPE z2ui5_if_core_types=>ty_t_attri.
METHODS diss_oref METHODS diss_oref
IMPORTING ir_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri IMPORTING
RETURNING VALUE(result) TYPE z2ui5_if_core_types=>ty_t_attri. ir_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri
RETURNING
VALUE(result) TYPE z2ui5_if_core_types=>ty_t_attri.
METHODS create_new_entry METHODS create_new_entry
IMPORTING IMPORTING
name TYPE string !name TYPE string
RETURNING RETURNING
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_attri. VALUE(result) TYPE z2ui5_if_core_types=>ty_s_attri.
@ -45,10 +47,7 @@ CLASS z2ui5_cl_core_srv_diss DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION. CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
METHOD constructor. METHOD constructor.
mt_attri = attri. mt_attri = attri.
@ -56,20 +55,17 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD create_new_entry. METHOD create_new_entry.
result = VALUE z2ui5_if_core_types=>ty_s_attri( ). result = VALUE z2ui5_if_core_types=>ty_s_attri( ).
result-name = name. result-name = name.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
result-r_ref = lo_model->attri_get_val_ref( name ). result-r_ref = lo_model->attri_get_val_ref( name ).
result-o_typedescr = cl_abap_datadescr=>describe_by_data_ref( result-r_ref ). result-o_typedescr = cl_abap_datadescr=>describe_by_data_ref( result-r_ref ).
ENDMETHOD. ENDMETHOD.
METHOD diss_dref. METHOD diss_dref.
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ). IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ).
@ -92,9 +88,8 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
WHEN OTHERS. WHEN OTHERS.
ls_attri2-name = ir_attri->name && `->*`. ls_attri2-name = |{ ir_attri->name }->*|.
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
attri = mt_attri
app = mo_app ). app = mo_app ).
ls_attri2-r_ref = lo_model->attri_get_val_ref( ls_attri2-name ). ls_attri2-r_ref = lo_model->attri_get_val_ref( ls_attri2-name ).
INSERT ls_attri2 INTO TABLE result. INSERT ls_attri2 INTO TABLE result.
@ -103,7 +98,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD diss_oref. METHOD diss_oref.
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ). IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ).
@ -118,7 +112,7 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
AND is_interface = abap_false AND is_interface = abap_false
AND is_constant = abap_false. AND is_constant = abap_false.
TRY. TRY.
DATA(lv_name) = COND #( WHEN ir_attri->name IS NOT INITIAL THEN ir_attri->name && `->` ) && lr_attri->name. DATA(lv_name) = COND #( WHEN ir_attri->name IS NOT INITIAL THEN |{ ir_attri->name }->| ) && lr_attri->name.
DATA(ls_new) = create_new_entry( lv_name ). DATA(ls_new) = create_new_entry( lv_name ).
INSERT ls_new INTO TABLE result. INSERT ls_new INTO TABLE result.
@ -128,14 +122,13 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD diss_struc. METHOD diss_struc.
IF ir_attri->o_typedescr->kind = cl_abap_typedescr=>kind_ref. IF ir_attri->o_typedescr->kind = cl_abap_typedescr=>kind_ref.
DATA(lv_name) = ir_attri->name && `->`. DATA(lv_name) = |{ ir_attri->name }->|.
DATA(lr_ref) = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ). DATA(lr_ref) = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ).
ELSE. ELSE.
lv_name = ir_attri->name && `-`. lv_name = |{ ir_attri->name }-|.
lr_ref = ir_attri->r_ref. lr_ref = ir_attri->r_ref.
ENDIF. ENDIF.
@ -148,7 +141,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD main. METHOD main.
TRY. TRY.
@ -170,7 +162,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD main_init. METHOD main_init.
IF mt_attri->* IS NOT INITIAL. IF mt_attri->* IS NOT INITIAL.
@ -188,7 +179,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD main_run. METHOD main_run.
DATA(lt_attri_new) = VALUE z2ui5_if_core_types=>ty_t_attri( ). DATA(lt_attri_new) = VALUE z2ui5_if_core_types=>ty_t_attri( ).

View File

@ -1,9 +1,8 @@
CLASS ltcl_test_dissolve DEFINITION DEFERRED. CLASS ltcl_test_dissolve DEFINITION DEFERRED.
CLASS z2ui5_cl_core_srv_diss DEFINITION LOCAL FRIENDS ltcl_test_dissolve. CLASS z2ui5_cl_core_srv_diss DEFINITION LOCAL FRIENDS ltcl_test_dissolve.
CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING CLASS ltcl_test_dissolve DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
@ -48,16 +47,14 @@ CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
ENDCLASS. ENDCLASS.
CLASS ltcl_test_dissolve IMPLEMENTATION. CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_ref. METHOD test_ref.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -76,8 +73,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -98,8 +94,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app->mr_value TYPE string. CREATE DATA lo_app->mr_value TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -120,8 +115,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app->mo_app->mr_value TYPE string. CREATE DATA lo_app->mo_app->mr_value TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app2 ). app = lo_app2 ).
lo_model->main( ). lo_model->main( ).
@ -139,8 +133,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -165,8 +158,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app->mr_struc. CREATE DATA lo_app->mr_struc.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -189,8 +181,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app2->mr_value TYPE string. CREATE DATA lo_app2->mr_value TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -211,8 +202,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app->mo_app->mr_struc. CREATE DATA lo_app->mo_app->mr_struc.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -226,7 +216,6 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD test_struc_dref. METHOD test_struc_dref.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
@ -234,8 +223,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
CREATE DATA lo_app->mo_app->ms_struc2-r_ref TYPE string. CREATE DATA lo_app->mo_app->ms_struc2-r_ref TYPE string.
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri. DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
attri = REF #( lt_attri )
app = lo_app ). app = lo_app ).
lo_model->main( ). lo_model->main( ).
@ -247,5 +235,4 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC2-R_REF->*` ] OPTIONAL ) ). cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC2-R_REF->*` ] OPTIONAL ) ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,23 +1,22 @@
CLASS z2ui5_cl_core_srv_event DEFINITION CLASS z2ui5_cl_core_srv_event DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
METHODS get_event METHODS get_event
IMPORTING IMPORTING
!val TYPE clike OPTIONAL val TYPE clike OPTIONAL
!t_arg TYPE string_table OPTIONAL t_arg TYPE string_table OPTIONAL
!s_cnt TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL s_cnt TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL
PREFERRED PARAMETER val PREFERRED PARAMETER val
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
METHODS get_event_client METHODS get_event_client
IMPORTING IMPORTING
!val TYPE clike val TYPE clike
!t_arg TYPE string_table OPTIONAL t_arg TYPE string_table OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -34,20 +33,18 @@ ENDCLASS.
CLASS z2ui5_cl_core_srv_event IMPLEMENTATION. CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
METHOD get_event. METHOD get_event.
result = |{ z2ui5_if_core_types=>cs_ui5-event_backend_function }(['{ val }'|. result = |{ z2ui5_if_core_types=>cs_ui5-event_backend_function }(['{ val }'|.
IF s_cnt-check_allow_multi_req = abap_true. IF s_cnt-check_allow_multi_req = abap_true.
result = result && `,false,true`. result = |{ result },false,true|.
ENDIF. ENDIF.
result = result && `]` && get_t_arg( t_arg ). result = |{ result }]{ get_t_arg( t_arg ) }|.
ENDMETHOD. ENDMETHOD.
METHOD get_event_client. METHOD get_event_client.
result = |{ z2ui5_if_core_types=>cs_ui5-event_frontend_function }('{ val }'|. result = |{ z2ui5_if_core_types=>cs_ui5-event_frontend_function }('{ val }'|.
@ -55,7 +52,6 @@ CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_t_arg. METHOD get_t_arg.
IF val IS NOT INITIAL. IF val IS NOT INITIAL.
@ -66,14 +62,14 @@ CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
IF lv_new(1) <> `$` AND lv_new(1) <> `{`. IF lv_new(1) <> `$` AND lv_new(1) <> `{`.
lv_new = `'` && lv_new && `'`. lv_new = |'{ lv_new }'|.
ENDIF. ENDIF.
result = result && `, ` && lv_new. result = |{ result }, { lv_new }|.
ENDLOOP. ENDLOOP.
ENDIF. ENDIF.
result = result && `)`. result = |{ result })|.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,25 +1,24 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION LONG FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
RISK LEVEL HARMLESS.
PUBLIC SECTION. PUBLIC SECTION.
METHODS event FOR TESTING. METHODS event FOR TESTING.
METHODS event_backend FOR TESTING. METHODS event_backend FOR TESTING.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD event. METHOD event.
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ). DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
DATA(lv_event) = lo_event->get_event( `POST` ). DATA(lv_event) = lo_event->get_event( `POST` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `.eB(['POST'])`
act = lv_event act = lv_event ).
exp = `.eB(['POST'])` ).
ENDMETHOD. ENDMETHOD.
@ -28,9 +27,8 @@ CLASS ltcl_test IMPLEMENTATION.
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ). DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
DATA(lv_event) = lo_event->get_event_client( z2ui5_if_client=>cs_event-popover_close ). DATA(lv_event) = lo_event->get_event_client( z2ui5_if_client=>cs_event-popover_close ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `.eF('POPOVER_CLOSE')`
act = lv_event act = lv_event ).
exp = `.eF('POPOVER_CLOSE')` ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,45 +1,42 @@
CLASS z2ui5_cl_core_srv_json DEFINITION CLASS z2ui5_cl_core_srv_json DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES z2ui5_if_ajson_filter . INTERFACES z2ui5_if_ajson_filter.
METHODS request_json_to_abap METHODS request_json_to_abap
IMPORTING IMPORTING
val TYPE string val TYPE string
RETURNING RETURNING
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_request . VALUE(result) TYPE z2ui5_if_core_types=>ty_s_request.
METHODS response_abap_to_json METHODS response_abap_to_json
IMPORTING IMPORTING
val TYPE z2ui5_if_core_types=>ty_s_response val TYPE z2ui5_if_core_types=>ty_s_response
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
METHODS model_front_to_back METHODS model_front_to_back
IMPORTING IMPORTING
view TYPE string view TYPE string
t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
model TYPE REF TO z2ui5_if_ajson . model TYPE REF TO z2ui5_if_ajson.
METHODS model_back_to_front METHODS model_back_to_front
IMPORTING IMPORTING
t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
RETURNING RETURNING
VALUE(result) TYPE string . VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_srv_json IMPLEMENTATION. CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
METHOD model_front_to_back. METHOD model_front_to_back.
IF line_exists( t_attri->*[ view = view ] ). IF line_exists( t_attri->*[ view = view ] ).
@ -71,19 +68,15 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
lo_val_front->to_abap( lo_val_front->to_abap( IMPORTING ev_container = <val> ).
IMPORTING
ev_container = <val> ).
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
z2ui5_cl_util=>x_raise( |JSON_PARSING_ERROR: { x->get_text( ) } | ). z2ui5_cl_util=>x_raise( |JSON_PARSING_ERROR: { x->get_text( ) } | ).
ENDTRY. ENDTRY.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD model_back_to_front. METHOD model_back_to_front.
TRY. TRY.
@ -91,9 +84,11 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``. LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
IF lr_attri->custom_mapper IS BOUND. IF lr_attri->custom_mapper IS BOUND.
DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = lr_attri->custom_mapper ) ). DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
ii_custom_mapping = lr_attri->custom_mapper ) ).
ELSE. ELSE.
ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ). ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
ENDIF. ENDIF.
CASE lr_attri->bind_type. CASE lr_attri->bind_type.
@ -105,10 +100,14 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
* ASSERT sy-subrc = 0. * ASSERT sy-subrc = 0.
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = <attribute> ). ajson->set( iv_ignore_empty = abap_false
iv_path = `/`
iv_val = <attribute> ).
WHEN z2ui5_if_core_types=>cs_bind_type-one_time. WHEN z2ui5_if_core_types=>cs_bind_type-one_time.
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = lr_attri->json_bind_local ). ajson->set( iv_ignore_empty = abap_false
iv_path = `/`
iv_val = lr_attri->json_bind_local ).
WHEN OTHERS. WHEN OTHERS.
ASSERT `` = `ERROR_UNKNOWN_BIND_MODE`. ASSERT `` = `ERROR_UNKNOWN_BIND_MODE`.
@ -118,7 +117,8 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
ajson = ajson->filter( lr_attri->custom_filter ). ajson = ajson->filter( lr_attri->custom_filter ).
ENDIF. ENDIF.
ajson_result->set( iv_path = lr_attri->name_client iv_val = ajson ). ajson_result->set( iv_path = lr_attri->name_client
iv_val = ajson ).
ENDLOOP. ENDLOOP.
result = ajson_result->stringify( ). result = ajson_result->stringify( ).
@ -129,25 +129,22 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD request_json_to_abap. METHOD request_json_to_abap.
TRY. TRY.
DATA(lo_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>parse( val ) ). DATA(lo_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>parse( val ) ).
DATA(lv_model_edit_name) = `/` && z2ui5_if_core_types=>cs_ui5-two_way_model. DATA(lv_model_edit_name) = |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }|.
result-o_model = z2ui5_cl_ajson=>create_empty( ). result-o_model = z2ui5_cl_ajson=>create_empty( ).
DATA(lo_model) = lo_ajson->slice( lv_model_edit_name ). DATA(lo_model) = lo_ajson->slice( lv_model_edit_name ).
result-o_model->set( iv_path = lv_model_edit_name iv_val = lo_model ). result-o_model->set( iv_path = lv_model_edit_name
iv_val = lo_model ).
lo_ajson->delete( lv_model_edit_name ). lo_ajson->delete( lv_model_edit_name ).
lo_ajson = lo_ajson->slice( `/S_FRONT` ). lo_ajson = lo_ajson->slice( `/S_FRONT` ).
lo_ajson->to_abap( lo_ajson->to_abap( EXPORTING iv_corresponding = abap_true
EXPORTING IMPORTING ev_container = result-s_front ).
iv_corresponding = abap_true
IMPORTING
ev_container = result-s_front ).
result-s_front-o_comp_data = lo_ajson->slice( `/CONFIG/ComponentData` ). result-s_front-o_comp_data = lo_ajson->slice( `/CONFIG/ComponentData` ).
@ -175,37 +172,36 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
ENDIF. ENDIF.
result-s_control-app_start = z2ui5_cl_util=>c_trim_upper( result-s_control-app_start = z2ui5_cl_util=>c_trim_upper(
z2ui5_cl_util=>url_param_get( val = `app_start` url = result-s_front-search ) ). z2ui5_cl_util=>url_param_get( val = `app_start`
url = result-s_front-search ) ).
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
RAISE EXCEPTION TYPE z2ui5_cx_util_error RAISE EXCEPTION TYPE z2ui5_cx_util_error
EXPORTING EXPORTING val = x.
val = x.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD response_abap_to_json. METHOD response_abap_to_json.
TRY. TRY.
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ). ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
ajson_result->set( iv_path = `/` iv_val = val-s_front ). ajson_result->set( iv_path = `/`
iv_val = val-s_front ).
ajson_result = ajson_result->filter( NEW z2ui5_cl_core_srv_json( ) ). ajson_result = ajson_result->filter( NEW z2ui5_cl_core_srv_json( ) ).
DATA(lv_frontend) = ajson_result->stringify( ). DATA(lv_frontend) = ajson_result->stringify( ).
result = `{` && result = |\{| &&
|"S_FRONT":{ lv_frontend },| && |"S_FRONT":{ lv_frontend },| &&
|"MODEL":{ val-model }| && |"MODEL":{ val-model }| &&
`}`. |\}|.
CATCH cx_root INTO DATA(x). CATCH cx_root INTO DATA(x).
ASSERT x IS NOT BOUND. ASSERT x IS NOT BOUND.
ENDTRY. ENDTRY.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_ajson_filter~keep_node. METHOD z2ui5_if_ajson_filter~keep_node.
rv_keep = abap_true. rv_keep = abap_true.

View File

@ -1,6 +1,5 @@
CLASS ltcl_test DEFINITION FINAL FOR TESTING CLASS ltcl_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
RISK LEVEL HARMLESS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS request_json_to_abap FOR TESTING RAISING cx_static_check. METHODS request_json_to_abap FOR TESTING RAISING cx_static_check.
@ -9,39 +8,32 @@ ENDCLASS.
CLASS ltcl_test IMPLEMENTATION. CLASS ltcl_test IMPLEMENTATION.
METHOD request_json_to_abap. METHOD request_json_to_abap.
DATA(lv_payload) = `{"XX":{"NAME":"test"},"S_FRONT":{"ID":"ID_NR","EDIT":{"NAME":"test"},"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":"SEARCH"` && DATA(lv_payload) = |\{"XX":\{"NAME":"test"\},"S_FRONT":\{"ID":"ID_NR","EDIT":\{"NAME":"test"\},"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":"SEARCH"| &&
`,"VIEW":"MAIN","EVENT":"BUTTON_POST","T_EVENT_ARG":[]}}`. |,"VIEW":"MAIN","EVENT":"BUTTON_POST","T_EVENT_ARG":[]\}\}|.
DATA(lo_mapper) = NEW z2ui5_cl_core_srv_json( ). DATA(lo_mapper) = NEW z2ui5_cl_core_srv_json( ).
DATA(ls_result) = lo_mapper->request_json_to_abap( lv_payload ). DATA(ls_result) = lo_mapper->request_json_to_abap( lv_payload ).
DATA(ls_exp) = VALUE z2ui5_if_core_types=>ty_s_request( DATA(ls_exp) = VALUE z2ui5_if_core_types=>ty_s_request( s_front = VALUE #( id = `ID_NR`
s_front = VALUE #(
id = `ID_NR`
view = `MAIN` view = `MAIN`
origin = `ORIGIN` origin = `ORIGIN`
pathname = `PATHNAME` pathname = `PATHNAME`
search = `SEARCH` search = `SEARCH`
event = `BUTTON_POST` ) ). event = `BUTTON_POST` ) ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = ls_exp-s_front
act = ls_result-s_front act = ls_result-s_front ).
exp = ls_exp-s_front ).
DATA(lt_tree) = VALUE z2ui5_if_ajson_types=>ty_nodes_ts( ). DATA(lt_tree) = VALUE z2ui5_if_ajson_types=>ty_nodes_ts( ).
lt_tree = ls_result-o_model->mt_json_tree. lt_tree = ls_result-o_model->mt_json_tree.
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = `test`
act = lt_tree[ name = `NAME` ]-value act = lt_tree[ name = `NAME` ]-value ).
exp = `test` ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals( exp = 3
act = lines( lt_tree ) act = lines( lt_tree ) ).
exp = 3 ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,7 @@
CLASS z2ui5_cl_core_srv_util DEFINITION CLASS z2ui5_cl_core_srv_util DEFINITION
PUBLIC PUBLIC
INHERITING FROM z2ui5_cl_util INHERITING FROM z2ui5_cl_util
CREATE PUBLIC . CREATE PUBLIC.
PUBLIC SECTION. PUBLIC SECTION.
@ -19,37 +19,33 @@ CLASS z2ui5_cl_core_srv_util DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_core_srv_util IMPLEMENTATION. CLASS z2ui5_cl_core_srv_util IMPLEMENTATION.
METHOD app_get_url. METHOD app_get_url.
IF classname IS INITIAL. IF classname IS INITIAL.
classname = rtti_get_classname_by_ref( client->get_app( ) ). classname = rtti_get_classname_by_ref( client->get_app( ) ).
ENDIF. ENDIF.
DATA(lv_url) = client->get( )-s_config-origin && client->get( )-s_config-pathname && `?`. DATA(lv_url) = |{ client->get( )-s_config-origin }{ client->get( )-s_config-pathname }?|.
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ). DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
DELETE lt_param WHERE n = `app_start`. DELETE lt_param WHERE n = `app_start`.
INSERT VALUE #( n = `app_start` v = to_lower( classname ) ) INTO TABLE lt_param. INSERT VALUE #( n = `app_start`
v = to_lower( classname ) ) INTO TABLE lt_param.
result = lv_url && url_param_create_url( lt_param ) && client->get( )-s_config-hash. result = lv_url && url_param_create_url( lt_param ) && client->get( )-s_config-hash.
ENDMETHOD. ENDMETHOD.
METHOD app_get_url_source_code. METHOD app_get_url_source_code.
DATA(ls_config) = client->get( )-s_config. DATA(ls_config) = client->get( )-s_config.
result = ls_config-origin && `/sap/bc/adt/oo/classes/` result = |{ ls_config-origin }/sap/bc/adt/oo/classes/|
&& rtti_get_classname_by_ref( client->get_app( ) ) && `/source/main`. && |{ rtti_get_classname_by_ref( client->get_app( ) ) }/source/main|.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_app_xml DEFINITION CLASS z2ui5_cl_app_app_xml DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,24 +9,23 @@ CLASS z2ui5_cl_app_app_xml DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_app_xml IMPLEMENTATION. CLASS z2ui5_cl_app_app_xml IMPLEMENTATION.
METHOD get. METHOD get.
result = `<mvc:View controllerName="z2ui5.controller.App"` && result = |<mvc:View controllerName="z2ui5.controller.App"| &&
` xmlns:html="http://www.w3.org/1999/xhtml"` && | xmlns:html="http://www.w3.org/1999/xhtml"| &&
` xmlns:mvc="sap.ui.core.mvc" displayBlock="true"` && | xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &&
` xmlns="sap.m">` && | xmlns="sap.m">| &&
` <App id="app">` && | <App id="app">| &&
` </App>` && | </App>| &&
`</mvc:View>` && |</mvc:View>| &&
`` && || &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_component_js DEFINITION CLASS z2ui5_cl_app_component_js DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,77 +9,76 @@ CLASS z2ui5_cl_app_component_js DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_component_js IMPLEMENTATION. CLASS z2ui5_cl_app_component_js IMPLEMENTATION.
METHOD get. METHOD get.
result = `sap.ui.define(["sap/ui/core/UIComponent", "z2ui5/model/models",` && |\n| && result = |sap.ui.define(["sap/ui/core/UIComponent", "z2ui5/model/models",| && |\n| &&
` "z2ui5/cc/DebugTool","z2ui5/cc/Server", "sap/base/Log","sap/ui/VersionInfo"` && |\n| && | "z2ui5/cc/DebugTool","z2ui5/cc/Server", "sap/base/Log","sap/ui/VersionInfo"| && |\n| &&
`` && |\n| && || && |\n| &&
` ], function (UIComponent, models, DebugTool, Server, Log, VersionInfo) {` && |\n| && | ], function (UIComponent, models, DebugTool, Server, Log, VersionInfo) \{| && |\n| &&
` return UIComponent.extend("z2ui5.Component", {` && |\n| && | return UIComponent.extend("z2ui5.Component", \{| && |\n| &&
` metadata: {` && |\n| && | metadata: \{| && |\n| &&
` manifest: "json"` && |\n| && | manifest: "json"| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` init: async function () {` && |\n| && | init: async function () \{| && |\n| &&
`` && |\n| && || && |\n| &&
` UIComponent.prototype.init.apply(this, arguments);` && |\n| && | UIComponent.prototype.init.apply(this, arguments);| && |\n| &&
`` && |\n| && || && |\n| &&
` this.getRouter().initialize();` && |\n| && | this.getRouter().initialize();| && |\n| &&
` z2ui5.oRouter = this.getRouter();` && |\n| && | z2ui5.oRouter = this.getRouter();| && |\n| &&
` this.setModel(models.createDeviceModel(), "device");` && |\n| && | this.setModel(models.createDeviceModel(), "device");| && |\n| &&
` this._oLogger = Log.getLogger("abap2UI5");` && |\n| && | this._oLogger = Log.getLogger("abap2UI5");| && |\n| &&
`` && |\n| && || && |\n| &&
` z2ui5.oConfig = {};` && |\n| && | z2ui5.oConfig = \{\};| && |\n| &&
` z2ui5.oConfig.ComponentData = this.getComponentData();` && |\n| && | z2ui5.oConfig.ComponentData = this.getComponentData();| && |\n| &&
`` && |\n| && || && |\n| &&
` try {` && |\n| && | try \{| && |\n| &&
` z2ui5.oLaunchpadService = await this.getService("ShellUIService");` && |\n| && | z2ui5.oLaunchpadService = await this.getService("ShellUIService");| && |\n| &&
` } catch (e) {}` && |\n| && | \} catch (e) \{\}| && |\n| &&
`` && |\n| && || && |\n| &&
` let oVersionInfo = await VersionInfo.load();` && |\n| && | let oVersionInfo = await VersionInfo.load();| && |\n| &&
` z2ui5.oConfig.UI5VersionInfo = {` && |\n| && | z2ui5.oConfig.UI5VersionInfo = \{| && |\n| &&
` version : oVersionInfo.version,` && |\n| && | version : oVersionInfo.version,| && |\n| &&
` buildTimestamp : oVersionInfo.buildTimestamp,` && |\n| && | buildTimestamp : oVersionInfo.buildTimestamp,| && |\n| &&
` gav : oVersionInfo.gav,` && |\n| && | gav : oVersionInfo.gav,| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
`` && |\n| && || && |\n| &&
` if (/iPad|iPhone/.test(navigator.platform)) {` && |\n| && | if (/iPad\|iPhone/.test(navigator.platform)) \{| && |\n| &&
` window.addEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| && | window.addEventListener("__pagehide", this.__pagehide.bind(this));| && |\n| &&
` } else {` && |\n| && | \} else \{| && |\n| &&
` window.addEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| && | window.addEventListener("__beforeunload", this.__beforeunload.bind(this));| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
`` && |\n| && || && |\n| &&
` document.addEventListener("keydown", function (zEvent) {` && |\n| && | document.addEventListener("keydown", function (zEvent) \{| && |\n| &&
` if (zEvent?.key === "F12") {` && |\n| && | if (zEvent?.key === "F12") \{| && |\n| &&
` new z2ui5.cc.DebugTool().show();` && |\n| && | new z2ui5.cc.DebugTool().show();| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` __beforeunload: function () {` && |\n| && | __beforeunload: function () \{| && |\n| &&
` window.removeEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| && | window.removeEventListener("__beforeunload", this.__beforeunload.bind(this));| && |\n| &&
` this.destroy();` && |\n| && | this.destroy();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` __pagehide: function () {` && |\n| && | __pagehide: function () \{| && |\n| &&
` window.removeEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| && | window.removeEventListener("__pagehide", this.__pagehide.bind(this));| && |\n| &&
` this.destroy();` && |\n| && | this.destroy();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` exit: function () {` && |\n| && | exit: function () \{| && |\n| &&
` Server.endSession();` && |\n| && | Server.endSession();| && |\n| &&
` if (UIComponent.prototype.exit)` && |\n| && | if (UIComponent.prototype.exit)| && |\n| &&
` UIComponent.prototype.exit.apply(this, arguments);` && |\n| && | UIComponent.prototype.exit.apply(this, arguments);| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
`});` && |\n| && |\});| && |\n| &&
`` && |\n| && || && |\n| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_debugtool_js DEFINITION CLASS z2ui5_cl_app_debugtool_js DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,159 +9,158 @@ CLASS z2ui5_cl_app_debugtool_js DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_debugtool_js IMPLEMENTATION. CLASS z2ui5_cl_app_debugtool_js IMPLEMENTATION.
METHOD get. METHOD get.
result = `sap.ui.define(["sap/ui/core/Control", "sap/ui/core/Fragment", "sap/ui/model/json/JSONModel"], (Control, Fragment, JSONModel) => {` && |\n| && result = |sap.ui.define(["sap/ui/core/Control", "sap/ui/core/Fragment", "sap/ui/model/json/JSONModel"], (Control, Fragment, JSONModel) => \{| && |\n| &&
` "use strict";` && |\n| && | "use strict";| && |\n| &&
`` && |\n| && || && |\n| &&
` return Control.extend("z2ui5.cc.DebugTool", {` && |\n| && | return Control.extend("z2ui5.cc.DebugTool", \{| && |\n| &&
`` && |\n| && || && |\n| &&
` //printer XML` && |\n| && | //printer XML| && |\n| &&
` prettifyXml: function (sourceXml) {` && |\n| && | prettifyXml: function (sourceXml) \{| && |\n| &&
` const xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');` && |\n| && | const xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');| && |\n| &&
` var sParse = ``&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;` && |\n| && | var sParse = `&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;| && |\n| &&
` &lt;xsl:strip-space elements="*" /&gt;` && |\n| && | &lt;xsl:strip-space elements="*" /&gt;| && |\n| &&
` &lt;xsl:template match="para[content-style][not(text())]"&gt;` && |\n| && | &lt;xsl:template match="para[content-style][not(text())]"&gt;| && |\n| &&
` &lt;xsl:value-of select="normalize-space(.)" /&gt;` && |\n| && | &lt;xsl:value-of select="normalize-space(.)" /&gt;| && |\n| &&
` &lt;/xsl:template&gt;` && |\n| && | &lt;/xsl:template&gt;| && |\n| &&
` &lt;xsl:template match="node()|@*"&gt;` && |\n| && | &lt;xsl:template match="node()\|@*"&gt;| && |\n| &&
` &lt;xsl:copy&gt;` && |\n| && | &lt;xsl:copy&gt;| && |\n| &&
` &lt;xsl:apply-templates select="node()|@*" /&gt;` && |\n| && | &lt;xsl:apply-templates select="node()\|@*" /&gt;| && |\n| &&
` &lt;/xsl:copy&gt;` && |\n| && | &lt;/xsl:copy&gt;| && |\n| &&
` &lt;/xsl:template&gt;` && |\n| && | &lt;/xsl:template&gt;| && |\n| &&
` &lt;xsl:output indent="yes" /&gt;` && |\n| && | &lt;xsl:output indent="yes" /&gt;| && |\n| &&
` &lt;/xsl:stylesheet&gt;``;` && |\n| && | &lt;/xsl:stylesheet&gt;`;| && |\n| &&
` sParse = sParse.replace(/&gt;/g, unescape("%3E")).replace(/&lt;/g, unescape("%3C"));` && |\n| && | sParse = sParse.replace(/&gt;/g, unescape("%3E")).replace(/&lt;/g, unescape("%3C"));| && |\n| &&
` const xsltDoc = new DOMParser().parseFromString(sParse, 'application/xml');` && |\n| && | const xsltDoc = new DOMParser().parseFromString(sParse, 'application/xml');| && |\n| &&
`` && |\n| && || && |\n| &&
` const xsltProcessor = new XSLTProcessor();` && |\n| && | const xsltProcessor = new XSLTProcessor();| && |\n| &&
` xsltProcessor.importStylesheet(xsltDoc);` && |\n| && | xsltProcessor.importStylesheet(xsltDoc);| && |\n| &&
` const resultDoc = xsltProcessor.transformToDocument(xmlDoc);` && |\n| && | const resultDoc = xsltProcessor.transformToDocument(xmlDoc);| && |\n| &&
` const resultXml = new XMLSerializer().serializeToString(resultDoc);` && |\n| && | const resultXml = new XMLSerializer().serializeToString(resultDoc);| && |\n| &&
` return resultXml.replace(/&gt;/g, ">").replace(/&lt;/g, "<");` && |\n| && | return resultXml.replace(/&gt;/g, ">").replace(/&lt;/g, "<");| && |\n| &&
` }, onItemSelect: function (oEvent) {` && |\n| && | \}, onItemSelect: function (oEvent) \{| && |\n| &&
` const selItem = oEvent.getSource().getSelectedKey();` && |\n| && | const selItem = oEvent.getSource().getSelectedKey();| && |\n| &&
` const oView = z2ui5?.oView;` && |\n| && | const oView = z2ui5?.oView;| && |\n| &&
` const oResponse = z2ui5?.oResponse;` && |\n| && | const oResponse = z2ui5?.oResponse;| && |\n| &&
` const displayEditor = this.displayEditor.bind(this);` && |\n| && | const displayEditor = this.displayEditor.bind(this);| && |\n| &&
`` && |\n| && || && |\n| &&
` switch (selItem) {` && |\n| && | switch (selItem) \{| && |\n| &&
` case 'CONFIG':` && |\n| && | case 'CONFIG':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oConfig, null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5.oConfig, null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'MODEL':` && |\n| && | case 'MODEL':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(oView?.getModel()?.getData(), null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(oView?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'VIEW':` && |\n| && | case 'VIEW':| && |\n| &&
` const viewContent = oView?.mProperties?.viewContent || z2ui5.responseData.S_FRONT.PARAMS.S_VIEW.XML;` && |\n| && | const viewContent = oView?.mProperties?.viewContent \|\| z2ui5.responseData.S_FRONT.PARAMS.S_VIEW.XML;| && |\n| &&
` displayEditor(oEvent, this.prettifyXml(viewContent), 'xml', this.prettifyXml(oView?._xContent.outerHTML));` && |\n| && | displayEditor(oEvent, this.prettifyXml(viewContent), 'xml', this.prettifyXml(oView?._xContent.outerHTML));| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'PLAIN':` && |\n| && | case 'PLAIN':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.responseData, null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5.responseData, null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'REQUEST':` && |\n| && | case 'REQUEST':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oBody, null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5.oBody, null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'POPUP':` && |\n| && | case 'POPUP':| && |\n| &&
` displayEditor(oEvent, this.prettifyXml(oResponse?.PARAMS?.S_POPUP?.XML), 'xml');` && |\n| && | displayEditor(oEvent, this.prettifyXml(oResponse?.PARAMS?.S_POPUP?.XML), 'xml');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'POPUP_MODEL':` && |\n| && | case 'POPUP_MODEL':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5.oViewPopup.getModel().getData(), null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5.oViewPopup.getModel().getData(), null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'POPOVER':` && |\n| && | case 'POPOVER':| && |\n| &&
` displayEditor(oEvent, oResponse?.PARAMS?.S_POPOVER?.XML, 'xml');` && |\n| && | displayEditor(oEvent, oResponse?.PARAMS?.S_POPOVER?.XML, 'xml');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'POPOVER_MODEL':` && |\n| && | case 'POPOVER_MODEL':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewPopover?.getModel()?.getData(), null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5?.oViewPopover?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'NEST1':` && |\n| && | case 'NEST1':| && |\n| &&
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest?._xContent.outerHTML));` && |\n| && | displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest?._xContent.outerHTML));| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'NEST1_MODEL':` && |\n| && | case 'NEST1_MODEL':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest?.getModel()?.getData(), null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'NEST2':` && |\n| && | case 'NEST2':| && |\n| &&
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest2?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest2?._xContent.outerHTML));` && |\n| && | displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest2?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest2?._xContent.outerHTML));| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'NEST2_MODEL':` && |\n| && | case 'NEST2_MODEL':| && |\n| &&
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest2?.getModel()?.getData(), null, 3), 'json');` && |\n| && | displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest2?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` case 'SOURCE':` && |\n| && | case 'SOURCE':| && |\n| &&
` const parent = oEvent.getSource().getParent();` && |\n| && | const parent = oEvent.getSource().getParent();| && |\n| &&
` const contentControl = parent.getContent()[2].getItems()[0];` && |\n| && | const contentControl = parent.getContent()[2].getItems()[0];| && |\n| &&
` const url = ``${window.location.origin}/sap/bc/adt/oo/classes/${z2ui5.responseData.S_FRONT.APP}/source/main``;` && |\n| && | const url = `$\{window.location.origin\}/sap/bc/adt/oo/classes/$\{z2ui5.responseData.S_FRONT.APP\}/source/main`;| && |\n| &&
` const content = atob('PGlmcmFtZSBpZD0idGVzdCIgc3JjPSInICsgdXJsICsgJyIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjEyMDBweCIgLz4=').replace("' + url + '", url);` && |\n| && | const content = atob('PGlmcmFtZSBpZD0idGVzdCIgc3JjPSInICsgdXJsICsgJyIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjEyMDBweCIgLz4=').replace("' + url + '", url);| && |\n| &&
` contentControl.setProperty("content", content);` && |\n| && | contentControl.setProperty("content", content);| && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| && | const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
` modelData.editor_visible = false;` && |\n| && | modelData.editor_visible = false;| && |\n| &&
` modelData.source_visible = true;` && |\n| && | modelData.source_visible = true;| && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| && | oEvent.getSource().getModel().refresh();| && |\n| &&
` break;` && |\n| && | break;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` displayEditor: function (oEvent, content, type, xcontent = "") {` && |\n| && | displayEditor: function (oEvent, content, type, xcontent = "") \{| && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| && | const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
` modelData.editor_visible = true;` && |\n| && | modelData.editor_visible = true;| && |\n| &&
` modelData.source_visible = false;` && |\n| && | modelData.source_visible = false;| && |\n| &&
` modelData.isTemplating = content.includes("xmlns:template");` && |\n| && | modelData.isTemplating = content.includes("xmlns:template");| && |\n| &&
` modelData.value = content;` && |\n| && | modelData.value = content;| && |\n| &&
` modelData.previousValue = content;` && |\n| && | modelData.previousValue = content;| && |\n| &&
` modelData.xContent = xcontent;` && |\n| && | modelData.xContent = xcontent;| && |\n| &&
` modelData.type = type;` && |\n| && | modelData.type = type;| && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| && | oEvent.getSource().getModel().refresh();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` onTemplatingPress: function (oEvent) {` && |\n| && | onTemplatingPress: function (oEvent) \{| && |\n| &&
` const modelData = oEvent.getSource().getModel().oData;` && |\n| && | const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
` modelData.value = oEvent.getSource().getPressed() ? modelData.xContent : modelData.previousValue;` && |\n| && | modelData.value = oEvent.getSource().getPressed() ? modelData.xContent : modelData.previousValue;| && |\n| &&
` oEvent.getSource().getModel().refresh();` && |\n| && | oEvent.getSource().getModel().refresh();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` onClose: function () {` && |\n| && | onClose: function () \{| && |\n| &&
` this.oDialog.close();` && |\n| && | this.oDialog.close();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` async show() {` && |\n| && | async show() \{| && |\n| &&
` if (!this.oDialog) {` && |\n| && | if (!this.oDialog) \{| && |\n| &&
` this.oDialog = await Fragment.load({` && |\n| && | this.oDialog = await Fragment.load(\{| && |\n| &&
` name: "z2ui5.cc.DebugTool",` && |\n| && | name: "z2ui5.cc.DebugTool",| && |\n| &&
` controller: this,` && |\n| && | controller: this,| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
`` && |\n| && || && |\n| &&
` const value = JSON.stringify(z2ui5.responseData, null, 3);` && |\n| && | const value = JSON.stringify(z2ui5.responseData, null, 3);| && |\n| &&
` const oData = {` && |\n| && | const oData = \{| && |\n| &&
` type: 'json',` && |\n| && | type: 'json',| && |\n| &&
` source_visible: false,` && |\n| && | source_visible: false,| && |\n| &&
` editor_visible: true,` && |\n| && | editor_visible: true,| && |\n| &&
` value: value,` && |\n| && | value: value,| && |\n| &&
` xContent: '',` && |\n| && | xContent: '',| && |\n| &&
` previousValue: value,` && |\n| && | previousValue: value,| && |\n| &&
` isTemplating: false,` && |\n| && | isTemplating: false,| && |\n| &&
` templatingSource: false,` && |\n| && | templatingSource: false,| && |\n| &&
` activeNest1: z2ui5?.oViewNest?.mProperties?.viewContent !== undefined,` && |\n| && | activeNest1: z2ui5?.oViewNest?.mProperties?.viewContent !== undefined,| && |\n| &&
` activeNest2: z2ui5?.oViewNest2?.mProperties?.viewContent !== undefined,` && |\n| && | activeNest2: z2ui5?.oViewNest2?.mProperties?.viewContent !== undefined,| && |\n| &&
` activePopup: z2ui5?.oResponse?.PARAMS?.S_POPUP?.XML !== undefined,` && |\n| && | activePopup: z2ui5?.oResponse?.PARAMS?.S_POPUP?.XML !== undefined,| && |\n| &&
` activePopover: z2ui5?.oResponse?.PARAMS?.S_POPOVER?.XML !== undefined,` && |\n| && | activePopover: z2ui5?.oResponse?.PARAMS?.S_POPOVER?.XML !== undefined,| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
` const oModel = new JSONModel(oData);` && |\n| && | const oModel = new JSONModel(oData);| && |\n| &&
`` && |\n| && || && |\n| &&
` this.oDialog.addStyleClass('dbg-ltr');` && |\n| && | this.oDialog.addStyleClass('dbg-ltr');| && |\n| &&
` this.oDialog.setModel(oModel);` && |\n| && | this.oDialog.setModel(oModel);| && |\n| &&
` this.oDialog.open();` && |\n| && | this.oDialog.open();| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
`});` && |\n| && |\});| && |\n| &&
`` && |\n| && || && |\n| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_debugtool_xml DEFINITION CLASS z2ui5_cl_app_debugtool_xml DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,121 +9,120 @@ CLASS z2ui5_cl_app_debugtool_xml DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_debugtool_xml IMPLEMENTATION. CLASS z2ui5_cl_app_debugtool_xml IMPLEMENTATION.
METHOD get. METHOD get.
result = `<core:FragmentDefinition` && result = |<core:FragmentDefinition| &&
` xmlns="sap.m"` && | xmlns="sap.m"| &&
` xmlns:mvc="sap.ui.core.mvc"` && | xmlns:mvc="sap.ui.core.mvc"| &&
` xmlns:core="sap.ui.core"` && | xmlns:core="sap.ui.core"| &&
` xmlns:html="http://www.w3.org/1999/xhtml"` && | xmlns:html="http://www.w3.org/1999/xhtml"| &&
` xmlns:ce="sap.ui.codeeditor"` && | xmlns:ce="sap.ui.codeeditor"| &&
`>` && |>| &&
` <Dialog` && | <Dialog| &&
` title="abap2UI5 - DebugTool"` && | title="abap2UI5 - DebugTool"| &&
` stretch="true"` && | stretch="true"| &&
` >` && | >| &&
` <IconTabHeader` && | <IconTabHeader| &&
` selectedKey="PLAIN"` && | selectedKey="PLAIN"| &&
` select="onItemSelect"` && | select="onItemSelect"| &&
` >` && | >| &&
` <items>` && | <items>| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Config"` && | text="Config"| &&
` key="CONFIG"` && | key="CONFIG"| &&
` enabled="true"` && | enabled="true"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Previous Request"` && | text="Previous Request"| &&
` key="REQUEST"` && | key="REQUEST"| &&
` enabled="true"` && | enabled="true"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Response"` && | text="Response"| &&
` key="PLAIN"` && | key="PLAIN"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Source Code"` && | text="Source Code"| &&
` key="SOURCE"` && | key="SOURCE"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="View"` && | text="View"| &&
` key="VIEW"` && | key="VIEW"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="View Model"` && | text="View Model"| &&
` key="MODEL"` && | key="MODEL"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Popup"` && | text="Popup"| &&
` key="POPUP"` && | key="POPUP"| &&
` enabled="{/activePopup}"` && | enabled="\{/activePopup\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Popup Model"` && | text="Popup Model"| &&
` key="POPUP_MODEL"` && | key="POPUP_MODEL"| &&
` enabled="{/activePopup}"` && | enabled="\{/activePopup\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Popover"` && | text="Popover"| &&
` key="POPOVER"` && | key="POPOVER"| &&
` enabled="{/activePopover}"` && | enabled="\{/activePopover\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Popover Model"` && | text="Popover Model"| &&
` key="POPOVER_MODEL"` && | key="POPOVER_MODEL"| &&
` enabled="{/activePopover}"` && | enabled="\{/activePopover\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Nest1"` && | text="Nest1"| &&
` key="NEST1"` && | key="NEST1"| &&
` enabled="{/activeNest1}"` && | enabled="\{/activeNest1\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Nest1 Model"` && | text="Nest1 Model"| &&
` key="NEST1_MODEL"` && | key="NEST1_MODEL"| &&
` enabled="{/activeNest1}"` && | enabled="\{/activeNest1\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Nest2"` && | text="Nest2"| &&
` key="NEST2"` && | key="NEST2"| &&
` enabled="{/activeNest2}"` && | enabled="\{/activeNest2\}"| &&
` />` && | />| &&
` <IconTabFilter` && | <IconTabFilter| &&
` text="Nest2 Model"` && | text="Nest2 Model"| &&
` key="NEST2_MODEL"` && | key="NEST2_MODEL"| &&
` enabled="{/activeNest2}"` && | enabled="\{/activeNest2\}"| &&
` />` && | />| &&
` </items>` && | </items>| &&
` </IconTabHeader>` && | </IconTabHeader>| &&
` <VBox>` && | <VBox>| &&
` <ToggleButton text="Source XML after Templating" visible="{/isTemplating}" pressed="{/templatingSource}" press="onTemplatingPress" />` && | <ToggleButton text="Source XML after Templating" visible="\{/isTemplating\}" pressed="\{/templatingSource\}" press="onTemplatingPress" />| &&
` <ce:CodeEditor` && | <ce:CodeEditor| &&
` type="{/type}"` && | type="\{/type\}"| &&
` value="{/value}"` && | value="\{/value\}"| &&
` height="2000px"` && | height="2000px"| &&
` width="10000px"` && | width="10000px"| &&
` visible="{/editor_visible}"` && | visible="\{/editor_visible\}"| &&
` /></VBox>` && | /></VBox>| &&
` <VBox visible="{/source_visible}">` && | <VBox visible="\{/source_visible\}">| &&
` <core:HTML/>` && | <core:HTML/>| &&
` </VBox>` && | </VBox>| &&
` <endButton>` && | <endButton>| &&
` <Button` && | <Button| &&
` text="Close"` && | text="Close"| &&
` press="onClose"` && | press="onClose"| &&
` />` && | />| &&
` </endButton>` && | </endButton>| &&
` </Dialog>` && | </Dialog>| &&
`</core:FragmentDefinition>` && |</core:FragmentDefinition>| &&
`` && || &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_index_html DEFINITION CLASS z2ui5_cl_app_index_html DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,51 +9,50 @@ CLASS z2ui5_cl_app_index_html DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_index_html IMPLEMENTATION. CLASS z2ui5_cl_app_index_html IMPLEMENTATION.
METHOD get. METHOD get.
result = `<!DOCTYPE html>` && result = |<!DOCTYPE html>| &&
`<html lang="en">` && |<html lang="en">| &&
`<head>` && |<head>| &&
` <meta charset="UTF-8">` && | <meta charset="UTF-8">| &&
` <meta name="viewport" content="width=device-width, initial-scale=1.0">` && | <meta name="viewport" content="width=device-width, initial-scale=1.0">| &&
` <meta http-equiv="X-UA-Compatible" content="IE=edge">` && | <meta http-equiv="X-UA-Compatible" content="IE=edge">| &&
` <title></title>` && | <title></title>| &&
` <style>` && | <style>| &&
` html, body, body > div, #container, #container-uiarea {` && | html, body, body > div, #container, #container-uiarea \{| &&
` height: 100%;` && | height: 100%;| &&
` }` && | \}| &&
` </style>` && | </style>| &&
` <script` && | <script| &&
` id="sap-ui-bootstrap"` && | id="sap-ui-bootstrap"| &&
` src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"` && | src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"| &&
` data-sap-ui-theme="sap_horizon"` && | data-sap-ui-theme="sap_horizon"| &&
` data-sap-ui-resourceroots='{` && | data-sap-ui-resourceroots='\{| &&
` "z2ui5": "./"` && | "z2ui5": "./"| &&
` }'` && | \}'| &&
` data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"` && | data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"| &&
` data-sap-ui-compatVersion="edge"` && | data-sap-ui-compatVersion="edge"| &&
` data-sap-ui-async="true"` && | data-sap-ui-async="true"| &&
` data-sap-ui-frameOptions="trusted"` && | data-sap-ui-frameOptions="trusted"| &&
` ></script>` && | ></script>| &&
`</head>` && |</head>| &&
`<body class="sapUiBody sapUiSizeCompact" id="content">` && |<body class="sapUiBody sapUiSizeCompact" id="content">| &&
` <div` && | <div| &&
` data-sap-ui-component` && | data-sap-ui-component| &&
` data-name="z2ui5"` && | data-name="z2ui5"| &&
` data-id="container"` && | data-id="container"| &&
` data-settings='{"id" : "z2ui5"}'` && | data-settings='\{"id" : "z2ui5"\}'| &&
` data-handle-validation="true"` && | data-handle-validation="true"| &&
` ></div>` && | ></div>| &&
`</body>` && |</body>| &&
`</html>` && |</html>| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_manifest_json DEFINITION CLASS z2ui5_cl_app_manifest_json DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,160 +9,159 @@ CLASS z2ui5_cl_app_manifest_json DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_manifest_json IMPLEMENTATION. CLASS z2ui5_cl_app_manifest_json IMPLEMENTATION.
METHOD get. METHOD get.
result = `{` && result = |\{| &&
` "_version": "1.65.0",` && | "_version": "1.65.0",| &&
` "sap.app": {` && | "sap.app": \{| &&
` "id": "z2ui5",` && | "id": "z2ui5",| &&
` "type": "application",` && | "type": "application",| &&
` "applicationVersion": {` && | "applicationVersion": \{| &&
` "version": "0.0.1"` && | "version": "0.0.1"| &&
` },` && | \},| &&
` "title": "{{appTitle}}",` && | "title": "\{\{appTitle\}\}",| &&
` "description": "{{appDescription}}",` && | "description": "\{\{appDescription\}\}",| &&
` "resources": "resources.json",` && | "resources": "resources.json",| &&
` "sourceTemplate": {` && | "sourceTemplate": \{| &&
` "id": "@sap/generator-fiori:basic",` && | "id": "@sap/generator-fiori:basic",| &&
` "version": "1.15.0",` && | "version": "1.15.0",| &&
` "toolsId": "3a966e20-9635-4c28-8861-d1b66f79f1de"` && | "toolsId": "3a966e20-9635-4c28-8861-d1b66f79f1de"| &&
` },` && | \},| &&
` "dataSources": {` && | "dataSources": \{| &&
` "mainService": {` && | "mainService": \{| &&
` "uri": "/sap/bc/z2ui5",` && | "uri": "/sap/bc/z2ui5",| &&
` "type": "OData",` && | "type": "OData",| &&
` "settings": {` && | "settings": \{| &&
` "annotations": [],` && | "annotations": [],| &&
` "localUri": "localService/metadata.xml",` && | "localUri": "localService/metadata.xml",| &&
` "odataVersion": "2.0"` && | "odataVersion": "2.0"| &&
` }` && | \}| &&
` }` && | \}| &&
` },` && | \},| &&
` "crossNavigation": {` && | "crossNavigation": \{| &&
` "inbounds": {` && | "inbounds": \{| &&
` "z2ui5-display": {` && | "z2ui5-display": \{| &&
` "semanticObject": "z2ui5",` && | "semanticObject": "z2ui5",| &&
` "action": "display",` && | "action": "display",| &&
` "title": "{{flpTitle}}",` && | "title": "\{\{flpTitle\}\}",| &&
` "signature": {` && | "signature": \{| &&
` "parameters": {},` && | "parameters": \{\},| &&
` "additionalParameters": "allowed"` && | "additionalParameters": "allowed"| &&
` }` && | \}| &&
` }` && | \}| &&
` }` && | \}| &&
` }` && | \}| &&
` },` && | \},| &&
` "sap.ui": {` && | "sap.ui": \{| &&
` "technology": "UI5",` && | "technology": "UI5",| &&
` "icons": {` && | "icons": \{| &&
` "icon": "",` && | "icon": "",| &&
` "favIcon": "",` && | "favIcon": "",| &&
` "phone": "",` && | "phone": "",| &&
` "phone@2": "",` && | "phone@2": "",| &&
` "tablet": "",` && | "tablet": "",| &&
` "tablet@2": ""` && | "tablet@2": ""| &&
` },` && | \},| &&
` "deviceTypes": {` && | "deviceTypes": \{| &&
` "desktop": true,` && | "desktop": true,| &&
` "tablet": true,` && | "tablet": true,| &&
` "phone": true` && | "phone": true| &&
` }` && | \}| &&
` },` && | \},| &&
` "sap.ui5": {` && | "sap.ui5": \{| &&
` "flexEnabled": true,` && | "flexEnabled": true,| &&
` "dependencies": {` && | "dependencies": \{| &&
` "minUI5Version": "1.128.1",` && | "minUI5Version": "1.128.1",| &&
` "libs": {` && | "libs": \{| &&
` "sap.m": {},` && | "sap.m": \{\},| &&
` "sap.ui.core": {}` && | "sap.ui.core": \{\}| &&
` }` && | \}| &&
` },` && | \},| &&
` "contentDensities": {` && | "contentDensities": \{| &&
` "compact": true,` && | "compact": true,| &&
` "cozy": true` && | "cozy": true| &&
` },` && | \},| &&
` "services": {` && | "services": \{| &&
` "ShellUIService": {` && | "ShellUIService": \{| &&
` "factoryName": "sap.ushell.ui5service.ShellUIService"` && | "factoryName": "sap.ushell.ui5service.ShellUIService"| &&
` }` && | \}| &&
` },` && | \},| &&
` "models": {` && | "models": \{| &&
` "": {` && | "": \{| &&
` "dataSource": "mainService",` && | "dataSource": "mainService",| &&
` "preload": true,` && | "preload": true,| &&
` "settings": {}` && | "settings": \{\}| &&
` }` && | \}| &&
` },` && | \},| &&
` "resources": {` && | "resources": \{| &&
` "css": [` && | "css": [| &&
` {` && | \{| &&
` "uri": "css/style.css"` && | "uri": "css/style.css"| &&
` }` && | \}| &&
` ]` && | ]| &&
` },` && | \},| &&
` "routing": {` && | "routing": \{| &&
` "config": {` && | "config": \{| &&
` "routerClass": "sap.m.routing.Router",` && | "routerClass": "sap.m.routing.Router",| &&
` "viewType": "XML",` && | "viewType": "XML",| &&
` "async": true,` && | "async": true,| &&
` "viewPath": "z2ui5.view",` && | "viewPath": "z2ui5.view",| &&
` "controlAggregation": "pages",` && | "controlAggregation": "pages",| &&
` "controlId": "app",` && | "controlId": "app",| &&
` "clearControlAggregation": false` && | "clearControlAggregation": false| &&
` },` && | \},| &&
` "routes": [` && | "routes": [| &&
` {` && | \{| &&
` "name": "RouteView1",` && | "name": "RouteView1",| &&
` "pattern": ":?query:",` && | "pattern": ":?query:",| &&
` "target": [` && | "target": [| &&
` "TargetView1"` && | "TargetView1"| &&
` ]` && | ]| &&
` },` && | \},| &&
` {` && | \{| &&
` "name": "RouteView2",` && | "name": "RouteView2",| &&
` "pattern": ":?query:",` && | "pattern": ":?query:",| &&
` "target": [` && | "target": [| &&
` "TargetView2"` && | "TargetView2"| &&
` ]` && | ]| &&
` }` && | \}| &&
` ],` && | ],| &&
` "targets": {` && | "targets": \{| &&
` "TargetView1": {` && | "TargetView1": \{| &&
` "viewType": "XML",` && | "viewType": "XML",| &&
` "transition": "flip",` && | "transition": "flip",| &&
` "clearControlAggregation": false,` && | "clearControlAggregation": false,| &&
` "viewId": "View1",` && | "viewId": "View1",| &&
` "viewName": "View1"` && | "viewName": "View1"| &&
` },` && | \},| &&
` "TargetView2": {` && | "TargetView2": \{| &&
` "viewType": "XML",` && | "viewType": "XML",| &&
` "transition": "flip",` && | "transition": "flip",| &&
` "clearControlAggregation": false,` && | "clearControlAggregation": false,| &&
` "viewId": "View2",` && | "viewId": "View2",| &&
` "viewName": "View2"` && | "viewName": "View2"| &&
` }` && | \}| &&
` }` && | \}| &&
` },` && | \},| &&
` "rootView": {` && | "rootView": \{| &&
` "viewName": "z2ui5.view.App",` && | "viewName": "z2ui5.view.App",| &&
` "type": "XML",` && | "type": "XML",| &&
` "async": true,` && | "async": true,| &&
` "id": "App"` && | "id": "App"| &&
` }` && | \}| &&
` },` && | \},| &&
` "sap.cloud": {` && | "sap.cloud": \{| &&
` "public": true,` && | "public": true,| &&
` "service": "z2ui5"` && | "service": "z2ui5"| &&
` }` && | \}| &&
`}` && |\}| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_models_js DEFINITION CLASS z2ui5_cl_app_models_js DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,35 +9,34 @@ CLASS z2ui5_cl_app_models_js DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_models_js IMPLEMENTATION. CLASS z2ui5_cl_app_models_js IMPLEMENTATION.
METHOD get. METHOD get.
result = `sap.ui.define([` && |\n| && result = |sap.ui.define([| && |\n| &&
` "sap/ui/model/json/JSONModel",` && |\n| && | "sap/ui/model/json/JSONModel",| && |\n| &&
` "sap/ui/Device"` && |\n| && | "sap/ui/Device"| && |\n| &&
`],` && |\n| && |],| && |\n| &&
`function (JSONModel, Device) {` && |\n| && |function (JSONModel, Device) \{| && |\n| &&
` "use strict";` && |\n| && | "use strict";| && |\n| &&
`` && |\n| && || && |\n| &&
` return {` && |\n| && | return \{| && |\n| &&
` /**` && |\n| && | /**| && |\n| &&
` * Provides runtime info for the device the UI5 app is running on as JSONModel` && |\n| && | * Provides runtime info for the device the UI5 app is running on as JSONModel| && |\n| &&
` */` && |\n| && | */| && |\n| &&
` createDeviceModel: function () {` && |\n| && | createDeviceModel: function () \{| && |\n| &&
` var oModel = new JSONModel(Device);` && |\n| && | var oModel = new JSONModel(Device);| && |\n| &&
` oModel.setDefaultBindingMode("OneWay");` && |\n| && | oModel.setDefaultBindingMode("OneWay");| && |\n| &&
` return oModel;` && |\n| && | return oModel;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
`` && |\n| && || && |\n| &&
`});` && |\n| && |\});| && |\n| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_server_js DEFINITION CLASS z2ui5_cl_app_server_js DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,163 +9,162 @@ CLASS z2ui5_cl_app_server_js DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_server_js IMPLEMENTATION. CLASS z2ui5_cl_app_server_js IMPLEMENTATION.
METHOD get. METHOD get.
result = `sap.ui.define(["sap/ui/core/BusyIndicator", "sap/m/MessageBox"` && |\n| && result = |sap.ui.define(["sap/ui/core/BusyIndicator", "sap/m/MessageBox"| && |\n| &&
`],` && |\n| && |],| && |\n| &&
` function (BusyIndicator, MessageBox) {` && |\n| && | function (BusyIndicator, MessageBox) \{| && |\n| &&
` "use strict";` && |\n| && | "use strict";| && |\n| &&
`` && |\n| && || && |\n| &&
` return {` && |\n| && | return \{| && |\n| &&
`` && |\n| && || && |\n| &&
` endSession: function () {` && |\n| && | endSession: function () \{| && |\n| &&
`` && |\n| && || && |\n| &&
` if (z2ui5.contextId) {` && |\n| && | if (z2ui5.contextId) \{| && |\n| &&
` fetch(z2ui5.oConfig.pathname, {` && |\n| && | fetch(z2ui5.oConfig.pathname, \{| && |\n| &&
` method: 'HEAD',` && |\n| && | method: 'HEAD',| && |\n| &&
` keepalive: true,` && |\n| && | keepalive: true,| && |\n| &&
` headers: {` && |\n| && | headers: \{| && |\n| &&
` 'sap-terminate': 'session',` && |\n| && | 'sap-terminate': 'session',| && |\n| &&
` 'sap-contextid': z2ui5.contextId,` && |\n| && | 'sap-contextid': z2ui5.contextId,| && |\n| &&
` 'sap-contextid-accept': 'header'` && |\n| && | 'sap-contextid-accept': 'header'| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
` delete z2ui5.contextId;` && |\n| && | delete z2ui5.contextId;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
`` && |\n| && || && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` Roundtrip() {` && |\n| && | Roundtrip() \{| && |\n| &&
` z2ui5.checkTimerActive = false;` && |\n| && | z2ui5.checkTimerActive = false;| && |\n| &&
` z2ui5.checkNestAfter = false;` && |\n| && | z2ui5.checkNestAfter = false;| && |\n| &&
` z2ui5.checkNestAfter2 = false;` && |\n| && | z2ui5.checkNestAfter2 = false;| && |\n| &&
` let event = (args) => {` && |\n| && | let event = (args) => \{| && |\n| &&
` if (args != undefined) {` && |\n| && | if (args != undefined) \{| && |\n| &&
` return args[0][0];` && |\n| && | return args[0][0];| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
`` && |\n| && || && |\n| &&
` z2ui5.oBody ??= {};` && |\n| && | z2ui5.oBody ??= \{\};| && |\n| &&
` z2ui5.oBody.S_FRONT = {` && |\n| && | z2ui5.oBody.S_FRONT = \{| && |\n| &&
` ID: z2ui5?.oBody?.ID,` && |\n| && | ID: z2ui5?.oBody?.ID,| && |\n| &&
` CONFIG: z2ui5.oConfig,` && |\n| && | CONFIG: z2ui5.oConfig,| && |\n| &&
` XX: z2ui5?.oBody?.XX,` && |\n| && | XX: z2ui5?.oBody?.XX,| && |\n| &&
` ORIGIN: window.location.origin,` && |\n| && | ORIGIN: window.location.origin,| && |\n| &&
` PATHNAME: window.location.pathname,` && |\n| && | PATHNAME: window.location.pathname,| && |\n| &&
` SEARCH: (z2ui5.search) ? z2ui5.search : window.location.search,` && |\n| && | SEARCH: (z2ui5.search) ? z2ui5.search : window.location.search,| && |\n| &&
` VIEW: z2ui5.oBody?.VIEWNAME,` && |\n| && | VIEW: z2ui5.oBody?.VIEWNAME,| && |\n| &&
` EVENT: event(z2ui5.oBody?.ARGUMENTS),` && |\n| && | EVENT: event(z2ui5.oBody?.ARGUMENTS),| && |\n| &&
` HASH: window.location.hash,` && |\n| && | HASH: window.location.hash,| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
` if (z2ui5.oBody?.ARGUMENTS != undefined) {` && |\n| && | if (z2ui5.oBody?.ARGUMENTS != undefined) \{| && |\n| &&
` if (z2ui5.oBody?.ARGUMENTS.length > 0) {` && |\n| && | if (z2ui5.oBody?.ARGUMENTS.length > 0) \{| && |\n| &&
` z2ui5.oBody?.ARGUMENTS.shift();` && |\n| && | z2ui5.oBody?.ARGUMENTS.shift();| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` z2ui5.oBody.S_FRONT.T_EVENT_ARG = z2ui5.oBody?.ARGUMENTS;` && |\n| && | z2ui5.oBody.S_FRONT.T_EVENT_ARG = z2ui5.oBody?.ARGUMENTS;| && |\n| &&
` delete z2ui5.oBody.ID;` && |\n| && | delete z2ui5.oBody.ID;| && |\n| &&
` delete z2ui5.oBody?.VIEWNAME;` && |\n| && | delete z2ui5.oBody?.VIEWNAME;| && |\n| &&
` delete z2ui5.oBody?.S_FRONT.XX;` && |\n| && | delete z2ui5.oBody?.S_FRONT.XX;| && |\n| &&
` delete z2ui5.oBody?.ARGUMENTS;` && |\n| && | delete z2ui5.oBody?.ARGUMENTS;| && |\n| &&
` if (!z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| && | if (!z2ui5.oBody.S_FRONT.T_EVENT_ARG) \{| && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| && | delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| && | if (z2ui5.oBody.S_FRONT.T_EVENT_ARG) \{| && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG.length == 0) {` && |\n| && | if (z2ui5.oBody.S_FRONT.T_EVENT_ARG.length == 0) \{| && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| && | delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` if (z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS == undefined) {` && |\n| && | if (z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS == undefined) \{| && |\n| &&
` delete z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS;` && |\n| && | delete z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` if (z2ui5.oBody.S_FRONT.SEARCH == '') {` && |\n| && | if (z2ui5.oBody.S_FRONT.SEARCH == '') \{| && |\n| &&
` delete z2ui5.oBody.S_FRONT.SEARCH;` && |\n| && | delete z2ui5.oBody.S_FRONT.SEARCH;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` if (!z2ui5.oBody.XX) {` && |\n| && | if (!z2ui5.oBody.XX) \{| && |\n| &&
` delete z2ui5.oBody.XX;` && |\n| && | delete z2ui5.oBody.XX;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` this.readHttp();` && |\n| && | this.readHttp();| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
`` && |\n| && || && |\n| &&
` async readHttp() {` && |\n| && | async readHttp() \{| && |\n| &&
` const response = await fetch(z2ui5.oConfig.pathname, {` && |\n| && | const response = await fetch(z2ui5.oConfig.pathname, \{| && |\n| &&
` method: 'POST',` && |\n| && | method: 'POST',| && |\n| &&
` headers: {` && |\n| && | headers: \{| && |\n| &&
` 'Content-Type': 'application/json',` && |\n| && | 'Content-Type': 'application/json',| && |\n| &&
` 'sap-contextid-accept': 'header',` && |\n| && | 'sap-contextid-accept': 'header',| && |\n| &&
` 'sap-contextid': z2ui5.contextId` && |\n| && | 'sap-contextid': z2ui5.contextId| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` body: JSON.stringify(z2ui5.oBody)` && |\n| && | body: JSON.stringify(z2ui5.oBody)| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
` z2ui5.contextId = response.headers.get("sap-contextid");` && |\n| && | z2ui5.contextId = response.headers.get("sap-contextid");| && |\n| &&
` if (!response.ok) {` && |\n| && | if (!response.ok) \{| && |\n| &&
` const responseText = await response.text();` && |\n| && | const responseText = await response.text();| && |\n| &&
` this.responseError(responseText);` && |\n| && | this.responseError(responseText);| && |\n| &&
` } else {` && |\n| && | \} else \{| && |\n| &&
` const responseData = await response.json();` && |\n| && | const responseData = await response.json();| && |\n| &&
` z2ui5.responseData = responseData;` && |\n| && | z2ui5.responseData = responseData;| && |\n| &&
` this.responseSuccess({` && |\n| && | this.responseSuccess(\{| && |\n| &&
` ID: responseData.S_FRONT.ID,` && |\n| && | ID: responseData.S_FRONT.ID,| && |\n| &&
` PARAMS: responseData.S_FRONT.PARAMS,` && |\n| && | PARAMS: responseData.S_FRONT.PARAMS,| && |\n| &&
` OVIEWMODEL: responseData.MODEL,` && |\n| && | OVIEWMODEL: responseData.MODEL,| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` async responseSuccess(response) {` && |\n| && | async responseSuccess(response) \{| && |\n| &&
` try {` && |\n| && | try \{| && |\n| &&
` z2ui5.oResponse = response;` && |\n| && | z2ui5.oResponse = response;| && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.CHECK_DESTROY) {` && |\n| && | if (z2ui5.oResponse.PARAMS?.S_VIEW?.CHECK_DESTROY) \{| && |\n| &&
` z2ui5.oController.ViewDestroy();` && |\n| && | z2ui5.oController.ViewDestroy();| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` ; if (z2ui5.oResponse.PARAMS?.S_FOLLOW_UP_ACTION?.CUSTOM_JS) {` && |\n| && | ; if (z2ui5.oResponse.PARAMS?.S_FOLLOW_UP_ACTION?.CUSTOM_JS) \{| && |\n| &&
` setTimeout(() => {` && |\n| && | setTimeout(() => \{| && |\n| &&
` let mParams = z2ui5.oResponse?.PARAMS.S_FOLLOW_UP_ACTION.CUSTOM_JS.split("'");` && |\n| && | let mParams = z2ui5.oResponse?.PARAMS.S_FOLLOW_UP_ACTION.CUSTOM_JS.split("'");| && |\n| &&
` let mParamsEF = mParams.filter((val, index) => index % 2)` && |\n| && | let mParamsEF = mParams.filter((val, index) => index % 2)| && |\n| &&
` if (mParamsEF.length) {` && |\n| && | if (mParamsEF.length) \{| && |\n| &&
` z2ui5.oController.eF.apply(undefined, mParamsEF);` && |\n| && | z2ui5.oController.eF.apply(undefined, mParamsEF);| && |\n| &&
` } else {` && |\n| && | \} else \{| && |\n| &&
` Function("return " + mParams[0])();` && |\n| && | Function("return " + mParams[0])();| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` }, 100);` && |\n| && | \}, 100);| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
` z2ui5.oController.showMessage('S_MSG_TOAST', z2ui5.oResponse.PARAMS);` && |\n| && | z2ui5.oController.showMessage('S_MSG_TOAST', z2ui5.oResponse.PARAMS);| && |\n| &&
` z2ui5.oController.showMessage('S_MSG_BOX', z2ui5.oResponse.PARAMS);` && |\n| && | z2ui5.oController.showMessage('S_MSG_BOX', z2ui5.oResponse.PARAMS);| && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML) {` && |\n| && | if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML) \{| && |\n| &&
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML !== '') {` && |\n| && | if (z2ui5.oResponse.PARAMS?.S_VIEW?.XML !== '') \{| && |\n| &&
` z2ui5.oController.ViewDestroy();` && |\n| && | z2ui5.oController.ViewDestroy();| && |\n| &&
` await z2ui5.oController.displayView(z2ui5.oResponse.PARAMS.S_VIEW.XML, z2ui5.oResponse.OVIEWMODEL);` && |\n| && | await z2ui5.oController.displayView(z2ui5.oResponse.PARAMS.S_VIEW.XML, z2ui5.oResponse.OVIEWMODEL);| && |\n| &&
` return;` && |\n| && | return;| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW', z2ui5.oView);` && |\n| && | z2ui5.oController.updateModelIfRequired('S_VIEW', z2ui5.oView);| && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST', z2ui5.oViewNest);` && |\n| && | z2ui5.oController.updateModelIfRequired('S_VIEW_NEST', z2ui5.oViewNest);| && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST2', z2ui5.oViewNest2);` && |\n| && | z2ui5.oController.updateModelIfRequired('S_VIEW_NEST2', z2ui5.oViewNest2);| && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_POPUP', z2ui5.oViewPopup);` && |\n| && | z2ui5.oController.updateModelIfRequired('S_POPUP', z2ui5.oViewPopup);| && |\n| &&
` z2ui5.oController.updateModelIfRequired('S_POPOVER', z2ui5.oViewPopover);` && |\n| && | z2ui5.oController.updateModelIfRequired('S_POPOVER', z2ui5.oViewPopover);| && |\n| &&
` z2ui5.oController.onAfterRendering();` && |\n| && | z2ui5.oController.onAfterRendering();| && |\n| &&
` } catch (e) {` && |\n| && | \} catch (e) \{| && |\n| &&
` BusyIndicator.hide();` && |\n| && | BusyIndicator.hide();| && |\n| &&
` if (e.message.includes("openui5")) {` && |\n| && | if (e.message.includes("openui5")) \{| && |\n| &&
` if (e.message.includes("script load error")) {` && |\n| && | if (e.message.includes("script load error")) \{| && |\n| &&
` z2ui5.oController.checkSDKcompatibility(e)` && |\n| && | z2ui5.oController.checkSDKcompatibility(e)| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` } else {` && |\n| && | \} else \{| && |\n| &&
` MessageBox.error(e.toLocaleString());` && |\n| && | MessageBox.error(e.toLocaleString());| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` }` && |\n| && | \}| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` responseError(response) {` && |\n| && | responseError(response) \{| && |\n| &&
` document.write(response);` && |\n| && | document.write(response);| && |\n| &&
` },` && |\n| && | \},| && |\n| &&
` };` && |\n| && | \};| && |\n| &&
` });` && |\n| && | \});| && |\n| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_style_css DEFINITION CLASS z2ui5_cl_app_style_css DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,17 +9,16 @@ CLASS z2ui5_cl_app_style_css DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_style_css IMPLEMENTATION. CLASS z2ui5_cl_app_style_css IMPLEMENTATION.
METHOD get. METHOD get.
result = `/* Enter your custom styles here */` && result = |/* Enter your custom styles here */| &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_app_view1_xml DEFINITION CLASS z2ui5_cl_app_view1_xml DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -10,21 +9,20 @@ CLASS z2ui5_cl_app_view1_xml DEFINITION
VALUE(result) TYPE string. VALUE(result) TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_app_view1_xml IMPLEMENTATION. CLASS z2ui5_cl_app_view1_xml IMPLEMENTATION.
METHOD get. METHOD get.
result = `<mvc:View controllerName="z2ui5.controller.View1"` && result = |<mvc:View controllerName="z2ui5.controller.View1"| &&
` xmlns:mvc="sap.ui.core.mvc" displayBlock="true"` && | xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &&
` xmlns="sap.m">` && | xmlns="sap.m">| &&
`</mvc:View>` && |</mvc:View>| &&
`` && || &&
``. ||.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_error DEFINITION CLASS z2ui5_cl_pop_error DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -17,15 +16,14 @@ CLASS z2ui5_cl_pop_error DEFINITION
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
DATA error TYPE REF TO cx_root. DATA error TYPE REF TO cx_root.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_error IMPLEMENTATION. CLASS z2ui5_cl_pop_error IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -33,19 +31,16 @@ CLASS z2ui5_cl_pop_error IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = `Error View`
title = `Error View`
afterclose = client->_event( 'BUTTON_CONFIRM' ) afterclose = client->_event( 'BUTTON_CONFIRM' )
)->content( )->content(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->text( error->get_text( ) )->text( error->get_text( )
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = `OK`
text = `OK`
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -53,7 +48,6 @@ CLASS z2ui5_cl_pop_error IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_file_dl DEFINITION CLASS z2ui5_cl_pop_file_dl DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -37,15 +36,14 @@ CLASS z2ui5_cl_pop_file_dl DEFINITION
DATA button_text_confirm TYPE string. DATA button_text_confirm TYPE string.
DATA button_text_cancel TYPE string. DATA button_text_cancel TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_file_dl IMPLEMENTATION.
CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -60,18 +58,15 @@ CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = check_confirmed. result = check_confirmed.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CANCEL' ) afterclose = client->_event( 'BUTTON_CANCEL' )
)->content( ). )->content( ).
@ -81,7 +76,8 @@ CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
DATA(lv_base64) = z2ui5_cl_util=>conv_encode_x_base64( lv_csv_x ). DATA(lv_base64) = z2ui5_cl_util=>conv_encode_x_base64( lv_csv_x ).
popup->_generic( ns = `html` popup->_generic( ns = `html`
name = `iframe` name = `iframe`
t_prop = VALUE #( ( n = `src` v = mv_type && lv_base64 ) ( n = `hidden` v = `hidden` ) ) ). t_prop = VALUE #( ( n = `src` v = mv_type && lv_base64 )
( n = `hidden` v = `hidden` ) ) ).
popup->_z2ui5( )->timer( client->_event( `CALLBACK_DOWNLOAD` ) ). popup->_z2ui5( )->timer( client->_event( `CALLBACK_DOWNLOAD` ) ).
@ -99,11 +95,9 @@ CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
enabled = abap_false enabled = abap_false
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_cancel
text = button_text_cancel
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = `Download`
text = `Download`
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -111,7 +105,6 @@ CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_file_ul DEFINITION CLASS z2ui5_cl_pop_file_ul DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -22,6 +21,7 @@ CLASS z2ui5_cl_pop_file_ul DEFINITION
value TYPE string, value TYPE string,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
DATA mv_path TYPE string. DATA mv_path TYPE string.
DATA mv_value TYPE string. DATA mv_value TYPE string.
@ -39,15 +39,14 @@ CLASS z2ui5_cl_pop_file_ul DEFINITION
DATA button_text_confirm TYPE string. DATA button_text_confirm TYPE string.
DATA button_text_cancel TYPE string. DATA button_text_cancel TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION. CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -60,35 +59,29 @@ CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CANCEL' ) afterclose = client->_event( 'BUTTON_CANCEL' )
)->content( )->content(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->label( question_text )->label( question_text
)->_z2ui5( )->file_uploader( )->_z2ui5( )->file_uploader( value = client->_bind_edit( mv_value )
value = client->_bind_edit( mv_value )
path = client->_bind_edit( mv_path ) path = client->_bind_edit( mv_path )
placeholder = 'filepath here...' placeholder = 'filepath here...'
upload = client->_event( 'UPLOAD' ) upload = client->_event( 'UPLOAD' )
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_cancel
text = button_text_cancel
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
enabled = client->_bind( check_confirm_enabled ) enabled = client->_bind( check_confirm_enabled )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -97,7 +90,6 @@ CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_get_range DEFINITION CLASS z2ui5_cl_pop_get_range DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES z2ui5_if_app. INTERFACES z2ui5_if_app.
@ -13,6 +12,7 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
high TYPE string, high TYPE string,
key TYPE string, key TYPE string,
END OF ty_s_filter_pop. END OF ty_s_filter_pop.
DATA mt_filter TYPE STANDARD TABLE OF ty_s_filter_pop WITH EMPTY KEY. DATA mt_filter TYPE STANDARD TABLE OF ty_s_filter_pop WITH EMPTY KEY.
CLASS-METHODS factory CLASS-METHODS factory
@ -26,6 +26,7 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
t_range TYPE z2ui5_cl_util=>ty_t_range, t_range TYPE z2ui5_cl_util=>ty_t_range,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
METHODS result METHODS result
@ -33,49 +34,42 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
DATA mt_mapping TYPE z2ui5_if_types=>ty_t_name_value. DATA mt_mapping TYPE z2ui5_if_types=>ty_t_name_value.
PROTECTED SECTION. PROTECTED SECTION.
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
z2ui5_cl_util=>itab_corresponding( z2ui5_cl_util=>itab_corresponding( EXPORTING val = t_range
EXPORTING CHANGING tab = r_result->ms_result-t_range
val = t_range
CHANGING
tab = r_result->ms_result-t_range
). ).
INSERT VALUE #( ) INTO TABLE r_result->ms_result-t_range. INSERT VALUE #( ) INTO TABLE r_result->ms_result-t_range.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ). DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
lo_popup = lo_popup->dialog( lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
afterclose = client->_event( 'BUTTON_CANCEL' )
contentheight = `50%` contentheight = `50%`
contentwidth = `50%` contentwidth = `50%`
title = 'Define Filter Conditons' ). title = 'Define Filter Conditons' ).
@ -83,19 +77,16 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
DATA(vbox) = lo_popup->vbox( height = `100%` DATA(vbox) = lo_popup->vbox( height = `100%`
justifycontent = 'SpaceBetween' ). justifycontent = 'SpaceBetween' ).
DATA(item) = vbox->list( DATA(item) = vbox->list( nodata = `no conditions defined`
nodata = `no conditions defined`
items = client->_bind_edit( mt_filter ) items = client->_bind_edit( mt_filter )
selectionchange = client->_event( 'SELCHANGE' ) selectionchange = client->_event( 'SELCHANGE' )
)->custom_list_item( ). )->custom_list_item( ).
DATA(grid) = item->grid( ). DATA(grid) = item->grid( ).
grid->combobox( grid->combobox( selectedkey = `{OPTION}`
selectedkey = `{OPTION}`
items = client->_bind( mt_mapping ) items = client->_bind( mt_mapping )
)->item( )->item( key = '{N}'
key = '{N}'
text = '{N}' text = '{N}'
)->get_parent( )->get_parent(
)->input( value = `{LOW}` )->input( value = `{LOW}`
@ -105,7 +96,8 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
submit = client->_event( 'BUTTON_CONFIRM' ) submit = client->_event( 'BUTTON_CONFIRM' )
)->button( icon = 'sap-icon://decline' )->button( icon = 'sap-icon://decline'
type = `Transparent` type = `Transparent`
press = client->_event( val = `POPUP_DELETE` t_arg = VALUE #( ( `${KEY}` ) ) ) ). press = client->_event( val = `POPUP_DELETE`
t_arg = VALUE #( ( `${KEY}` ) ) ) ).
lo_popup->buttons( lo_popup->buttons(
)->button( text = `Delete All` )->button( text = `Delete All`
@ -115,11 +107,9 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
)->button( text = `Add Item` )->button( text = `Add Item`
icon = `sap-icon://add` icon = `sap-icon://add`
press = client->_event( val = `POPUP_ADD` ) press = client->_event( val = `POPUP_ADD` )
)->button( )->button( text = 'Cancel'
text = 'Cancel'
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = 'OK'
text = 'OK'
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -127,7 +117,6 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.
@ -139,8 +128,7 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
CLEAR mt_filter. CLEAR mt_filter.
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product). LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
INSERT VALUE #( INSERT VALUE #( low = lr_product->low
low = lr_product->low
high = lr_product->high high = lr_product->high
option = lr_product->option option = lr_product->option
key = z2ui5_cl_util=>uuid_get_c32( ) key = z2ui5_cl_util=>uuid_get_c32( )
@ -160,8 +148,7 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
IF lr_filter->low IS INITIAL AND lr_filter->high IS INITIAL. IF lr_filter->low IS INITIAL AND lr_filter->high IS INITIAL.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
INSERT VALUE #( INSERT VALUE #( sign = `I`
sign = `I`
option = lr_filter->option option = lr_filter->option
low = lr_filter->low low = lr_filter->low
high = lr_filter->high high = lr_filter->high

View File

@ -27,6 +27,7 @@ CLASS z2ui5_cl_pop_get_range_m DEFINITION
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA mv_popup_name TYPE LINE OF string_table. DATA mv_popup_name TYPE LINE OF string_table.
METHODS popup_display. METHODS popup_display.
METHODS init. METHODS init.
@ -35,9 +36,7 @@ CLASS z2ui5_cl_pop_get_range_m DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -45,14 +44,12 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD init. METHOD init.
popup_display( ). popup_display( ).
ENDMETHOD. ENDMETHOD.
METHOD popup_display. METHOD popup_display.
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ). DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
@ -74,7 +71,8 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
grid->multi_input( tokens = `{T_TOKEN}` grid->multi_input( tokens = `{T_TOKEN}`
enabled = abap_false enabled = abap_false
valuehelprequest = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) ) valuehelprequest = client->_event( val = `LIST_OPEN`
t_arg = VALUE #( ( `${NAME}` ) ) )
)->tokens( )->tokens(
)->token( key = `{KEY}` )->token( key = `{KEY}`
text = `{TEXT}` text = `{TEXT}`
@ -83,11 +81,13 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
editable = `{EDITABLE}` ). editable = `{EDITABLE}` ).
grid->button( text = `Select` grid->button( text = `Select`
press = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) ) ). press = client->_event( val = `LIST_OPEN`
t_arg = VALUE #( ( `${NAME}` ) ) ) ).
grid->button( icon = 'sap-icon://delete' grid->button( icon = 'sap-icon://delete'
type = `Transparent` type = `Transparent`
text = `Clear` text = `Clear`
press = client->_event( val = `LIST_DELETE` t_arg = VALUE #( ( `${NAME}` ) ) ) ). press = client->_event( val = `LIST_DELETE`
t_arg = VALUE #( ( `${NAME}` ) ) ) ).
lo_popup->buttons( lo_popup->buttons(
)->button( text = `Clear All` )->button( text = `Clear All`

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_html DEFINITION CLASS z2ui5_cl_pop_html DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -23,15 +22,14 @@ CLASS z2ui5_cl_pop_html DEFINITION
DATA html TYPE string. DATA html TYPE string.
DATA button_text_confirm TYPE string. DATA button_text_confirm TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_html IMPLEMENTATION.
CLASS Z2UI5_CL_POP_HTML IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -42,11 +40,9 @@ CLASS Z2UI5_CL_POP_HTML IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CONFIRM' ) afterclose = client->_event( 'BUTTON_CONFIRM' )
)->content( )->content(
@ -54,8 +50,7 @@ CLASS Z2UI5_CL_POP_HTML IMPLEMENTATION.
)->html( html )->html( html
)->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -63,7 +58,6 @@ CLASS Z2UI5_CL_POP_HTML IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_input_val DEFINITION CLASS z2ui5_cl_pop_input_val DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -9,9 +8,9 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
text TYPE string DEFAULT `Enter New Value` !text TYPE string DEFAULT `Enter New Value`
val TYPE string OPTIONAL val TYPE string OPTIONAL
title TYPE string DEFAULT `Popup Input Value` !title TYPE string DEFAULT `Popup Input Value`
button_text_confirm TYPE string DEFAULT `OK` button_text_confirm TYPE string DEFAULT `OK`
button_text_cancel TYPE string DEFAULT `Cancel` button_text_cancel TYPE string DEFAULT `Cancel`
PREFERRED PARAMETER val PREFERRED PARAMETER val
@ -23,6 +22,7 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
value TYPE string, value TYPE string,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
METHODS result METHODS result
@ -38,15 +38,14 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
DATA button_text_cancel TYPE string. DATA button_text_cancel TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA check_result_confirmed TYPE abap_bool. DATA check_result_confirmed TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_input_val IMPLEMENTATION.
CLASS Z2UI5_CL_POP_INPUT_VAL IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -59,33 +58,27 @@ CLASS Z2UI5_CL_POP_INPUT_VAL IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CANCEL' ) afterclose = client->_event( 'BUTTON_CANCEL' )
)->content( )->content(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->label( question_text )->label( question_text
)->input( )->input( value = client->_bind_edit( ms_result-value )
value = client->_bind_edit( ms_result-value )
submit = client->_event( 'BUTTON_CONFIRM' ) submit = client->_event( 'BUTTON_CONFIRM' )
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_cancel
text = button_text_cancel
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -93,7 +86,6 @@ CLASS Z2UI5_CL_POP_INPUT_VAL IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_itab_json_dl DEFINITION CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -38,10 +37,7 @@ CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_itab_json_dl IMPLEMENTATION.
CLASS Z2UI5_CL_POP_ITAB_JSON_DL IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -55,14 +51,12 @@ CLASS Z2UI5_CL_POP_ITAB_JSON_DL IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = check_result_confirmed. result = check_result_confirmed.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
DATA app TYPE REF TO object. DATA app TYPE REF TO object.
@ -73,8 +67,8 @@ CLASS Z2UI5_CL_POP_ITAB_JSON_DL IMPLEMENTATION.
IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_dbt_cl_app_03` ) = abap_false. IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_dbt_cl_app_03` ) = abap_false.
DATA(lv_link) = `https://github.com/oblomov-dev/a2UI5-db_table_loader`. DATA(lv_link) = `https://github.com/oblomov-dev/a2UI5-db_table_loader`.
DATA(lv_text) = `<p>Please install the open-source project a2UI5-db_table_loader and try again: <a href="` && DATA(lv_text) = |<p>Please install the open-source project a2UI5-db_table_loader and try again: <a href="| &&
lv_link && `" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>`. |{ lv_link }" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>|.
DATA(lx) = NEW z2ui5_cx_util_error( val = lv_text ). DATA(lx) = NEW z2ui5_cx_util_error( val = lv_text ).
client->nav_app_leave( z2ui5_cl_pop_error=>factory( lx ) ). client->nav_app_leave( z2ui5_cl_pop_error=>factory( lx ) ).
@ -83,10 +77,8 @@ CLASS Z2UI5_CL_POP_ITAB_JSON_DL IMPLEMENTATION.
DATA(lv_classname) = `Z2UI5_DBT_CL_APP_03`. DATA(lv_classname) = `Z2UI5_DBT_CL_APP_03`.
CALL METHOD (lv_classname)=>('FACTORY_POPUP_BY_ITAB') CALL METHOD (lv_classname)=>('FACTORY_POPUP_BY_ITAB')
EXPORTING EXPORTING itab = mr_itab
itab = mr_itab RECEIVING result = app.
RECEIVING
result = app.
client->nav_app_leave( CAST #( app ) ). client->nav_app_leave( CAST #( app ) ).

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_js_loader DEFINITION CLASS z2ui5_cl_pop_js_loader DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -32,17 +31,13 @@ CLASS z2ui5_cl_pop_js_loader DEFINITION
DATA user_command TYPE string. DATA user_command TYPE string.
DATA check_open_ui5 TYPE abap_bool. DATA check_open_ui5 TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION. CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -51,34 +46,30 @@ CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory_check_open_ui5. METHOD factory_check_open_ui5.
r_result = NEW #( ). r_result = NEW #( ).
r_result->check_open_ui5 = abap_true. r_result->check_open_ui5 = abap_true.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result3 = user_command. result3 = user_command.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( `Setup UI...` DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( `Setup UI...`
)->content( ). )->content( ).
IF js IS NOT INITIAL. IF js IS NOT INITIAL.
popup->_z2ui5( )->timer( client->_event( 'TIMER_FINISHED' ) popup->_z2ui5( )->timer( client->_event( 'TIMER_FINISHED' )
)->_generic( ns = `html` name = `script` )->_cc_plain_xml( js ). )->_generic( ns = `html`
name = `script` )->_cc_plain_xml( js ).
ENDIF. ENDIF.
IF check_open_ui5 = abap_true. IF check_open_ui5 = abap_true.
popup->_z2ui5( )->info_frontend( popup->_z2ui5( )->info_frontend( finished = client->_event( `INFO_FINISHED` )
finished = client->_event( `INFO_FINISHED` )
ui5_gav = client->_bind_edit( ui5_gav ) ). ui5_gav = client->_bind_edit( ui5_gav ) ).
ENDIF. ENDIF.
@ -86,7 +77,6 @@ CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_messages DEFINITION CLASS z2ui5_cl_pop_messages DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -22,6 +21,7 @@ CLASS z2ui5_cl_pop_messages DEFINITION
group TYPE string, group TYPE string,
END OF ty_s_msg. END OF ty_s_msg.
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg. TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg.
DATA mt_msg TYPE ty_t_msg. DATA mt_msg TYPE ty_t_msg.
CLASS-METHODS factory CLASS-METHODS factory
@ -37,14 +37,12 @@ CLASS z2ui5_cl_pop_messages DEFINITION
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_messages IMPLEMENTATION. CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -57,7 +55,7 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
ls_row-title = lr_row->text. ls_row-title = lr_row->text.
* lr_row->title = `title`. * lr_row->title = `title`.
* lr_row->message = `message`. * lr_row->message = `message`.
ls_row-subtitle = lr_row->id && ` ` && lr_row->no. ls_row-subtitle = |{ lr_row->id } { lr_row->no }|.
* lr_row->group = `001`. * lr_row->group = `001`.
INSERT ls_row INTO TABLE r_result->mt_msg. INSERT ls_row INTO TABLE r_result->mt_msg.
@ -67,23 +65,19 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ). DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
popup = popup->dialog( popup = popup->dialog( title = `Messages`
title = `Messages`
contentheight = '50%' contentheight = '50%'
contentwidth = '50%' contentwidth = '50%'
verticalScrolling = abap_false verticalScrolling = abap_false
afterclose = client->_event( 'BUTTON_CONTINUE' ) afterclose = client->_event( 'BUTTON_CONTINUE' )
). ).
popup->message_view( popup->message_view( items = client->_bind( mt_msg )
items = client->_bind( mt_msg )
* groupitems = abap_true * groupitems = abap_true
)->message_item( )->message_item( type = `{TYPE}`
type = `{TYPE}`
title = `{TITLE}` title = `{TITLE}`
subtitle = `{SUBTITLE}` subtitle = `{SUBTITLE}`
* description = `{MESSAGE}` * description = `{MESSAGE}`
@ -91,18 +85,14 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
). ).
popup->buttons( popup->buttons(
)->button( )->button( text = 'continue'
text = 'continue'
press = client->_event( 'BUTTON_CONTINUE' ) press = client->_event( 'BUTTON_CONTINUE' )
type = 'Emphasized' ). type = 'Emphasized' ).
client->popup_display( popup->stringify( ) ). client->popup_display( popup->stringify( ) ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_pdf DEFINITION CLASS z2ui5_cl_pop_pdf DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -21,6 +20,7 @@ CLASS z2ui5_cl_pop_pdf DEFINITION
text TYPE string, text TYPE string,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
DATA mv_pdf TYPE string. DATA mv_pdf TYPE string.
@ -38,15 +38,14 @@ CLASS z2ui5_cl_pop_pdf DEFINITION
DATA button_text_cancel TYPE string. DATA button_text_cancel TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA check_result_confirmed TYPE abap_bool. DATA check_result_confirmed TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_pdf IMPLEMENTATION. CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -57,39 +56,32 @@ CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
stretch = abap_true stretch = abap_true
afterclose = client->_event( 'BUTTON_CANCEL' ) afterclose = client->_event( 'BUTTON_CANCEL' )
)->content( )->content(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->label( question_text )->label( question_text
)->_generic( )->_generic( ns = `html`
ns = `html`
name = `iframe` name = `iframe`
t_prop = VALUE #( t_prop = VALUE #( ( n = `src` v = mv_pdf )
( n = `src` v = mv_pdf )
( n = `height` v = `800px` ) ( n = `height` v = `800px` )
( n = `width` v = `99%` ) ( n = `width` v = `99%` )
) )
)->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_cancel
text = button_text_cancel
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -97,7 +89,6 @@ CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,6 +1,5 @@
CLASS z2ui5_cl_pop_table DEFINITION CLASS z2ui5_cl_pop_table DEFINITION
PUBLIC PUBLIC FINAL
FINAL
CREATE PROTECTED. CREATE PROTECTED.
PUBLIC SECTION. PUBLIC SECTION.
@ -18,6 +17,7 @@ CLASS z2ui5_cl_pop_table DEFINITION
row TYPE REF TO data, row TYPE REF TO data,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
METHODS result METHODS result
@ -30,6 +30,7 @@ CLASS z2ui5_cl_pop_table DEFINITION
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA title TYPE string VALUE 'Table View'. DATA title TYPE string VALUE 'Table View'.
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
METHODS on_event. METHODS on_event.
METHODS display. METHODS display.
METHODS on_event_confirm. METHODS on_event_confirm.
@ -38,24 +39,20 @@ CLASS z2ui5_cl_pop_table DEFINITION
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_table IMPLEMENTATION. CLASS z2ui5_cl_pop_table IMPLEMENTATION.
METHOD display. METHOD display.
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
ASSIGN mr_tab->* TO <tab_out>. ASSIGN mr_tab->* TO <tab_out>.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_CONFIRM' )
afterclose = client->_event( 'BUTTON_CONFIRM' )
stretch = abap_true stretch = abap_true
title = title title = title
* icon = 'sap-icon://edit' * icon = 'sap-icon://edit'
)->content( ). )->content( ).
DATA(tab) = popup->table( DATA(tab) = popup->table( client->_bind( <tab_out> ) ).
client->_bind( <tab_out> ) ).
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ). DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
@ -63,7 +60,7 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
DATA(cells) = list->cells( ). DATA(cells) = list->cells( ).
LOOP AT lt_comp INTO DATA(ls_comp). LOOP AT lt_comp INTO DATA(ls_comp).
cells->text( `{` && ls_comp-name && `}` ). cells->text( |\{{ ls_comp-name }\}| ).
ENDLOOP. ENDLOOP.
DATA(columns) = tab->columns( ). DATA(columns) = tab->columns( ).
@ -73,8 +70,7 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
popup->get_parent( popup->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = 'OK'
text = 'OK'
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -82,7 +78,6 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory. METHOD factory.
FIELD-SYMBOLS <tab> TYPE any. FIELD-SYMBOLS <tab> TYPE any.
@ -98,7 +93,6 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD on_event. METHOD on_event.
CASE client->get( )-event. CASE client->get( )-event.
@ -111,12 +105,10 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
client->popup_destroy( ). client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ). client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
ENDCASE. ENDCASE.
ENDMETHOD. ENDMETHOD.
METHOD on_event_confirm. METHOD on_event_confirm.
client->popup_destroy( ). client->popup_destroy( ).
@ -124,7 +116,6 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_textedit DEFINITION CLASS z2ui5_cl_pop_textedit DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES z2ui5_if_app. INTERFACES z2ui5_if_app.
@ -21,11 +20,13 @@ CLASS z2ui5_cl_pop_textedit DEFINITION
DATA mv_title TYPE string. DATA mv_title TYPE string.
DATA mv_check_editable TYPE abap_bool. DATA mv_check_editable TYPE abap_bool.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
TYPES: TYPES:
BEGIN OF ty_s_result, BEGIN OF ty_s_result,
text TYPE string, text TYPE string,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result. END OF ty_s_result.
DATA ms_result TYPE ty_s_result. DATA ms_result TYPE ty_s_result.
METHODS display. METHODS display.
@ -35,13 +36,12 @@ CLASS z2ui5_cl_pop_textedit DEFINITION
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_textedit IMPLEMENTATION. CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -54,8 +54,7 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
METHOD display. METHOD display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
stretch = mv_stretch_active stretch = mv_stretch_active
title = mv_title title = mv_title
icon = 'sap-icon://edit' icon = 'sap-icon://edit'
@ -65,11 +64,9 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
value = client->_bind_edit( ms_result-text ) value = client->_bind_edit( ms_result-text )
)->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = 'Cancel'
text = 'Cancel'
press = client->_event( 'BUTTON_TEXTAREA_CANCEL' ) press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
)->button( )->button( text = 'Confirm'
text = 'Confirm'
press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' ) press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -77,7 +74,6 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.
@ -105,5 +101,4 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_to_confirm DEFINITION CLASS z2ui5_cl_pop_to_confirm DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -41,22 +40,20 @@ CLASS z2ui5_cl_pop_to_confirm DEFINITION
DATA check_result_confirmed TYPE abap_bool. DATA check_result_confirmed TYPE abap_bool.
DATA event_confirm TYPE string. DATA event_confirm TYPE string.
DATA event_canceled TYPE string. DATA event_canceled TYPE string.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION. CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
METHOD result. METHOD result.
result = check_result_confirmed. result = check_result_confirmed.
ENDMETHOD. ENDMETHOD.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -69,14 +66,11 @@ CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
r_result->event_confirm = i_event_confirm. r_result->event_confirm = i_event_confirm.
r_result->event_canceled = i_event_cancel. r_result->event_canceled = i_event_cancel.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CANCEL' ) afterclose = client->_event( 'BUTTON_CANCEL' )
)->content( )->content(
@ -84,11 +78,9 @@ CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
)->text( question_text )->text( question_text
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_cancel
text = button_text_cancel
press = client->_event( 'BUTTON_CANCEL' ) press = client->_event( 'BUTTON_CANCEL' )
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -96,7 +88,6 @@ CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,7 +1,6 @@
CLASS z2ui5_cl_pop_to_inform DEFINITION CLASS z2ui5_cl_pop_to_inform DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -23,14 +22,14 @@ CLASS z2ui5_cl_pop_to_inform DEFINITION
DATA question_text TYPE string. DATA question_text TYPE string.
DATA button_text_confirm TYPE string. DATA button_text_confirm TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
METHODS view_display. METHODS view_display.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION. CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -41,11 +40,9 @@ CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD view_display. METHOD view_display.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
title = title
icon = icon icon = icon
afterclose = client->_event( 'BUTTON_CONFIRM' ) afterclose = client->_event( 'BUTTON_CONFIRM' )
)->content( )->content(
@ -53,8 +50,7 @@ CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
)->text( question_text )->text( question_text
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
)->buttons( )->buttons(
)->button( )->button( text = button_text_confirm
text = button_text_confirm
press = client->_event( 'BUTTON_CONFIRM' ) press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ). type = 'Emphasized' ).
@ -62,7 +58,6 @@ CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.

View File

@ -1,69 +1,67 @@
CLASS z2ui5_cl_pop_to_select DEFINITION CLASS z2ui5_cl_pop_to_select DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PROTECTED.
CREATE PROTECTED .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES z2ui5_if_app . INTERFACES z2ui5_if_app.
TYPES: TYPES:
BEGIN OF ty_s_result, BEGIN OF ty_s_result,
row TYPE REF TO data, row TYPE REF TO data,
table TYPE REF TO data, table TYPE REF TO data,
check_confirmed TYPE abap_bool, check_confirmed TYPE abap_bool,
END OF ty_s_result . END OF ty_s_result.
DATA ms_result TYPE ty_s_result . DATA ms_result TYPE ty_s_result.
DATA mr_tab TYPE REF TO data . DATA mr_tab TYPE REF TO data.
DATA mr_tab_popup TYPE REF TO data ##NEEDED. DATA mr_tab_popup TYPE REF TO data ##NEEDED.
DATA mr_tab_popup_backup TYPE REF TO data ##NEEDED. DATA mr_tab_popup_backup TYPE REF TO data ##NEEDED.
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
!i_tab TYPE STANDARD TABLE i_tab TYPE STANDARD TABLE
!i_title TYPE clike OPTIONAL i_title TYPE clike OPTIONAL
!i_sort_field TYPE clike OPTIONAL i_sort_field TYPE clike OPTIONAL
!i_descending TYPE abap_bool OPTIONAL i_descending TYPE abap_bool OPTIONAL
!i_contentwidth TYPE clike OPTIONAL i_contentwidth TYPE clike OPTIONAL
!i_contentheight TYPE clike OPTIONAL i_contentheight TYPE clike OPTIONAL
!i_growingthreshold TYPE clike OPTIONAL i_growingthreshold TYPE clike OPTIONAL
!i_multiselect TYPE abap_bool OPTIONAL i_multiselect TYPE abap_bool OPTIONAL
i_event_canceled TYPE string OPTIONAL i_event_canceled TYPE string OPTIONAL
i_event_confirmed TYPE string OPTIONAL i_event_confirmed TYPE string OPTIONAL
RETURNING RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_select . VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_select.
METHODS result METHODS result
RETURNING RETURNING
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
PROTECTED SECTION. PROTECTED SECTION.
DATA check_initialized TYPE abap_bool . DATA check_initialized TYPE abap_bool.
DATA check_table_line TYPE abap_bool . DATA check_table_line TYPE abap_bool.
DATA client TYPE REF TO z2ui5_if_client . DATA client TYPE REF TO z2ui5_if_client.
DATA title TYPE string . DATA title TYPE string.
DATA sort_field TYPE string . DATA sort_field TYPE string.
DATA content_width TYPE string . DATA content_width TYPE string.
DATA content_height TYPE string . DATA content_height TYPE string.
DATA growing_threshold TYPE string . DATA growing_threshold TYPE string.
DATA descending TYPE abap_bool . DATA descending TYPE abap_bool.
DATA multiselect TYPE abap_bool. DATA multiselect TYPE abap_bool.
DATA event_confirmed TYPE string. DATA event_confirmed TYPE string.
DATA event_canceled TYPE string. DATA event_canceled TYPE string.
METHODS on_event . METHODS on_event.
METHODS display . METHODS display.
METHODS set_output_table . METHODS set_output_table.
METHODS on_event_confirm . METHODS on_event_confirm.
METHODS on_event_search . METHODS on_event_search.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
CLASS z2ui5_cl_pop_to_select IMPLEMENTATION. CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
METHOD factory. METHOD factory.
r_result = NEW #( ). r_result = NEW #( ).
@ -89,22 +87,26 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD display. METHOD display.
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
ASSIGN mr_tab_popup->* TO <tab_out>. ASSIGN mr_tab_popup->* TO <tab_out>.
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ). DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
DATA(tab) = popup->table_select_dialog( DATA(tab) = popup->table_select_dialog(
items = `{path:'` items = |\{path:'|
&& client->_bind_edit( val = <tab_out> path = abap_true ) && client->_bind_edit( val = <tab_out>
&& `', sorter : { path : '` && to_upper( sort_field ) && `', descending : ` path = abap_true )
&& |', sorter : \{ path : '{ to_upper( sort_field ) }', descending : |
&& z2ui5_cl_util=>boolean_abap_2_json( me->descending ) && z2ui5_cl_util=>boolean_abap_2_json( me->descending )
&& ` } }` && | \} \}|
cancel = client->_event( 'CANCEL' ) cancel = client->_event( 'CANCEL' )
search = client->_event( val = 'SEARCH' t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) ) search = client->_event(
confirm = client->_event( val = 'CONFIRM' t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) ) val = 'SEARCH'
t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) )
confirm = client->_event( val = 'CONFIRM'
t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
growing = abap_true growing = abap_true
contentwidth = content_width contentwidth = content_width
contentheight = content_height contentheight = content_height
@ -120,13 +122,15 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
DATA(cells) = list->cells( ). DATA(cells) = list->cells( ).
LOOP AT lt_comp INTO DATA(ls_comp). LOOP AT lt_comp INTO DATA(ls_comp).
cells->text( `{` && ls_comp-name && `}` ). cells->text( |\{{ ls_comp-name }\}| ).
ENDLOOP. ENDLOOP.
DATA(columns) = tab->columns( ). DATA(columns) = tab->columns( ).
LOOP AT lt_comp INTO ls_comp. LOOP AT lt_comp INTO ls_comp.
DATA(text) = COND #( DATA(text) = COND #(
LET data_element_name = substring_after( val = CAST cl_abap_elemdescr( ls_comp-type )->absolute_name sub = '\TYPE=' ) LET data_element_name = substring_after(
val = CAST cl_abap_elemdescr( ls_comp-type )->absolute_name
sub = '\TYPE=' )
medium_label = z2ui5_cl_util=>rtti_get_data_element_texts( data_element_name )-medium IN medium_label = z2ui5_cl_util=>rtti_get_data_element_texts( data_element_name )-medium IN
WHEN medium_label IS NOT INITIAL WHEN medium_label IS NOT INITIAL
THEN medium_label THEN medium_label
@ -138,7 +142,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.
@ -154,7 +157,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD on_event. METHOD on_event.
CASE client->get( )-event. CASE client->get( )-event.
@ -163,7 +165,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ms_result-check_confirmed = abap_true. ms_result-check_confirmed = abap_true.
on_event_confirm( ). on_event_confirm( ).
WHEN 'CANCEL'. WHEN 'CANCEL'.
client->popup_destroy( ). client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ). client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
@ -176,14 +177,12 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD result. METHOD result.
result = ms_result. result = ms_result.
ENDMETHOD. ENDMETHOD.
METHOD set_output_table. METHOD set_output_table.
FIELD-SYMBOLS <row> TYPE any. FIELD-SYMBOLS <row> TYPE any.
@ -193,6 +192,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
FIELD-SYMBOLS <tab_out2> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out2> TYPE STANDARD TABLE.
FIELD-SYMBOLS <field> TYPE any. FIELD-SYMBOLS <field> TYPE any.
DATA lr_row TYPE REF TO data. DATA lr_row TYPE REF TO data.
ASSIGN mr_tab->* TO <tab>. ASSIGN mr_tab->* TO <tab>.
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <tab> ). DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <tab> ).
@ -203,12 +203,14 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
CATCH cx_root. CATCH cx_root.
check_table_line = abap_true. check_table_line = abap_true.
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ). DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ).
INSERT VALUE #( name = 'TAB_LINE' type = CAST #( lo_elem ) ) INTO TABLE lt_comp. INSERT VALUE #( name = 'TAB_LINE'
type = CAST #( lo_elem ) ) INTO TABLE lt_comp.
ENDTRY. ENDTRY.
IF NOT line_exists( lt_comp[ name = `ZZSELKZ` ] ). IF NOT line_exists( lt_comp[ name = `ZZSELKZ` ] ).
DATA(lo_type_bool) = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ). DATA(lo_type_bool) = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ).
INSERT VALUE #( name = `ZZSELKZ` type = CAST #( lo_type_bool ) ) INTO TABLE lt_comp. INSERT VALUE #( name = `ZZSELKZ`
type = CAST #( lo_type_bool ) ) INTO TABLE lt_comp.
ENDIF. ENDIF.
DATA(lo_line_type) = cl_abap_structdescr=>create( lt_comp ). DATA(lo_line_type) = cl_abap_structdescr=>create( lt_comp ).
@ -246,6 +248,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
FIELD-SYMBOLS <row_result> TYPE any. FIELD-SYMBOLS <row_result> TYPE any.
FIELD-SYMBOLS <table_result> TYPE ANY TABLE. FIELD-SYMBOLS <table_result> TYPE ANY TABLE.
FIELD-SYMBOLS <table_line_selected> TYPE any. FIELD-SYMBOLS <table_line_selected> TYPE any.
ASSIGN mr_tab_popup->* TO <tab>. ASSIGN mr_tab_popup->* TO <tab>.
ASSIGN ms_result-table->* TO <table_result>. ASSIGN ms_result-table->* TO <table_result>.
@ -277,11 +280,11 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
client->popup_destroy( ). client->popup_destroy( ).
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ). client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
client->follow_up_action( client->_event( val = event_confirmed r_data = <table_result> ) ). client->follow_up_action( client->_event( val = event_confirmed
r_data = <table_result> ) ).
ENDMETHOD. ENDMETHOD.
METHOD on_event_search. METHOD on_event_search.
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
@ -302,7 +305,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
LOOP AT <tab_out> ASSIGNING <row2>. LOOP AT <tab_out> ASSIGNING <row2>.
DATA(lv_check_continue) = abap_false. DATA(lv_check_continue) = abap_false.
LOOP AT lt_comp INTO DATA(ls_comp). LOOP AT lt_comp INTO DATA(ls_comp).
DATA(lv_assign) = '<ROW2>-' && ls_comp-name. DATA(lv_assign) = |<ROW2>-{ ls_comp-name }|.
ASSIGN (lv_assign) TO <field2>. ASSIGN (lv_assign) TO <field2>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
IF to_upper( <field2> ) CS to_upper( ls_arg ). IF to_upper( <field2> ) CS to_upper( ls_arg ).
@ -318,5 +321,4 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
client->popup_model_update( ). client->popup_model_update( ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,6 +1,5 @@
CLASS ltcl_app_startup_test DEFINITION FINAL FOR TESTING CLASS ltcl_app_startup_test DEFINITION FINAL
DURATION SHORT FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
RISK LEVEL DANGEROUS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS first_test FOR TESTING RAISING cx_static_check. METHODS first_test FOR TESTING RAISING cx_static_check.
@ -9,11 +8,9 @@ ENDCLASS.
CLASS ltcl_app_startup_test IMPLEMENTATION. CLASS ltcl_app_startup_test IMPLEMENTATION.
METHOD first_test. METHOD first_test.
DATA(lo_app) = z2ui5_cl_app_startup=>factory( ) ##NEEDED. DATA(lo_app) = z2ui5_cl_app_startup=>factory( ) ##NEEDED.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,14 +1,13 @@
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING CLASS ltcl_unit_test DEFINITION FINAL
DURATION MEDIUM FOR TESTING RISK LEVEL DANGEROUS DURATION MEDIUM.
RISK LEVEL DANGEROUS.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_create FOR TESTING RAISING cx_static_check. METHODS test_create FOR TESTING RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION.
CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_create. METHOD test_create.
DATA(lo_view) = z2ui5_cl_xml_view=>factory( ). DATA(lo_view) = z2ui5_cl_xml_view=>factory( ).
@ -19,5 +18,4 @@ CLASS ltcl_unit_test IMPLEMENTATION.
ENDIF. ENDIF.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -13,6 +13,6 @@ INTERFACE z2ui5_if_app PUBLIC.
METHODS main METHODS main
IMPORTING IMPORTING
client TYPE REF TO z2ui5_if_client. !client TYPE REF TO z2ui5_if_client.
ENDINTERFACE. ENDINTERFACE.

View File

@ -41,7 +41,7 @@ INTERFACE z2ui5_if_client
METHODS nest_view_display METHODS nest_view_display
IMPORTING IMPORTING
val TYPE clike val TYPE clike
id TYPE clike !id TYPE clike
method_insert TYPE clike method_insert TYPE clike
method_destroy TYPE clike OPTIONAL. method_destroy TYPE clike OPTIONAL.
@ -51,7 +51,7 @@ INTERFACE z2ui5_if_client
METHODS nest2_view_display METHODS nest2_view_display
IMPORTING IMPORTING
val TYPE clike val TYPE clike
id TYPE clike !id TYPE clike
method_insert TYPE clike method_insert TYPE clike
method_destroy TYPE clike OPTIONAL. method_destroy TYPE clike OPTIONAL.
@ -70,7 +70,7 @@ INTERFACE z2ui5_if_client
METHODS popover_display METHODS popover_display
IMPORTING IMPORTING
xml TYPE clike !xml TYPE clike
by_id TYPE clike. by_id TYPE clike.
METHODS popover_destroy. METHODS popover_destroy.
@ -87,7 +87,7 @@ INTERFACE z2ui5_if_client
METHODS get_app METHODS get_app
IMPORTING IMPORTING
id TYPE clike OPTIONAL !id TYPE clike OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_if_app. VALUE(result) TYPE REF TO z2ui5_if_app.
@ -105,42 +105,42 @@ INTERFACE z2ui5_if_client
METHODS message_box_display METHODS message_box_display
IMPORTING IMPORTING
text TYPE any !text TYPE any
type TYPE clike DEFAULT `information` !type TYPE clike DEFAULT `information`
title TYPE clike OPTIONAL !title TYPE clike OPTIONAL
styleclass TYPE clike OPTIONAL styleclass TYPE clike OPTIONAL
onclose TYPE clike OPTIONAL onclose TYPE clike OPTIONAL
actions TYPE string_table OPTIONAL actions TYPE string_table OPTIONAL
emphasizedaction TYPE clike OPTIONAL emphasizedaction TYPE clike OPTIONAL
initialfocus TYPE clike OPTIONAL initialfocus TYPE clike OPTIONAL
textdirection TYPE clike OPTIONAL textdirection TYPE clike OPTIONAL
icon TYPE clike OPTIONAL !icon TYPE clike OPTIONAL
details TYPE clike OPTIONAL details TYPE clike OPTIONAL
closeonnavigation TYPE abap_bool DEFAULT abap_true. closeonnavigation TYPE abap_bool DEFAULT abap_true.
METHODS message_toast_display METHODS message_toast_display
IMPORTING IMPORTING
text TYPE clike !text TYPE clike
duration TYPE clike OPTIONAL !duration TYPE clike OPTIONAL
width TYPE clike OPTIONAL !width TYPE clike OPTIONAL
my TYPE clike OPTIONAL my TYPE clike OPTIONAL
at TYPE clike OPTIONAL !at TYPE clike OPTIONAL
of TYPE clike OPTIONAL !of TYPE clike OPTIONAL
offset TYPE clike OPTIONAL !offset TYPE clike OPTIONAL
collision TYPE clike OPTIONAL collision TYPE clike OPTIONAL
onclose TYPE clike DEFAULT `` onclose TYPE clike DEFAULT ``
autoclose TYPE abap_bool DEFAULT abap_true autoclose TYPE abap_bool DEFAULT abap_true
animationtimingfunction TYPE clike OPTIONAL animationtimingfunction TYPE clike OPTIONAL
animationduration TYPE clike OPTIONAL animationduration TYPE clike OPTIONAL
closeonbrowsernavigation TYPE abap_bool DEFAULT abap_true closeonbrowsernavigation TYPE abap_bool DEFAULT abap_true
class TYPE clike OPTIONAL. !class TYPE clike OPTIONAL.
METHODS _event METHODS _event
IMPORTING IMPORTING
val TYPE clike OPTIONAL val TYPE clike OPTIONAL
t_arg TYPE string_table OPTIONAL t_arg TYPE string_table OPTIONAL
s_ctrl TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL s_ctrl TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL
r_data type data optional r_data TYPE data OPTIONAL
PREFERRED PARAMETER val PREFERRED PARAMETER val
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -155,10 +155,10 @@ INTERFACE z2ui5_if_client
METHODS _bind METHODS _bind
IMPORTING IMPORTING
val TYPE data val TYPE data
path TYPE abap_bool DEFAULT abap_false !path TYPE abap_bool DEFAULT abap_false
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
tab TYPE data OPTIONAL !tab TYPE data OPTIONAL
tab_index TYPE i OPTIONAL tab_index TYPE i OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -166,13 +166,13 @@ INTERFACE z2ui5_if_client
METHODS _bind_edit METHODS _bind_edit
IMPORTING IMPORTING
val TYPE data val TYPE data
path TYPE abap_bool DEFAULT abap_false !path TYPE abap_bool DEFAULT abap_false
view TYPE string DEFAULT z2ui5_if_client=>cs_view-main view TYPE string DEFAULT z2ui5_if_client=>cs_view-main
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
custom_filter_back TYPE REF TO z2ui5_if_ajson_filter OPTIONAL custom_filter_back TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
tab TYPE data OPTIONAL !tab TYPE data OPTIONAL
tab_index TYPE i OPTIONAL tab_index TYPE i OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -180,7 +180,7 @@ INTERFACE z2ui5_if_client
METHODS _bind_local METHODS _bind_local
IMPORTING IMPORTING
val TYPE data val TYPE data
path TYPE abap_bool DEFAULT abap_false !path TYPE abap_bool DEFAULT abap_false
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
RETURNING RETURNING
@ -192,18 +192,18 @@ INTERFACE z2ui5_if_client
METHODS check_on_init METHODS check_on_init
RETURNING RETURNING
value(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
METHODS check_app_prev_stack METHODS check_app_prev_stack
RETURNING RETURNING
value(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
METHODS check_on_navigated METHODS check_on_navigated
RETURNING RETURNING
value(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
METHODS get_app_prev METHODS get_app_prev
RETURNING RETURNING
value(result) TYPE REF TO z2ui5_if_app. VALUE(result) TYPE REF TO z2ui5_if_app.
ENDINTERFACE. ENDINTERFACE.

View File

@ -46,7 +46,7 @@ INTERFACE z2ui5_if_types
s_draft TYPE ty_s_draft, s_draft TYPE ty_s_draft,
s_config TYPE ty_s_config, s_config TYPE ty_s_config,
t_comp_params TYPE ty_t_name_value, t_comp_params TYPE ty_t_name_value,
r_event_data type ref to data, r_event_data TYPE REF TO data,
END OF ty_s_get. END OF ty_s_get.
TYPES: TYPES: