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,14 +209,11 @@ 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 no_ddic_type = 2
EXCEPTIONS OTHERS = 3.
not_found = 1
no_ddic_type = 2
OTHERS = 3.
LOOP AT lt_values REFERENCE INTO DATA(lr_fix). LOOP AT lt_values REFERENCE INTO DATA(lr_fix).
@ -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,23 +389,22 @@ 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.
FIELD-SYMBOLS <any> TYPE any. FIELD-SYMBOLS <any> TYPE any.
DATA lt_implementation_names TYPE string_table. DATA lt_implementation_names TYPE string_table.
TYPES BEGIN OF ty_s_impl. TYPES BEGIN OF ty_s_impl.
TYPES clsname TYPE c LENGTH 30. TYPES clsname TYPE c LENGTH 30.
TYPES refclsname TYPE c LENGTH 30. TYPES refclsname TYPE c LENGTH 30.
TYPES END OF ty_s_impl. TYPES END OF ty_s_impl.
DATA lt_impl TYPE STANDARD TABLE OF ty_s_impl WITH DEFAULT KEY. DATA lt_impl TYPE STANDARD TABLE OF ty_s_impl WITH DEFAULT KEY.
TYPES BEGIN OF ty_s_key. TYPES BEGIN OF ty_s_key.
TYPES intkey TYPE c LENGTH 30. TYPES intkey TYPE c LENGTH 30.
TYPES END OF ty_s_key. TYPES END OF ty_s_key.
DATA ls_key TYPE ty_s_key. DATA ls_key TYPE ty_s_key.
DATA BEGIN OF ls_clskey. DATA BEGIN OF ls_clskey.
DATA clsname TYPE c LENGTH 30. DATA clsname TYPE c LENGTH 30.
DATA END OF ls_clskey. DATA END OF ls_clskey.
DATA class TYPE REF TO data. DATA class TYPE REF TO data.
@ -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,13 +430,11 @@ 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 ) ) ).
CATCH cx_root. CATCH cx_root.
@ -488,13 +442,10 @@ 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 OTHERS = 2.
EXCEPTIONS
not_existing = 1
OTHERS = 2.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RETURN. RETURN.
ENDIF. ENDIF.
@ -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, DATA exists TYPE abap_bool.
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,12 +515,10 @@ 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 no_ddic_type = 2
not_found = 1 OTHERS = 3.
no_ddic_type = 2
OTHERS = 3.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RETURN. RETURN.
ENDIF. ENDIF.
@ -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,33 +633,27 @@ 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.
DATA content TYPE REF TO object. DATA content TYPE REF TO object.
DATA lv_classname TYPE c LENGTH 30. DATA lv_classname TYPE c LENGTH 30.
lv_classname = i_classname. lv_classname = i_classname.
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,26 +1,23 @@
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.
METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check. METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check.
METHODS test_encoding FOR TESTING RAISING cx_static_check. METHODS test_encoding FOR TESTING RAISING cx_static_check.
METHODS test_element_text FOR TESTING RAISING cx_static_check. METHODS test_element_text FOR TESTING RAISING cx_static_check.
METHODS test_classes_impl_intf FOR TESTING RAISING cx_static_check. METHODS test_classes_impl_intf FOR TESTING RAISING cx_static_check.
ENDCLASS. 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,19 +54,20 @@ 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.
DATA mo_request_cloud TYPE REF TO object. DATA mo_request_cloud TYPE REF TO object.
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,16 +160,14 @@ 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,16 +267,14 @@ 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.

File diff suppressed because it is too large Load Diff

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.
@ -54,41 +56,40 @@ CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
RETURNING RETURNING
VALUE(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
METHODS test_assign FOR TESTING RAISING cx_static_check. METHODS test_assign FOR TESTING RAISING cx_static_check.
METHODS test_eledescr_rel_name FOR TESTING RAISING cx_static_check. METHODS test_eledescr_rel_name FOR TESTING RAISING cx_static_check.
METHODS test_classdescr FOR TESTING RAISING cx_static_check. METHODS test_classdescr FOR TESTING RAISING cx_static_check.
METHODS test_substring_after FOR TESTING RAISING cx_static_check. METHODS test_substring_after FOR TESTING RAISING cx_static_check.
METHODS test_substring_before FOR TESTING RAISING cx_static_check. METHODS test_substring_before FOR TESTING RAISING cx_static_check.
METHODS test_string_shift FOR TESTING RAISING cx_static_check. METHODS test_string_shift FOR TESTING RAISING cx_static_check.
METHODS test_string_replace FOR TESTING RAISING cx_static_check. METHODS test_string_replace FOR TESTING RAISING cx_static_check.
METHODS test_raise_error FOR TESTING RAISING cx_static_check. METHODS test_raise_error FOR TESTING RAISING cx_static_check.
METHODS test_xsdbool FOR TESTING RAISING cx_static_check. METHODS test_xsdbool FOR TESTING RAISING cx_static_check.
METHODS test_xsdbool_nested FOR TESTING RAISING cx_static_check. METHODS test_xsdbool_nested FOR TESTING RAISING cx_static_check.
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.
METHODS test_create FOR TESTING RAISING cx_static_check. METHODS test_create FOR TESTING RAISING cx_static_check.
METHODS test_boolean_abap_2_json FOR TESTING RAISING cx_static_check. METHODS test_boolean_abap_2_json FOR TESTING RAISING cx_static_check.
METHODS test_boolean_check FOR TESTING RAISING cx_static_check. METHODS test_boolean_check FOR TESTING RAISING cx_static_check.
METHODS test_c_trim FOR TESTING RAISING cx_static_check. METHODS test_c_trim FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_lower FOR TESTING RAISING cx_static_check. METHODS test_c_trim_lower FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_upper FOR TESTING RAISING cx_static_check. METHODS test_c_trim_upper FOR TESTING RAISING cx_static_check.
METHODS test_c_trim_horizontal_tab FOR TESTING RAISING cx_static_check. METHODS test_c_trim_horizontal_tab FOR TESTING RAISING cx_static_check.
METHODS test_time_get_timestampl FOR TESTING RAISING cx_static_check. METHODS test_time_get_timestampl FOR TESTING RAISING cx_static_check.
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.
METHODS test_rtti_get_type_kind FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_type_kind FOR TESTING RAISING cx_static_check.
@ -96,32 +97,31 @@ CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
METHODS test_rtti_get_t_attri_by_obj FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_t_attri_by_obj FOR TESTING RAISING cx_static_check.
METHODS test_rtti_get_t_comp_by_struc FOR TESTING RAISING cx_static_check. METHODS test_rtti_get_t_comp_by_struc FOR TESTING RAISING cx_static_check.
METHODS test_trans_json_any_2__w_struc FOR TESTING RAISING cx_static_check. METHODS test_trans_json_any_2__w_struc FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_any_2__w_obj FOR TESTING RAISING cx_static_check. METHODS test_trans_xml_any_2__w_obj FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_any_2__w_data FOR TESTING RAISING cx_static_check. METHODS test_trans_xml_any_2__w_data FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_2_any__w_obj FOR TESTING RAISING cx_static_check. METHODS test_trans_xml_2_any__w_obj FOR TESTING RAISING cx_static_check.
METHODS test_trans_xml_2_any__w_data FOR TESTING RAISING cx_static_check. METHODS test_trans_xml_2_any__w_data FOR TESTING RAISING cx_static_check.
METHODS test_url_param_create_url FOR TESTING RAISING cx_static_check. METHODS test_url_param_create_url FOR TESTING RAISING cx_static_check.
METHODS test_url_param_get FOR TESTING RAISING cx_static_check. METHODS test_url_param_get FOR TESTING RAISING cx_static_check.
METHODS test_url_param_get_tab FOR TESTING RAISING cx_static_check. METHODS test_url_param_get_tab FOR TESTING RAISING cx_static_check.
METHODS test_url_param_set FOR TESTING RAISING cx_static_check. METHODS test_url_param_set FOR TESTING RAISING cx_static_check.
METHODS test_x_check_raise FOR TESTING RAISING cx_static_check. METHODS test_x_check_raise FOR TESTING RAISING cx_static_check.
METHODS test_x_check_raise_not FOR TESTING RAISING cx_static_check. METHODS test_x_check_raise_not FOR TESTING RAISING cx_static_check.
METHODS test_x_raise FOR TESTING RAISING cx_static_check. METHODS test_x_raise FOR TESTING RAISING cx_static_check.
METHODS test_check_unassign_inital FOR TESTING RAISING cx_static_check. METHODS test_check_unassign_inital FOR TESTING RAISING cx_static_check.
METHODS conv_copy_ref_data FOR TESTING RAISING cx_static_check. METHODS conv_copy_ref_data FOR TESTING RAISING cx_static_check.
METHODS rtti_check_ref_data FOR TESTING RAISING cx_static_check. METHODS rtti_check_ref_data FOR TESTING RAISING cx_static_check.
METHODS test_check_bound_a_not_inital FOR TESTING RAISING cx_static_check. METHODS test_check_bound_a_not_inital FOR TESTING RAISING cx_static_check.
METHODS test_sql_get_by_string FOR TESTING RAISING cx_static_check. METHODS test_sql_get_by_string FOR TESTING RAISING cx_static_check.
METHODS test_get_token_t_by_r_t FOR TESTING RAISING cx_static_check. METHODS test_get_token_t_by_r_t FOR TESTING RAISING cx_static_check.
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,9 +361,8 @@ 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.
cl_abap_unit_assert=>fail( ). cl_abap_unit_assert=>fail( ).
@ -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,62 +453,58 @@ 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.
METHOD test_url_param_get. METHOD test_url_param_get.
DATA(lv_param) = z2ui5_cl_util=>url_param_get( DATA(lv_param) = z2ui5_cl_util=>url_param_get(
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.
METHOD test_url_param_set. METHOD test_url_param_set.
DATA(lv_param) = z2ui5_cl_util=>url_param_set( DATA(lv_param) = z2ui5_cl_util=>url_param_set(
name = `app_start` name = `app_start`
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,19 +720,17 @@ 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 ).
DATA(lt_exp) = VALUE z2ui5_cl_util=>ty_t_token( DATA(lt_exp) = VALUE z2ui5_cl_util=>ty_t_token(
( 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,11 +755,10 @@ 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.
DATA(lo_datadescr) = cl_abap_typedescr=>describe_by_data( ms_struc2 ). DATA(lo_datadescr) = cl_abap_typedescr=>describe_by_data( ms_struc2 ).
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_include( CAST #( lo_datadescr ) ). DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_include( CAST #( lo_datadescr ) ).
@ -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
@ -32,61 +31,52 @@ 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.
PRIVATE SECTION. PRIVATE SECTION.
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.
COMMIT WORK. COMMIT WORK.
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 uname = z2ui5_cl_util=>context_get_user_tech( )
uname = z2ui5_cl_util=>context_get_user_tech( ) timestampl = z2ui5_cl_util=>time_get_timestampl( )
timestampl = z2ui5_cl_util=>time_get_timestampl( ) data = model_xml ).
data = model_xml ).
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.
@ -8,8 +7,8 @@ CLASS z2ui5_cl_core_action DEFINITION
DATA mo_http_post TYPE REF TO z2ui5_cl_core_handler. DATA mo_http_post TYPE REF TO z2ui5_cl_core_handler.
DATA mo_app TYPE REF TO z2ui5_cl_core_app. DATA mo_app TYPE REF TO z2ui5_cl_core_app.
DATA ms_actual TYPE z2ui5_if_core_types=>ty_s_actual. DATA ms_actual TYPE z2ui5_if_core_types=>ty_s_actual.
DATA ms_next TYPE z2ui5_if_core_types=>ty_s_next. DATA ms_next TYPE z2ui5_if_core_types=>ty_s_next.
METHODS factory_system_startup METHODS factory_system_startup
RETURNING RETURNING
@ -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,14 +64,12 @@ 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.
result->ms_actual-t_event_arg = mo_http_post->ms_request-s_front-t_event_arg. result->ms_actual-t_event_arg = mo_http_post->ms_request-s_front-t_event_arg.
@ -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.
@ -155,8 +144,8 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
mo_app->db_save( ). mo_app->db_save( ).
val->id_draft = COND string( WHEN val->id_draft IS INITIAL val->id_draft = COND string( WHEN val->id_draft IS INITIAL
THEN z2ui5_cl_util=>uuid_get_c32( ) THEN z2ui5_cl_util=>uuid_get_c32( )
ELSE ms_next-o_app_leave->id_draft ). ELSE ms_next-o_app_leave->id_draft ).
result = NEW #( mo_http_post ). result = NEW #( mo_http_post ).
TRY. TRY.
@ -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,24 +1,23 @@
CLASS z2ui5_cl_core_app DEFINITION CLASS z2ui5_cl_core_app DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES if_serializable_object. INTERFACES if_serializable_object.
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.
DATA mo_app TYPE REF TO object. DATA mo_app TYPE REF TO object.
DATA ms_draft TYPE z2ui5_if_types=>ty_s_get-s_draft. DATA ms_draft TYPE z2ui5_if_types=>ty_s_get-s_draft.
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,32 +45,25 @@ 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,15 +74,13 @@ 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( ).
result = z2ui5_cl_util=>xml_stringify( me ). result = z2ui5_cl_util=>xml_stringify( me ).
@ -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,38 +13,33 @@ 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 ) check_on_navigated = mo_action->ms_actual-check_on_navigated
check_on_navigated = mo_action->ms_actual-check_on_navigated s_config = CORRESPONDING #( mo_action->mo_http_post->ms_request-s_front )
s_config = CORRESPONDING #( mo_action->mo_http_post->ms_request-s_front ) r_event_data = mo_action->ms_actual-r_data
r_event_data = mo_action->ms_actual-r_data
). ).
TRY. TRY.
@ -53,12 +48,13 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
RETURN. RETURN.
ENDIF. ENDIF.
LOOP AT lo_params->mt_json_tree LOOP AT lo_params->mt_json_tree
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 = `/` )
v = lr_comp->value ) INTO TABLE result-t_comp_params. sub = `/` )
v = lr_comp->value ) INTO TABLE result-t_comp_params.
ENDLOOP. ENDLOOP.
CATCH cx_root. CATCH cx_root.
ENDTRY. ENDTRY.
@ -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,22 +90,25 @@ 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`
ELSE `Information` ). WHEN 'S' THEN `Success`
WHEN `W` THEN `Warning`
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`
ELSE `Information` ). WHEN 'S' THEN `Success`
WHEN `W` THEN `Warning`
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 ).
ELSE. ELSE.
@ -134,28 +132,25 @@ 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 onclose = onclose
onclose = onclose actions = actions
actions = actions emphasizedaction = emphasizedaction
emphasizedaction = emphasizedaction initialfocus = initialfocus
initialfocus = initialfocus textdirection = textdirection
textdirection = textdirection icon = icon
icon = icon details = lv_details
details = lv_details closeonnavigation = closeonnavigation
closeonnavigation = closeonnavigation
). ).
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,175 +201,149 @@ 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.
mo_action->ms_next-s_set-s_view_nest2-id = id. mo_action->ms_next-s_set-s_view_nest2-id = id.
mo_action->ms_next-s_set-s_view_nest2-method_destroy = method_destroy. mo_action->ms_next-s_set-s_view_nest2-method_destroy = method_destroy.
mo_action->ms_next-s_set-s_view_nest2-method_insert = method_insert. mo_action->ms_next-s_set-s_view_nest2-method_insert = method_insert.
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.
mo_action->ms_next-s_set-s_view_nest-id = id. mo_action->ms_next-s_set-s_view_nest-id = id.
mo_action->ms_next-s_set-s_view_nest-method_destroy = method_destroy. mo_action->ms_next-s_set-s_view_nest-method_destroy = method_destroy.
mo_action->ms_next-s_set-s_view_nest-method_insert = method_insert. mo_action->ms_next-s_set-s_view_nest-method_insert = method_insert.
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.
mo_action->ms_next-s_set-s_popover-xml = xml. mo_action->ms_next-s_set-s_popover-xml = xml.
mo_action->ms_next-s_set-s_popover-open_by_id = by_id. mo_action->ms_next-s_set-s_popover-open_by_id = by_id.
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.
mo_action->ms_next-s_set-s_popup-xml = val. mo_action->ms_next-s_set-s_popup-xml = val.
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 #( path_only = path
config = VALUE #( custom_filter = custom_filter
path_only = path custom_mapper = custom_mapper
custom_filter = custom_filter tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
custom_mapper = custom_mapper tab_index = tab_index ) ).
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
tab_index = tab_index ) ).
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 #( path_only = path
config = VALUE #( custom_filter = custom_filter
path_only = path custom_filter_back = custom_filter_back
custom_filter = custom_filter custom_mapper = custom_mapper
custom_filter_back = custom_filter_back custom_mapper_back = custom_mapper_back
custom_mapper = custom_mapper tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
custom_mapper_back = custom_mapper_back tab_index = tab_index ) ).
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
tab_index = tab_index ) ).
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 #( custom_mapper = custom_mapper
path_only = path custom_filter = custom_filter ) ).
custom_mapper = custom_mapper
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 ).
IF r_data IS NOT INITIAL. IF r_data IS NOT INITIAL.
CREATE DATA mo_action->ms_next-r_data LIKE r_data. CREATE DATA mo_action->ms_next-r_data LIKE r_data.
@ -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,29 +77,26 @@ 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 )
). ).
IF ms_response-s_front-params-s_view-check_update_model = abap_true IF ms_response-s_front-params-s_view-check_update_model = abap_true
OR ms_response-s_front-params-s_view_nest-check_update_model = abap_true OR ms_response-s_front-params-s_view_nest-check_update_model = abap_true
OR ms_response-s_front-params-s_view_nest2-check_update_model = abap_true OR ms_response-s_front-params-s_view_nest2-check_update_model = abap_true
OR ms_response-s_front-params-s_popup-check_update_model = abap_true OR ms_response-s_front-params-s_popup-check_update_model = abap_true
OR ms_response-s_front-params-s_popover-check_update_model = abap_true OR ms_response-s_front-params-s_popover-check_update_model = abap_true
OR ms_response-s_front-params-s_view-xml IS NOT INITIAL OR ms_response-s_front-params-s_view-xml IS NOT INITIAL
OR ms_response-s_front-params-s_view_nest-xml IS NOT INITIAL OR ms_response-s_front-params-s_view_nest-xml IS NOT INITIAL
OR ms_response-s_front-params-s_view_nest2-xml IS NOT INITIAL OR ms_response-s_front-params-s_view_nest2-xml IS NOT INITIAL
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,12 +41,11 @@ 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).
TRY. TRY.
lr_attri->r_ref = attri_get_val_ref( lr_attri->name ). lr_attri->r_ref = attri_get_val_ref( lr_attri->name ).
lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ). lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ).
IF lr_attri->srtti_data IS NOT INITIAL. IF lr_attri->srtti_data IS NOT INITIAL.
@ -104,9 +103,8 @@ 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.
@ -137,9 +135,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
LOOP AT mt_attri->* ASSIGNING FIELD-SYMBOL(<ls_attri>). LOOP AT mt_attri->* ASSIGNING FIELD-SYMBOL(<ls_attri>).
DATA(lv_name) = <ls_attri>-name. DATA(lv_name) = <ls_attri>-name.
IF line_exists( lt_attri[ name = lv_name ] ). IF line_exists( lt_attri[ name = lv_name ] ).
<ls_attri>-bind_type = lt_attri[ name = lv_name ]-bind_type. <ls_attri>-bind_type = lt_attri[ name = lv_name ]-bind_type.
<ls_attri>-name_client = lt_attri[ name = lv_name ]-name_client. <ls_attri>-name_client = lt_attri[ name = lv_name ]-name_client.
<ls_attri>-view = lt_attri[ name = lv_name ]-view. <ls_attri>-view = lt_attri[ name = lv_name ]-view.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
RETURN. RETURN.
@ -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.
@ -182,7 +178,7 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri). LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
TRY. TRY.
lr_attri->r_ref = attri_get_val_ref( lr_attri->name ). lr_attri->r_ref = attri_get_val_ref( lr_attri->name ).
lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ). lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ).
* TRY. * TRY.
@ -211,9 +207,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri) LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
WHERE o_typedescr IS BOUND. WHERE o_typedescr IS BOUND.
IF lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_elem IF lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_elem
AND lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_struct AND lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_struct
AND lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_table. AND lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_table.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
@ -224,7 +220,5 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -1,58 +1,53 @@
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.
DATA mv_value TYPE string ##NEEDED. DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO data. DATA mr_value TYPE REF TO data.
DATA mr_value2 TYPE REF TO data. DATA mr_value2 TYPE REF TO data.
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.
METHODS second_test FOR TESTING RAISING cx_static_check. METHODS second_test FOR TESTING RAISING cx_static_check.
METHODS third_test FOR TESTING RAISING cx_static_check. METHODS third_test FOR TESTING RAISING cx_static_check.
ENDCLASS. 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,14 +63,13 @@ 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,11 +87,10 @@ 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 ) ) ).
DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ). DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ).
IF lr_attri->r_ref <> lr_value. IF lr_attri->r_ref <> lr_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,61 +113,59 @@ 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.
DATA mv_value TYPE string ##NEEDED. DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO string. DATA mr_value TYPE REF TO string.
* DATA mr_value2 TYPE REF TO data. * DATA mr_value2 TYPE REF TO data.
DATA mo_app TYPE REF TO ltcl_test_app_sub. DATA mo_app TYPE REF TO ltcl_test_app_sub.
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.
METHODS second_test FOR TESTING RAISING cx_static_check. METHODS second_test FOR TESTING RAISING cx_static_check.
METHODS third_test FOR TESTING RAISING cx_static_check. METHODS third_test FOR TESTING RAISING cx_static_check.
METHODS test4 FOR TESTING RAISING cx_static_check. METHODS test4 FOR TESTING RAISING cx_static_check.
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,9 +181,8 @@ 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,9 +197,8 @@ 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,9 +214,8 @@ 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,17 +61,15 @@ 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.
FIELD-SYMBOLS <row> TYPE any. FIELD-SYMBOLS <row> TYPE any.
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,18 +147,18 @@ 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 = ``.
mo_app->mt_attri->*[ name = lv_path ]-bind_type = ``. mo_app->mt_attri->*[ name = lv_path ]-bind_type = ``.
LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2) LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2)
WHERE name = lv_path. WHERE name = lv_path.
CLEAR lr_bind2->r_ref. CLEAR lr_bind2->r_ref.
ENDLOOP. ENDLOOP.
@ -177,33 +167,35 @@ 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 ).
RETURN. RETURN.
ENDIF. ENDIF.
@ -211,9 +203,8 @@ 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 ).
@ -283,12 +273,12 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
name = lv_id name = lv_id
json_bind_local = lo_json json_bind_local = lo_json
bind_type = z2ui5_if_core_types=>cs_bind_type-one_time ) bind_type = z2ui5_if_core_types=>cs_bind_type-one_time )
INTO TABLE mo_app->mt_attri->*. INTO TABLE mo_app->mt_attri->*.
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,18 +286,18 @@ 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.
mr_attri->view = ms_config-view. mr_attri->view = ms_config-view.
mr_attri->custom_filter = ms_config-custom_filter. mr_attri->custom_filter = ms_config-custom_filter.
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
mr_attri->name_client = get_client_name( ). THEN z2ui5_if_client=>cs_view-main
ELSE ms_config-view ).
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.
@ -26,38 +25,40 @@ CLASS ltcl_test_app DEFINITION FINAL FOR TESTING
DATA mv_value TYPE string ##NEEDED. DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO data ##NEEDED. DATA mr_value TYPE REF TO data ##NEEDED.
DATA mr_struc TYPE REF TO s_01 ##NEEDED. DATA mr_struc TYPE REF TO s_01 ##NEEDED.
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.
METHODS test_error_diff FOR TESTING RAISING cx_static_check. METHODS test_error_diff FOR TESTING RAISING cx_static_check.
METHODS test_two_way FOR TESTING RAISING cx_static_check. METHODS test_two_way FOR TESTING RAISING cx_static_check.
METHODS test_local FOR TESTING RAISING cx_static_check. METHODS test_local FOR TESTING RAISING cx_static_check.
METHODS test_local_one FOR TESTING RAISING cx_static_check. METHODS test_local_one FOR TESTING RAISING cx_static_check.
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,9 +68,8 @@ 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,14 +102,12 @@ 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.
@ -210,16 +199,15 @@ CLASS ltcl_test_main_structure DEFINITION FINAL FOR TESTING
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_one_way_lev1 FOR TESTING RAISING cx_static_check. METHODS test_one_way_lev1 FOR TESTING RAISING cx_static_check.
METHODS test_one_way_lev2 FOR TESTING RAISING cx_static_check. METHODS test_one_way_lev2 FOR TESTING RAISING cx_static_check.
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,26 +267,22 @@ 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.
DATA mo_obj TYPE REF TO ltcl_test_main_object. DATA mo_obj TYPE REF TO ltcl_test_main_object.
DATA mv_value TYPE string. DATA mv_value TYPE string.
TYPES: TYPES:
@ -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,10 +88,9 @@ 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 ).
@ -114,11 +108,11 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lr_ref ). DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lr_ref ).
LOOP AT lt_attri REFERENCE INTO DATA(lr_attri) LOOP AT lt_attri REFERENCE INTO DATA(lr_attri)
WHERE visibility = cl_abap_objectdescr=>public WHERE visibility = cl_abap_objectdescr=>public
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,12 +162,11 @@ 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.
LOOP AT mt_attri->* TRANSPORTING NO FIELDS LOOP AT mt_attri->* TRANSPORTING NO FIELDS
WHERE bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time. WHERE bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time.
ENDLOOP. ENDLOOP.
IF sy-subrc = 0. IF sy-subrc = 0.
RETURN. RETURN.
@ -188,21 +179,20 @@ 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( ).
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri) LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
WHERE check_dissolved = abap_false WHERE check_dissolved = abap_false
AND bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time. AND bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time.
lr_attri->check_dissolved = abap_true. lr_attri->check_dissolved = abap_true.
IF lr_attri->o_typedescr IS NOT BOUND. IF lr_attri->o_typedescr IS NOT BOUND.
DATA(ls_entry) = create_new_entry( lr_attri->name ). DATA(ls_entry) = create_new_entry( lr_attri->name ).
lr_attri->o_typedescr = ls_entry-o_typedescr. lr_attri->o_typedescr = ls_entry-o_typedescr.
lr_attri->r_ref = ls_entry-r_ref. lr_attri->r_ref = ls_entry-r_ref.
ENDIF. ENDIF.
CASE lr_attri->o_typedescr->kind. CASE lr_attri->o_typedescr->kind.

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.
@ -27,38 +26,36 @@ CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
s_01 TYPE s_01, s_01 TYPE s_01,
END OF ty_s_struc. END OF ty_s_struc.
DATA ms_struc TYPE s_01 ##NEEDED. DATA ms_struc TYPE s_01 ##NEEDED.
DATA mv_value TYPE string ##NEEDED. DATA mv_value TYPE string ##NEEDED.
DATA mr_value TYPE REF TO data. DATA mr_value TYPE REF TO data.
DATA mr_struc TYPE REF TO s_01. DATA mr_struc TYPE REF TO s_01.
DATA mo_app TYPE REF TO ltcl_test_dissolve. DATA mo_app TYPE REF TO ltcl_test_dissolve.
DATA ms_struc2 TYPE ty_s_struc. DATA ms_struc2 TYPE ty_s_struc.
PRIVATE SECTION. PRIVATE SECTION.
METHODS test_init FOR TESTING RAISING cx_static_check. METHODS test_init FOR TESTING RAISING cx_static_check.
METHODS test_struc FOR TESTING RAISING cx_static_check. METHODS test_struc FOR TESTING RAISING cx_static_check.
METHODS test_dref FOR TESTING RAISING cx_static_check. METHODS test_dref FOR TESTING RAISING cx_static_check.
METHODS test_struc_dref FOR TESTING RAISING cx_static_check. METHODS test_struc_dref FOR TESTING RAISING cx_static_check.
METHODS test_oref FOR TESTING RAISING cx_static_check. METHODS test_oref FOR TESTING RAISING cx_static_check.
METHODS test_ref FOR TESTING RAISING cx_static_check. METHODS test_ref FOR TESTING RAISING cx_static_check.
METHODS test_oref_dref_struc FOR TESTING RAISING cx_static_check. METHODS test_oref_dref_struc FOR TESTING RAISING cx_static_check.
METHODS test_oref_dref FOR TESTING RAISING cx_static_check. METHODS test_oref_dref FOR TESTING RAISING cx_static_check.
METHODS test_dref_struc FOR TESTING RAISING cx_static_check. METHODS test_dref_struc FOR TESTING RAISING cx_static_check.
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( ).
@ -73,12 +70,11 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_init. METHOD test_init.
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( ).
lo_model->main( ). lo_model->main( ).
@ -93,14 +89,13 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_dref. METHOD test_dref.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
CREATE DATA lo_app->mr_struc. CREATE DATA lo_app->mr_struc.
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( ).
lo_model->main( ). lo_model->main( ).
@ -111,7 +106,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_oref. METHOD test_oref.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = NEW #( ). lo_app->mo_app = NEW #( ).
DATA(lo_app2) = NEW ltcl_test_dissolve( ). DATA(lo_app2) = NEW ltcl_test_dissolve( ).
lo_app2->mo_app = lo_app. lo_app2->mo_app = lo_app.
@ -120,9 +115,8 @@ 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( ).
lo_model->main( ). lo_model->main( ).
@ -137,11 +131,10 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_struc. METHOD test_struc.
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( ).
lo_model->main( ). lo_model->main( ).
@ -157,7 +150,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_dref_struc. METHOD test_dref_struc.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = NEW #( ). lo_app->mo_app = NEW #( ).
DATA(lo_app2) = NEW ltcl_test_dissolve( ). DATA(lo_app2) = NEW ltcl_test_dissolve( ).
lo_app2->mo_app = lo_app. lo_app2->mo_app = lo_app.
@ -165,9 +158,8 @@ 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( ).
lo_model->main( ). lo_model->main( ).
@ -181,7 +173,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_oref_dref. METHOD test_oref_dref.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = NEW #( ). lo_app->mo_app = NEW #( ).
DATA(lo_app2) = NEW ltcl_test_dissolve( ). DATA(lo_app2) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = lo_app2. lo_app->mo_app = lo_app2.
@ -189,9 +181,8 @@ 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( ).
lo_model->main( ). lo_model->main( ).
@ -203,7 +194,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
METHOD test_oref_dref_struc. METHOD test_oref_dref_struc.
DATA(lo_app) = NEW ltcl_test_dissolve( ). DATA(lo_app) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = NEW #( ). lo_app->mo_app = NEW #( ).
DATA(lo_app2) = NEW ltcl_test_dissolve( ). DATA(lo_app2) = NEW ltcl_test_dissolve( ).
lo_app->mo_app = lo_app2. lo_app->mo_app = lo_app2.
@ -211,9 +202,8 @@ 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( ).
lo_model->main( ). lo_model->main( ).
@ -226,17 +216,15 @@ 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( ).
lo_app->mo_app = NEW #( ). lo_app->mo_app = NEW #( ).
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( ).
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 ] ).
@ -49,8 +46,8 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
ENDIF. ENDIF.
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri)
WHERE bind_type = z2ui5_if_core_types=>cs_bind_type-two_way WHERE bind_type = z2ui5_if_core_types=>cs_bind_type-two_way
AND view = lv_view. AND view = lv_view.
TRY. TRY.
DATA(lo_val_front) = model->slice( lr_attri->name_client ). DATA(lo_val_front) = model->slice( lr_attri->name_client ).
@ -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,31 +129,28 @@ 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` ).
result-s_control-check_launchpad = xsdbool( result-s_front-search CS `scenario=LAUNCHPAD` result-s_control-check_launchpad = xsdbool( result-s_front-search CS `scenario=LAUNCHPAD`
OR result-s_front-pathname CS `/ui2/flp` OR result-s_front-pathname CS `/ui2/flp`
OR result-s_front-pathname CS `test/flpSandbox` OR result-s_front-pathname CS `test/flpSandbox`
). ).
IF result-s_front-id IS NOT INITIAL. IF result-s_front-id IS NOT INITIAL.
RETURN. RETURN.
@ -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 #( view = `MAIN`
id = `ID_NR` origin = `ORIGIN`
view = `MAIN` pathname = `PATHNAME`
origin = `ORIGIN` search = `SEARCH`
pathname = `PATHNAME` event = `BUTTON_POST` ) ).
search = `SEARCH`
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.
@ -14,18 +13,17 @@ CLASS z2ui5_cl_pop_error DEFINITION
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_error. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_error.
PROTECTED SECTION. PROTECTED SECTION.
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,27 +31,23 @@ 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' ).
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_file_dl DEFINITION CLASS z2ui5_cl_pop_file_dl DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -18,10 +17,10 @@ CLASS z2ui5_cl_pop_file_dl DEFINITION
RETURNING RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_file_dl. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_file_dl.
DATA mv_name TYPE string. DATA mv_name TYPE string.
DATA mv_type TYPE string. DATA mv_type TYPE string.
DATA mv_size TYPE string. DATA mv_size TYPE string.
DATA mv_value TYPE string. DATA mv_value TYPE string.
DATA mv_check_download TYPE abap_bool. DATA mv_check_download TYPE abap_bool.
METHODS result METHODS result
@ -29,51 +28,47 @@ CLASS z2ui5_cl_pop_file_dl DEFINITION
VALUE(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
PROTECTED SECTION. PROTECTED SECTION.
DATA check_confirmed TYPE abap_bool. DATA check_confirmed 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 icon TYPE string. DATA icon TYPE string.
DATA question_text TYPE string. DATA question_text TYPE string.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->question_text = i_text. r_result->question_text = i_text.
r_result->button_text_confirm = i_button_text_confirm. r_result->button_text_confirm = i_button_text_confirm.
r_result->button_text_cancel = i_button_text_cancel. r_result->button_text_cancel = i_button_text_cancel.
r_result->mv_type = i_type. r_result->mv_type = i_type.
r_result->mv_value = i_file. r_result->mv_value = i_file.
r_result->mv_size = strlen( i_file ) / 1000. r_result->mv_size = strlen( i_file ) / 1000.
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( ).
IF mv_check_download = abap_true. IF mv_check_download = abap_true.
@ -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,19 +95,16 @@ 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( text = `Download`
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = `Download` type = 'Emphasized' ).
press = client->_event( 'BUTTON_CONFIRM' )
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_file_ul DEFINITION CLASS z2ui5_cl_pop_file_ul DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -22,9 +21,10 @@ 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 mv_path TYPE string. DATA ms_result TYPE ty_s_result.
DATA mv_value TYPE string. DATA mv_path TYPE string.
DATA mv_value TYPE string.
DATA check_confirm_enabled TYPE abap_bool. DATA check_confirm_enabled TYPE abap_bool.
METHODS result METHODS result
@ -32,72 +32,64 @@ CLASS z2ui5_cl_pop_file_ul DEFINITION
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
DATA question_text TYPE string. DATA question_text TYPE string.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->question_text = i_text. r_result->question_text = i_text.
r_result->button_text_confirm = i_button_text_confirm. r_result->button_text_confirm = i_button_text_confirm.
r_result->button_text_cancel = i_button_text_cancel. r_result->button_text_cancel = i_button_text_cancel.
r_result->mv_path = i_path. r_result->mv_path = i_path.
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( text = button_text_confirm
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = button_text_confirm enabled = client->_bind( check_confirm_enabled )
press = client->_event( 'BUTTON_CONFIRM' ) type = 'Emphasized' ).
enabled = client->_bind( check_confirm_enabled )
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_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,70 +34,60 @@ 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' ).
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( key = '{N}'
)->item( text = '{N}'
key = '{N}'
text = '{N}'
)->get_parent( )->get_parent(
)->input( value = `{LOW}` )->input( value = `{LOW}`
submit = client->_event( 'BUTTON_CONFIRM' ) submit = client->_event( 'BUTTON_CONFIRM' )
@ -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,19 +107,16 @@ 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( text = 'OK'
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = 'OK' type = 'Emphasized' ).
press = client->_event( 'BUTTON_CONFIRM' )
type = 'Emphasized' ).
client->popup_display( lo_popup->stringify( ) ). client->popup_display( lo_popup->stringify( ) ).
ENDMETHOD. ENDMETHOD.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.
@ -139,11 +128,10 @@ 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( )
) INTO TABLE mt_filter. ) INTO TABLE mt_filter.
ENDLOOP. ENDLOOP.
@ -160,11 +148,10 @@ 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
) INTO TABLE ms_result-t_range. ) INTO TABLE ms_result-t_range.
ENDLOOP. ENDLOOP.

View File

@ -24,9 +24,10 @@ CLASS z2ui5_cl_pop_get_range_m DEFINITION
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
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.
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( ).
@ -72,9 +69,10 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
DATA(grid) = item->grid( class = `sapUiSmallMarginTop sapUiSmallMarginBottom sapUiSmallMarginBegin` ). DATA(grid) = item->grid( class = `sapUiSmallMarginTop sapUiSmallMarginBottom sapUiSmallMarginBegin` ).
grid->text( `{NAME}` ). grid->text( `{NAME}` ).
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.
@ -17,53 +16,48 @@ CLASS z2ui5_cl_pop_html DEFINITION
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_html. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_html.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->icon = i_icon. r_result->icon = i_icon.
r_result->html = i_html. r_result->html = i_html.
r_result->button_text_confirm = i_button_text. r_result->button_text_confirm = i_button_text.
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(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->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' ).
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_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
@ -30,70 +30,62 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
DATA question_text TYPE string. DATA question_text TYPE string.
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.
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 #( ).
r_result->title = title. r_result->title = title.
r_result->question_text = text. r_result->question_text = text.
r_result->button_text_confirm = button_text_confirm. r_result->button_text_confirm = button_text_confirm.
r_result->button_text_cancel = button_text_cancel. r_result->button_text_cancel = button_text_cancel.
r_result->ms_result-value = val. r_result->ms_result-value = val.
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( text = button_text_confirm
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = button_text_confirm type = 'Emphasized' ).
press = client->_event( 'BUTTON_CONFIRM' )
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_itab_json_dl DEFINITION CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -24,13 +23,13 @@ CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
DATA mr_itab TYPE REF TO data. DATA mr_itab TYPE REF TO data.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
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_result_confirmed TYPE abap_bool. DATA check_result_confirmed TYPE abap_bool.
@ -38,31 +37,26 @@ 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 #( ).
r_result->mr_itab = z2ui5_cl_util=>conv_copy_ref_data( itab ). r_result->mr_itab = z2ui5_cl_util=>conv_copy_ref_data( itab ).
r_result->title = i_title. r_result->title = i_title.
r_result->icon = i_icon. r_result->icon = i_icon.
r_result->button_text_confirm = i_button_text_confirm. r_result->button_text_confirm = i_button_text_confirm.
r_result->button_text_cancel = i_button_text_cancel. r_result->button_text_cancel = i_button_text_cancel.
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.
@ -23,15 +22,14 @@ CLASS z2ui5_cl_pop_js_loader DEFINITION
VALUE(result3) TYPE string. VALUE(result3) TYPE string.
DATA mv_is_open_ui5 TYPE abap_bool. DATA mv_is_open_ui5 TYPE abap_bool.
DATA ui5_gav TYPE string. DATA ui5_gav TYPE string.
PROTECTED SECTION. PROTECTED SECTION.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
DATA js TYPE string. DATA js TYPE string.
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.
@ -39,54 +37,46 @@ CLASS z2ui5_cl_pop_js_loader DEFINITION
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 #( ).
r_result->js = i_js. r_result->js = i_js.
r_result->user_command = i_result. r_result->user_command = i_result.
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.
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_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
@ -32,19 +32,17 @@ CLASS z2ui5_cl_pop_messages DEFINITION
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages.
PROTECTED SECTION. PROTECTED SECTION.
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 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 #( ).
@ -53,11 +51,11 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
LOOP AT lt_msg REFERENCE INTO DATA(lr_row). LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
DATA(ls_row) = VALUE ty_s_msg( ). DATA(ls_row) = VALUE ty_s_msg( ).
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ). ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
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,42 +65,34 @@ 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( type = `{TYPE}`
)->message_item( title = `{TITLE}`
type = `{TYPE}` subtitle = `{SUBTITLE}`
title = `{TITLE}` * description = `{MESSAGE}`
subtitle = `{SUBTITLE}` * groupname = `{GROUP}`
* description = `{MESSAGE}`
* groupname = `{GROUP}`
). ).
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,83 +20,75 @@ 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.
METHODS result METHODS result
RETURNING RETURNING
VALUE(result) TYPE ty_s_result. VALUE(result) TYPE ty_s_result.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
DATA question_text TYPE string. DATA question_text TYPE string.
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.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->button_text_confirm = i_button_text_confirm. r_result->button_text_confirm = i_button_text_confirm.
r_result->button_text_cancel = i_button_text_cancel. r_result->button_text_cancel = i_button_text_cancel.
r_result->mv_pdf = i_pdf. r_result->mv_pdf = i_pdf.
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 #( ( n = `src` v = mv_pdf )
t_prop = VALUE #( ( n = `height` v = `800px` )
( n = `src` v = mv_pdf ) ( n = `width` v = `99%` )
( n = `height` v = `800px` ) )
( 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( text = button_text_confirm
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = button_text_confirm type = 'Emphasized' ).
press = client->_event( 'BUTTON_CONFIRM' )
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,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
@ -28,8 +28,9 @@ CLASS z2ui5_cl_pop_table DEFINITION
PROTECTED SECTION. PROTECTED SECTION.
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,16 +70,14 @@ 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' ).
client->popup_display( popup->stringify( ) ). client->popup_display( popup->stringify( ) ).
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.
@ -133,7 +124,7 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
METHOD z2ui5_if_app~main. METHOD z2ui5_if_app~main.
me->client = client. me->client = client.
IF check_initialized = abap_false. IF check_initialized = abap_false.
check_initialized = abap_true. check_initialized = abap_true.

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.
@ -9,23 +8,25 @@ CLASS z2ui5_cl_pop_textedit DEFINITION
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
i_stretch_active TYPE abap_bool DEFAULT abap_true i_stretch_active TYPE abap_bool DEFAULT abap_true
i_textarea TYPE string OPTIONAL i_textarea TYPE string OPTIONAL
i_title TYPE string DEFAULT `Editor` i_title TYPE string DEFAULT `Editor`
i_check_editable TYPE abap_bool DEFAULT abap_false i_check_editable TYPE abap_bool DEFAULT abap_false
PREFERRED PARAMETER i_textarea PREFERRED PARAMETER i_textarea
RETURNING RETURNING
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_textedit. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_textedit.
DATA client TYPE REF TO z2ui5_if_client. DATA client TYPE REF TO z2ui5_if_client.
DATA mv_stretch_active TYPE abap_bool. DATA mv_stretch_active TYPE abap_bool.
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,49 +36,44 @@ 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 #( ).
r_result->mv_stretch_active = i_stretch_active. r_result->mv_stretch_active = i_stretch_active.
r_result->ms_result-text = i_textarea. r_result->ms_result-text = i_textarea.
r_result->mv_title = i_title. r_result->mv_title = i_title.
r_result->mv_check_editable = i_check_editable. r_result->mv_check_editable = i_check_editable.
ENDMETHOD. ENDMETHOD.
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'
)->content( )->content(
)->text_area( growing = abap_true )->text_area( growing = abap_true
editable = mv_check_editable editable = mv_check_editable
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( text = 'Confirm'
)->button( press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
text = 'Confirm' type = 'Emphasized' ).
press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
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.
@ -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.
@ -30,73 +29,65 @@ CLASS z2ui5_cl_pop_to_confirm DEFINITION
VALUE(result) TYPE abap_bool. VALUE(result) TYPE abap_bool.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
DATA question_text TYPE string. DATA question_text TYPE string.
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.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->icon = i_icon. r_result->icon = i_icon.
r_result->question_text = i_question_text. r_result->question_text = i_question_text.
r_result->button_text_confirm = i_button_text_confirm. r_result->button_text_confirm = i_button_text_confirm.
r_result->button_text_cancel = i_button_text_cancel. r_result->button_text_cancel = i_button_text_cancel.
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(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->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( text = button_text_confirm
)->button( press = client->_event( 'BUTTON_CONFIRM' )
text = button_text_confirm type = 'Emphasized' ).
press = client->_event( 'BUTTON_CONFIRM' )
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_to_inform DEFINITION CLASS z2ui5_cl_pop_to_inform DEFINITION
PUBLIC PUBLIC FINAL
FINAL CREATE PUBLIC.
CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
@ -17,52 +16,48 @@ CLASS z2ui5_cl_pop_to_inform DEFINITION
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_inform. VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_inform.
PROTECTED SECTION. PROTECTED SECTION.
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 icon TYPE string. DATA icon TYPE string.
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 #( ).
r_result->title = i_title. r_result->title = i_title.
r_result->icon = i_icon. r_result->icon = i_icon.
r_result->question_text = i_text. r_result->question_text = i_text.
r_result->button_text_confirm = i_button_text. r_result->button_text_confirm = i_button_text.
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(
)->vbox( 'sapUiMediumMargin' )->vbox( 'sapUiMediumMargin'
)->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' ).
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,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 display.
METHODS set_output_table.
METHODS on_event_confirm.
METHODS on_event_search.
METHODS on_event .
METHODS display .
METHODS set_output_table .
METHODS on_event_confirm .
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 #( ).
@ -74,43 +72,47 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
ELSE `Single select` ). ELSE `Single select` ).
ENDIF. ENDIF.
r_result->sort_field = i_sort_field. r_result->sort_field = i_sort_field.
r_result->descending = i_descending. r_result->descending = i_descending.
r_result->content_height = i_contentheight. r_result->content_height = i_contentheight.
r_result->content_width = i_contentwidth. r_result->content_width = i_contentwidth.
r_result->growing_threshold = i_growingthreshold. r_result->growing_threshold = i_growingthreshold.
r_result->multiselect = i_multiselect. r_result->multiselect = i_multiselect.
r_result->event_confirmed = i_event_confirmed. r_result->event_confirmed = i_event_confirmed.
r_result->event_canceled = i_event_canceled. r_result->event_canceled = i_event_canceled.
r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ). r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ).
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab. CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
CREATE DATA r_result->ms_result-table LIKE i_tab. CREATE DATA r_result->ms_result-table LIKE i_tab.
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 )
&& z2ui5_cl_util=>boolean_abap_2_json( me->descending ) && |', sorter : \{ path : '{ to_upper( sort_field ) }', descending : |
&& ` } }` && z2ui5_cl_util=>boolean_abap_2_json( me->descending )
cancel = client->_event( 'CANCEL' ) && | \} \}|
search = client->_event( val = 'SEARCH' t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) ) cancel = client->_event( 'CANCEL' )
confirm = client->_event( val = 'CONFIRM' t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) ) search = client->_event(
growing = abap_true val = 'SEARCH'
contentwidth = content_width t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) )
contentheight = content_height confirm = client->_event( val = 'CONFIRM'
growingthreshold = growing_threshold t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
title = title growing = abap_true
multiselect = multiselect ). contentwidth = content_width
contentheight = content_height
growingthreshold = growing_threshold
title = title
multiselect = multiselect ).
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> ).
DELETE lt_comp WHERE name = 'ZZSELKZ'. DELETE lt_comp WHERE name = 'ZZSELKZ'.
@ -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,23 +177,22 @@ 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.
FIELD-SYMBOLS <row2> TYPE any. FIELD-SYMBOLS <row2> TYPE any.
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
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 ).
@ -240,12 +242,13 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
METHOD on_event_confirm. METHOD on_event_confirm.
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
FIELD-SYMBOLS <row_selected> TYPE any. FIELD-SYMBOLS <row_selected> TYPE any.
FIELD-SYMBOLS <selkz> TYPE any. FIELD-SYMBOLS <selkz> TYPE any.
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,17 +280,17 @@ 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.
FIELD-SYMBOLS <tab_out_backup> TYPE STANDARD TABLE. FIELD-SYMBOLS <tab_out_backup> TYPE STANDARD TABLE.
FIELD-SYMBOLS <row2> TYPE any. FIELD-SYMBOLS <row2> TYPE any.
FIELD-SYMBOLS <field2> TYPE any. FIELD-SYMBOLS <field2> TYPE any.
DATA(lt_arg) = client->get( )-t_event_arg. DATA(lt_arg) = client->get( )-t_event_arg.
READ TABLE lt_arg INTO DATA(ls_arg) INDEX 1. READ TABLE lt_arg INTO DATA(ls_arg) INDEX 1.
@ -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

@ -6,13 +6,13 @@ INTERFACE z2ui5_if_app PUBLIC.
CONSTANTS author TYPE string VALUE 'https://github.com/oblomov-dev'. CONSTANTS author TYPE string VALUE 'https://github.com/oblomov-dev'.
CONSTANTS license TYPE string VALUE 'MIT'. CONSTANTS license TYPE string VALUE 'MIT'.
DATA id_draft TYPE string. DATA id_draft TYPE string.
DATA id_app TYPE string. DATA id_app TYPE string.
DATA check_initialized TYPE abap_bool. DATA check_initialized TYPE abap_bool.
DATA check_sticky TYPE abap_bool. DATA check_sticky TYPE abap_bool.
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,34 +155,34 @@ 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.
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.
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
VALUE(result) TYPE string. VALUE(result) TYPE string.
@ -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: