mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
parent
a0df28a4ab
commit
771f7f9d0b
36
.github/workflows/clean_up.yaml
vendored
36
.github/workflows/clean_up.yaml
vendored
|
@ -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"
|
|
@ -33,7 +33,7 @@
|
|||
"RemoveIncludeWarnings": "1",
|
||||
"RemoveEmptyLineAboveEndClass": "0",
|
||||
"AddEmptyLineAboveSections": "1",
|
||||
"RemoveEmptyLineBelowSections": "1",
|
||||
"RemoveEmptyLineBelowSections": "0",
|
||||
"MaxEmptyLines": "1",
|
||||
"AddLineBetweenDefTypes": "2"
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
CLASS z2ui5_cl_abap_api DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
* abap-api - Serving a Release & Version Independent ABAP Layer
|
||||
* version: '0.0.1'.
|
||||
* origin: https://github.com/oblomov-dev/abap-api
|
||||
* author: https://github.com/oblomov-dev
|
||||
* license: MIT.
|
||||
" abap-api - Serving a Release & Version Independent ABAP Layer
|
||||
" version: '0.0.1'.
|
||||
" origin: https://github.com/oblomov-dev/abap-api
|
||||
" author: https://github.com/oblomov-dev
|
||||
" license: MIT.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_fix_val,
|
||||
|
@ -78,7 +78,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
|
|||
short TYPE string,
|
||||
medium TYPE string,
|
||||
long TYPE string,
|
||||
END OF ty_s_data_element_text .
|
||||
END OF ty_s_data_element_text.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_class_descr,
|
||||
|
@ -180,9 +180,7 @@ CLASS z2ui5_cl_abap_api DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
||||
|
||||
METHOD context_check_abap_cloud.
|
||||
|
||||
TRY.
|
||||
|
@ -211,14 +209,11 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
lv_langu = langu.
|
||||
|
||||
CALL METHOD elemdescr->('GET_DDIC_FIXED_VALUES')
|
||||
EXPORTING
|
||||
p_langu = lv_langu
|
||||
RECEIVING
|
||||
p_fixed_values = lt_values
|
||||
EXCEPTIONS
|
||||
not_found = 1
|
||||
no_ddic_type = 2
|
||||
OTHERS = 3.
|
||||
EXPORTING p_langu = lv_langu
|
||||
RECEIVING p_fixed_values = lt_values
|
||||
EXCEPTIONS not_found = 1
|
||||
no_ddic_type = 2
|
||||
OTHERS = 3.
|
||||
|
||||
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'.
|
||||
CALL METHOD (lv_web_http_name)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
EXPORTING encoded = val
|
||||
RECEIVING decoded = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
EXPORTING encoded = val
|
||||
RECEIVING decoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD conv_encode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lv_web_http_name) = 'CL_WEB_HTTP_UTILITY'.
|
||||
CALL METHOD (lv_web_http_name)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
EXPORTING unencoded = val
|
||||
RECEIVING encoded = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
EXPORTING unencoded = val
|
||||
RECEIVING encoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD conv_get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
@ -288,34 +273,26 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
TRY.
|
||||
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
CALL METHOD (conv_codepage)=>create_in
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
RECEIVING instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
EXPORTING source = val
|
||||
RECEIVING result = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
EXPORTING encoding = 'UTF-8'
|
||||
RECEIVING conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
input = val
|
||||
IMPORTING
|
||||
data = result.
|
||||
EXPORTING input = val
|
||||
IMPORTING data = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD conv_get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
@ -323,34 +300,26 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
TRY.
|
||||
DATA(conv_codepage) = 'CL_ABAP_CONV_CODEPAGE'.
|
||||
CALL METHOD (conv_codepage)=>create_out
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
RECEIVING instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
EXPORTING source = val
|
||||
RECEIVING result = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
EXPORTING encoding = 'UTF-8'
|
||||
RECEIVING conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
data = val
|
||||
IMPORTING
|
||||
buffer = result.
|
||||
EXPORTING data = val
|
||||
IMPORTING buffer = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD source_get_method.
|
||||
|
||||
DATA object TYPE REF TO object.
|
||||
|
@ -365,45 +334,35 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>('CLASS')
|
||||
EXPORTING
|
||||
iv_name = lv_class
|
||||
RECEIVING
|
||||
ro_class = object.
|
||||
EXPORTING iv_name = lv_class
|
||||
RECEIVING ro_class = object.
|
||||
|
||||
ASSIGN ('OBJECT->IF_XCO_AO_CLASS~IMPLEMENTATION') TO <any>.
|
||||
ASSERT sy-subrc = 0.
|
||||
object = <any>.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_IMPLEMENTATION~METHOD')
|
||||
EXPORTING
|
||||
iv_name = lv_method
|
||||
RECEIVING
|
||||
ro_method = object.
|
||||
EXPORTING iv_name = lv_method
|
||||
RECEIVING ro_method = object.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_I_METHOD~CONTENT')
|
||||
RECEIVING
|
||||
ro_content = object.
|
||||
RECEIVING ro_content = object.
|
||||
|
||||
CALL METHOD object->('IF_XCO_CLAS_I_METHOD_CONTENT~GET_SOURCE')
|
||||
RECEIVING
|
||||
rt_source = result.
|
||||
RECEIVING rt_source = result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(lv_name) = 'CL_OO_FACTORY'.
|
||||
CALL METHOD (lv_name)=>('CREATE_INSTANCE')
|
||||
RECEIVING
|
||||
result = object.
|
||||
RECEIVING result = object.
|
||||
|
||||
CALL METHOD object->('IF_OO_CLIF_SOURCE_FACTORY~CREATE_CLIF_SOURCE')
|
||||
EXPORTING
|
||||
clif_name = lv_class
|
||||
RECEIVING
|
||||
result = object.
|
||||
EXPORTING clif_name = lv_class
|
||||
RECEIVING result = object.
|
||||
|
||||
CALL METHOD object->('IF_OO_CLIF_SOURCE~GET_SOURCE')
|
||||
IMPORTING
|
||||
source = lt_source.
|
||||
IMPORTING source = lt_source.
|
||||
|
||||
DATA(lv_check_method) = abap_false.
|
||||
LOOP AT lt_source INTO DATA(lv_source).
|
||||
|
@ -413,7 +372,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
lv_check_method = abap_false.
|
||||
ENDIF.
|
||||
|
||||
IF lv_source_upper CS `METHOD ` && lv_method.
|
||||
IF lv_source_upper CS |METHOD { lv_method }|.
|
||||
lv_check_method = abap_true.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
@ -430,23 +389,22 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_get_classes_impl_intf.
|
||||
|
||||
DATA obj TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
DATA lt_implementation_names TYPE string_table.
|
||||
TYPES BEGIN OF ty_s_impl.
|
||||
TYPES clsname TYPE c LENGTH 30.
|
||||
TYPES refclsname TYPE c LENGTH 30.
|
||||
TYPES clsname TYPE c LENGTH 30.
|
||||
TYPES refclsname TYPE c LENGTH 30.
|
||||
TYPES END OF ty_s_impl.
|
||||
DATA lt_impl TYPE STANDARD TABLE OF ty_s_impl WITH DEFAULT 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.
|
||||
DATA ls_key TYPE ty_s_key.
|
||||
DATA BEGIN OF ls_clskey.
|
||||
DATA clsname TYPE c LENGTH 30.
|
||||
DATA clsname TYPE c LENGTH 30.
|
||||
DATA END OF ls_clskey.
|
||||
DATA class TYPE REF TO data.
|
||||
|
||||
|
@ -456,10 +414,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>interface
|
||||
EXPORTING
|
||||
iv_name = ls_clskey-clsname
|
||||
RECEIVING
|
||||
ro_interface = obj.
|
||||
EXPORTING iv_name = ls_clskey-clsname
|
||||
RECEIVING ro_interface = obj.
|
||||
|
||||
ASSIGN obj->('IF_XCO_AO_INTERFACE~IMPLEMENTATIONS') TO <any>.
|
||||
IF sy-subrc <> 0.
|
||||
|
@ -474,13 +430,11 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
obj = <any>.
|
||||
|
||||
CALL METHOD obj->('IF_XCO_INTF_IMPLEMENTATIONS~GET_NAMES')
|
||||
RECEIVING
|
||||
rt_names = lt_implementation_names.
|
||||
RECEIVING rt_names = lt_implementation_names.
|
||||
|
||||
result = VALUE #(
|
||||
FOR implementation_name IN lt_implementation_names
|
||||
( classname = implementation_name
|
||||
description = rtti_get_class_descr_on_cloud( implementation_name ) ) ).
|
||||
result = VALUE #( FOR implementation_name IN lt_implementation_names
|
||||
( classname = implementation_name
|
||||
description = rtti_get_class_descr_on_cloud( implementation_name ) ) ).
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
|
@ -488,13 +442,10 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
DATA(lv_fm) = `SEO_INTERFACE_IMPLEM_GET_ALL`.
|
||||
CALL FUNCTION lv_fm
|
||||
EXPORTING
|
||||
intkey = ls_key
|
||||
IMPORTING
|
||||
impkeys = lt_impl
|
||||
EXCEPTIONS
|
||||
not_existing = 1
|
||||
OTHERS = 2.
|
||||
EXPORTING intkey = ls_key
|
||||
IMPORTING impkeys = lt_impl
|
||||
EXCEPTIONS not_existing = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -511,10 +462,8 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
lv_fm = `SEO_CLASS_READ`.
|
||||
CALL FUNCTION lv_fm
|
||||
EXPORTING
|
||||
clskey = ls_clskey
|
||||
IMPORTING
|
||||
class = <class>.
|
||||
EXPORTING clskey = ls_clskey
|
||||
IMPORTING class = <class>.
|
||||
|
||||
ASSIGN
|
||||
COMPONENT 'DESCRIPT'
|
||||
|
@ -532,20 +481,18 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_get_data_element_texts.
|
||||
|
||||
DATA:
|
||||
ddic_ref TYPE REF TO data,
|
||||
data_element TYPE REF TO object,
|
||||
content TYPE REF TO object,
|
||||
BEGIN OF ddic,
|
||||
reptext TYPE string,
|
||||
scrtext_s TYPE string,
|
||||
scrtext_m TYPE string,
|
||||
scrtext_l TYPE string,
|
||||
END OF ddic,
|
||||
exists TYPE abap_bool.
|
||||
DATA ddic_ref TYPE REF TO data.
|
||||
DATA data_element TYPE REF TO object.
|
||||
DATA content TYPE REF TO object.
|
||||
DATA: BEGIN OF ddic,
|
||||
reptext TYPE string,
|
||||
scrtext_s TYPE string,
|
||||
scrtext_m TYPE string,
|
||||
scrtext_l TYPE string,
|
||||
END OF ddic.
|
||||
DATA exists TYPE abap_bool.
|
||||
|
||||
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>).
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
cl_abap_elemdescr=>describe_by_name(
|
||||
EXPORTING
|
||||
p_name = data_element_name
|
||||
RECEIVING
|
||||
p_descr_ref = DATA(lo_typedescr)
|
||||
EXCEPTIONS
|
||||
OTHERS = 1 ).
|
||||
cl_abap_elemdescr=>describe_by_name( EXPORTING p_name = data_element_name
|
||||
RECEIVING p_descr_ref = DATA(lo_typedescr)
|
||||
EXCEPTIONS OTHERS = 1 ).
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -572,12 +515,10 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
DATA(data_descr) = CAST cl_abap_datadescr( lo_typedescr ).
|
||||
|
||||
CALL METHOD data_descr->('GET_DDIC_FIELD')
|
||||
RECEIVING
|
||||
p_flddescr = <ddic>
|
||||
EXCEPTIONS
|
||||
not_found = 1
|
||||
no_ddic_type = 2
|
||||
OTHERS = 3.
|
||||
RECEIVING p_flddescr = <ddic>
|
||||
EXCEPTIONS not_found = 1
|
||||
no_ddic_type = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -592,38 +533,30 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
TRY.
|
||||
DATA(xco_cp_abap_dictionary) = 'XCO_CP_ABAP_DICTIONARY'.
|
||||
CALL METHOD (xco_cp_abap_dictionary)=>('DATA_ELEMENT')
|
||||
EXPORTING
|
||||
iv_name = data_element_name
|
||||
RECEIVING
|
||||
ro_data_element = data_element.
|
||||
EXPORTING iv_name = data_element_name
|
||||
RECEIVING ro_data_element = data_element.
|
||||
|
||||
CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~EXISTS')
|
||||
RECEIVING
|
||||
rv_exists = exists.
|
||||
RECEIVING rv_exists = exists.
|
||||
|
||||
IF exists = abap_false.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CALL METHOD data_element->('IF_XCO_AD_DATA_ELEMENT~CONTENT')
|
||||
RECEIVING
|
||||
ro_content = content.
|
||||
RECEIVING ro_content = content.
|
||||
|
||||
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_HEADING_FIELD_LABEL')
|
||||
RECEIVING
|
||||
rs_heading_field_label = result-header.
|
||||
RECEIVING rs_heading_field_label = result-header.
|
||||
|
||||
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_SHORT_FIELD_LABEL')
|
||||
RECEIVING
|
||||
rs_short_field_label = result-short.
|
||||
RECEIVING rs_short_field_label = result-short.
|
||||
|
||||
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_MEDIUM_FIELD_LABEL')
|
||||
RECEIVING
|
||||
rs_medium_field_label = result-medium.
|
||||
RECEIVING rs_medium_field_label = result-medium.
|
||||
|
||||
CALL METHOD content->('IF_XCO_DTEL_CONTENT~GET_LONG_FIELD_LABEL')
|
||||
RECEIVING
|
||||
rs_long_field_label = result-long.
|
||||
RECEIVING rs_long_field_label = result-long.
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -631,7 +564,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD uuid_get_c22.
|
||||
|
||||
DATA lv_uuid TYPE c LENGTH 22.
|
||||
|
@ -641,15 +573,13 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
TRY.
|
||||
DATA(lv_classname) = `CL_SYSTEM_UUID`.
|
||||
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c22
|
||||
RECEIVING
|
||||
uuid = lv_uuid.
|
||||
RECEIVING uuid = lv_uuid.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING
|
||||
ev_guid_22 = lv_uuid.
|
||||
IMPORTING ev_guid_22 = lv_uuid.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
|
@ -678,7 +608,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD uuid_get_c32.
|
||||
DATA lv_uuid TYPE c LENGTH 32.
|
||||
|
||||
|
@ -687,15 +616,13 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
TRY.
|
||||
DATA(lv_classname) = `CL_SYSTEM_UUID`.
|
||||
CALL METHOD (lv_classname)=>if_system_uuid_static~create_uuid_c32
|
||||
RECEIVING
|
||||
uuid = lv_uuid.
|
||||
RECEIVING uuid = lv_uuid.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING
|
||||
ev_guid_32 = lv_uuid.
|
||||
IMPORTING ev_guid_32 = lv_uuid.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
|
@ -706,33 +633,27 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_get_class_descr_on_cloud.
|
||||
|
||||
DATA obj TYPE REF TO object.
|
||||
DATA content TYPE REF TO object.
|
||||
DATA obj TYPE REF TO object.
|
||||
DATA content TYPE REF TO object.
|
||||
DATA lv_classname TYPE c LENGTH 30.
|
||||
|
||||
lv_classname = i_classname.
|
||||
|
||||
DATA(xco_cp_abap) = 'XCO_CP_ABAP'.
|
||||
CALL METHOD (xco_cp_abap)=>('CLASS')
|
||||
EXPORTING
|
||||
iv_name = lv_classname
|
||||
RECEIVING
|
||||
ro_class = obj.
|
||||
EXPORTING iv_name = lv_classname
|
||||
RECEIVING ro_class = obj.
|
||||
|
||||
CALL METHOD obj->('IF_XCO_AO_CLASS~CONTENT')
|
||||
RECEIVING
|
||||
ro_content = content.
|
||||
RECEIVING ro_content = content.
|
||||
|
||||
CALL METHOD content->('IF_XCO_CLAS_CONTENT~GET_SHORT_DESCRIPTION')
|
||||
RECEIVING
|
||||
rv_short_description = result.
|
||||
RECEIVING rv_short_description = result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_get_t_attri_on_prem.
|
||||
|
||||
DATA structdescr TYPE REF TO cl_abap_structdescr.
|
||||
|
@ -762,8 +683,7 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
IF tabname IS INITIAL.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_abap_api
|
||||
EXPORTING
|
||||
val = `RTTI_BY_NAME_TAB_INITIAL`.
|
||||
EXPORTING val = `RTTI_BY_NAME_TAB_INITIAL`.
|
||||
ENDIF.
|
||||
|
||||
structdescr ?= cl_abap_structdescr=>describe_by_name( tabname ).
|
||||
|
@ -927,7 +847,6 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD rtti_get_t_dfies_by_table_name.
|
||||
|
||||
IF context_check_abap_cloud( ).
|
||||
|
@ -937,6 +856,5 @@ CLASS z2ui5_cl_abap_api IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
|
|
@ -1,26 +1,23 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_encoding FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_element_text FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_classes_impl_intf FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_func_get_uuid_32 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_func_get_uuid_22 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_encoding FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_element_text FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_classes_impl_intf FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_func_get_uuid_32.
|
||||
|
||||
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c32( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = 32
|
||||
exp = strlen( lv_uuid ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 32 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -28,9 +25,8 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_uuid) = z2ui5_cl_abap_api=>uuid_get_c22( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = 22
|
||||
exp = strlen( lv_uuid ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 22 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -42,9 +38,8 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
DATA(lv_xstring2) = z2ui5_cl_abap_api=>conv_decode_x_base64( lv_string2 ).
|
||||
DATA(lv_string3) = z2ui5_cl_abap_api=>conv_get_string_by_xstring( lv_xstring2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_string3
|
||||
exp = lv_string ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_string
|
||||
act = lv_string3 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -69,5 +64,4 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>assert_not_initial( mt_classes ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -35,7 +35,7 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
|
|||
|
||||
METHODS set_status
|
||||
IMPORTING
|
||||
code TYPE i
|
||||
!code TYPE i
|
||||
reason TYPE clike.
|
||||
|
||||
METHODS set_session_stateful
|
||||
|
@ -54,19 +54,20 @@ CLASS z2ui5_cl_abap_api_http DEFINITION PUBLIC.
|
|||
|
||||
METHODS set_header_field
|
||||
IMPORTING
|
||||
n TYPE clike
|
||||
v TYPE clike.
|
||||
!n TYPE clike
|
||||
v TYPE clike.
|
||||
|
||||
DATA mo_server_onprem TYPE REF TO object.
|
||||
DATA mo_request_cloud TYPE REF TO object.
|
||||
DATA mo_server_onprem TYPE REF TO object.
|
||||
DATA mo_request_cloud TYPE REF TO object.
|
||||
DATA mo_response_cloud TYPE REF TO object.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
||||
|
||||
CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
||||
METHOD delete_response_cookie.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
|
@ -80,8 +81,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('DELETE_COOKIE')
|
||||
EXPORTING
|
||||
name = lv_val.
|
||||
EXPORTING name = lv_val.
|
||||
|
||||
ELSE.
|
||||
|
||||
|
@ -97,6 +97,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
@ -105,10 +106,8 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('GET_COOKIE')
|
||||
EXPORTING
|
||||
name = lv_val
|
||||
IMPORTING
|
||||
value = result.
|
||||
EXPORTING name = lv_val
|
||||
IMPORTING value = result.
|
||||
|
||||
ELSE.
|
||||
|
||||
|
@ -126,6 +125,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
@ -134,18 +134,14 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('GET_HEADER_FIELD')
|
||||
EXPORTING
|
||||
name = lv_val
|
||||
RECEIVING
|
||||
value = result.
|
||||
EXPORTING name = lv_val
|
||||
RECEIVING value = result.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_HEADER_FIELD')
|
||||
EXPORTING
|
||||
i_name = lv_val
|
||||
RECEIVING
|
||||
r_value = result.
|
||||
EXPORTING i_name = lv_val
|
||||
RECEIVING r_value = result.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -164,16 +160,14 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('SET_HEADER_FIELD')
|
||||
EXPORTING
|
||||
name = lv_n
|
||||
value = lv_v.
|
||||
EXPORTING name = lv_n
|
||||
value = lv_v.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_HEADER_FIELD')
|
||||
EXPORTING
|
||||
i_name = lv_n
|
||||
i_value = lv_v.
|
||||
EXPORTING i_name = lv_n
|
||||
i_value = lv_v.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -205,14 +199,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('GET_CDATA')
|
||||
RECEIVING
|
||||
data = result.
|
||||
RECEIVING data = result.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_TEXT')
|
||||
RECEIVING
|
||||
r_value = result.
|
||||
RECEIVING r_value = result.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -229,14 +221,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('IF_HTTP_REQUEST~GET_METHOD')
|
||||
RECEIVING
|
||||
method = result.
|
||||
RECEIVING method = result.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_request_cloud->('IF_WEB_HTTP_REQUEST~GET_METHOD')
|
||||
RECEIVING
|
||||
r_value = result.
|
||||
RECEIVING r_value = result.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -253,14 +243,12 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('SET_CDATA')
|
||||
EXPORTING
|
||||
data = val.
|
||||
EXPORTING data = val.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_TEXT')
|
||||
EXPORTING
|
||||
i_text = val.
|
||||
EXPORTING i_text = val.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -270,6 +258,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_reason) = CONV string( reason ).
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
@ -278,16 +267,14 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
object = <any>.
|
||||
|
||||
CALL METHOD object->('IF_HTTP_RESPONSE~SET_STATUS')
|
||||
EXPORTING
|
||||
code = code
|
||||
reason = lv_reason.
|
||||
EXPORTING code = code
|
||||
reason = lv_reason.
|
||||
|
||||
ELSE.
|
||||
|
||||
CALL METHOD mo_response_cloud->('IF_WEB_HTTP_RESPONSE~SET_STATUS')
|
||||
EXPORTING
|
||||
i_code = code
|
||||
i_reason = lv_reason.
|
||||
EXPORTING i_code = code
|
||||
i_reason = lv_reason.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -298,8 +285,7 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
CALL METHOD mo_server_onprem->('SET_SESSION_STATEFUL')
|
||||
EXPORTING
|
||||
stateful = val.
|
||||
EXPORTING stateful = val.
|
||||
|
||||
ELSE.
|
||||
|
||||
|
@ -308,5 +294,4 @@ CLASS z2ui5_cl_abap_api_http IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
CLASS z2ui5_cx_abap_api DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM cx_no_check
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
INHERITING FROM cx_no_check FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -11,26 +10,23 @@ CLASS z2ui5_cx_abap_api DEFINITION
|
|||
x_root TYPE REF TO cx_root,
|
||||
* uuid TYPE string,
|
||||
text TYPE string,
|
||||
END OF ms_error .
|
||||
END OF ms_error.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!val TYPE any OPTIONAL
|
||||
val TYPE any OPTIONAL
|
||||
!previous TYPE REF TO cx_root OPTIONAL
|
||||
PREFERRED PARAMETER val.
|
||||
|
||||
METHODS if_message~get_text
|
||||
REDEFINITION.
|
||||
METHODS if_message~get_text REDEFINITION.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cx_abap_api IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||
|
||||
super->constructor( previous = previous ).
|
||||
|
@ -45,7 +41,6 @@ CLASS z2ui5_cx_abap_api IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD if_message~get_text.
|
||||
|
||||
IF ms_error-x_root IS NOT INITIAL.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL DANGEROUS.
|
||||
CLASS ltcl_unit_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_raise FOR TESTING RAISING cx_static_check.
|
||||
|
@ -8,21 +7,17 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_raise.
|
||||
|
||||
TRY.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_abap_api
|
||||
EXPORTING
|
||||
val = `this is an error text`.
|
||||
EXPORTING val = `this is an error text`.
|
||||
|
||||
CATCH z2ui5_cx_abap_api INTO DATA(lx).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lx->get_text( )
|
||||
exp = `this is an error text` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
|
||||
act = lx->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -40,13 +40,10 @@ CLASS lcl_range_to_sql DEFINITION
|
|||
RETURNING
|
||||
VALUE(out) TYPE string.
|
||||
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS lcl_range_to_sql IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mr_range = ir_range.
|
||||
|
@ -118,5 +115,4 @@ CLASS lcl_range_to_sql IMPLEMENTATION.
|
|||
with = `''`
|
||||
occ = 0 ) }'|.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -21,6 +21,7 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
|
|||
CLASS-DATA sv_var TYPE string.
|
||||
CLASS-DATA ss_tab TYPE ty_row.
|
||||
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
|
||||
|
||||
CLASS-METHODS class_constructor.
|
||||
|
||||
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.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
METHOD class_constructor.
|
||||
|
||||
sv_var = 1.
|
||||
|
@ -42,9 +44,9 @@ CLASS ltcl_test_app IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_unit_test_abap_api DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
|
@ -54,41 +56,40 @@ CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
|
|||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
METHODS test_assign 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_substring_after 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_replace 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_nested 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_classdescr 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_string_shift 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_xsdbool FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_xsdbool_nested FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_unit_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
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_check 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_c_trim 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_horizontal_tab 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_upper 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_substract_seconds 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_type_name 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_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_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_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_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_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_data 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_tab FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_url_param_set 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_tab 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_not 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 conv_copy_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_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_x_check_raise 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_check_unassign_inital 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 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_get_token_t_by_r_t FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD test_assign.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
|
@ -129,23 +129,22 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
lo_app->mv_val = `ABC`.
|
||||
|
||||
DATA(lv_assign) = `LO_APP->` && 'MV_VAL'.
|
||||
DATA(lv_assign) = |LO_APP->MV_VAL|.
|
||||
ASSIGN (lv_assign) TO <any>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = <any>
|
||||
exp = `ABC` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `ABC`
|
||||
act = <any> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_classdescr.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
|
||||
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` ].
|
||||
lv_test = lt_attri[ name = `MT_TAB` ].
|
||||
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 ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_ele->get_relative_name( )
|
||||
exp = `ABAP_BOOL` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `ABAP_BOOL`
|
||||
act = lo_ele->get_relative_name( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_substring_after.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = substring_after( val = 'this is a string' sub = 'a' )
|
||||
exp = ` string` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ` string`
|
||||
act = substring_after( val = 'this is a string'
|
||||
sub = 'a' ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_substring_before.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = substring_before( val = 'this is a string' sub = 'a' )
|
||||
exp = `this is ` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `this is `
|
||||
act = substring_before( val = 'this is a string'
|
||||
sub = 'a' ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_string_shift.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = shift_left( shift_right( val = ` string ` sub = ` ` ) )
|
||||
exp = `string` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `string`
|
||||
act = shift_left( shift_right( val = ` string `
|
||||
sub = ` ` ) ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -197,9 +195,11 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
with = 'ABC'
|
||||
occ = 0 ) ##NEEDED.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 )
|
||||
exp = `one ABC three` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `one ABC three`
|
||||
act = replace( val = `one two three`
|
||||
sub = `two`
|
||||
with = 'ABC'
|
||||
occ = 0 ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -221,9 +221,7 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
DATA(lv_xsdbool) = xsdbool( 1 = 1 ).
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_xsdbool
|
||||
exp = abap_false ).
|
||||
cl_abap_unit_assert=>assert_false( lv_xsdbool ).
|
||||
ENDIF.
|
||||
|
||||
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 ) ).
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_xsdbool
|
||||
exp = abap_false ).
|
||||
cl_abap_unit_assert=>assert_false( lv_xsdbool ).
|
||||
ENDIF.
|
||||
|
||||
IF check_input( abap_false ).
|
||||
|
@ -256,30 +252,21 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
result = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_boolean_check.
|
||||
|
||||
DATA(lv_bool) = xsdbool( 1 = 1 ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
|
||||
|
||||
lv_bool = xsdbool( 1 = 2 ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( abap_true )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( abap_true ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( abap_false )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( abap_false ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -341,13 +328,9 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
DATA lr_data TYPE REF TO data.
|
||||
GET REFERENCE OF lv_test INTO lr_data.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_ref_data( lr_data )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>rtti_check_ref_data( lr_data ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_ref_data( lv_test )
|
||||
exp = abap_false ).
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>rtti_check_ref_data( lv_test ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -362,17 +345,15 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <result> TYPE data.
|
||||
ASSIGN lr_test2->* TO <result>.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = <result>
|
||||
exp = lv_test ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_test
|
||||
act = <result> ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_boolean_abap_2_json.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_abap_2_json( `{ABCD}` )
|
||||
exp = `{ABCD}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{ABCD}`
|
||||
act = z2ui5_cl_util=>boolean_abap_2_json( `{ABCD}` ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -380,9 +361,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds(
|
||||
time = lv_time
|
||||
seconds = 60 * 60 * 4 ).
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds( time = lv_time
|
||||
seconds = 60 * 60 * 4 ).
|
||||
|
||||
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -411,33 +391,29 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_c_trim.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim( ` JsadfHHs ` )
|
||||
exp = `JsadfHHs` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `JsadfHHs`
|
||||
act = z2ui5_cl_util=>c_trim( ` JsadfHHs ` ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_c_trim_lower.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim_lower( ` JsadfHHs ` )
|
||||
exp = `jsadfhhs` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `jsadfhhs`
|
||||
act = z2ui5_cl_util=>c_trim_lower( ` JsadfHHs ` ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_c_trim_upper.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim_upper( ` JsadfHHs ` )
|
||||
exp = `JSADFHHS` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `JSADFHHS`
|
||||
act = z2ui5_cl_util=>c_trim_upper( ` JsadfHHs ` ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_func_get_user_tech.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = sy-uname
|
||||
exp = z2ui5_cl_util=>context_get_user_tech( ) ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = z2ui5_cl_util=>context_get_user_tech( )
|
||||
act = sy-uname ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( z2ui5_cl_util=>context_get_user_tech( ) ).
|
||||
|
||||
|
@ -453,7 +429,6 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_x_check_raise.
|
||||
|
||||
TRY.
|
||||
|
@ -470,7 +445,6 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_trans_json_any_2__w_struc.
|
||||
|
||||
TYPES:
|
||||
|
@ -479,62 +453,58 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( title = `test` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>json_stringify( ls_row )
|
||||
exp = `{"selected":false,"title":"test","value":""}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{"selected":false,"title":"test","value":""}`
|
||||
act = z2ui5_cl_util=>json_stringify( ls_row ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_url
|
||||
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world`
|
||||
act = lv_url ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_get.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_get(
|
||||
val = `app_start`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
val = `app_start`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_param
|
||||
exp = `z2ui5_cl_app_hello_world` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `z2ui5_cl_app_hello_world`
|
||||
act = lv_param ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
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(
|
||||
act = lt_param[ n = `sap-client` ]-v
|
||||
exp = `100` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `100`
|
||||
act = lt_param[ n = `sap-client` ]-v ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_param[ n = `app_start` ]-v
|
||||
exp = `z2ui5_cl_app_hello_world` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `z2ui5_cl_app_hello_world`
|
||||
act = lt_param[ n = `app_start` ]-v ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_set.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_set(
|
||||
name = `app_start`
|
||||
value = `z2ui5_cl_app_hello_world2`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
name = `app_start`
|
||||
value = `z2ui5_cl_app_hello_world2`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_param
|
||||
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world2` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world2`
|
||||
act = lv_param ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -551,9 +521,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_xsdbool) = VALUE xsdboolean( ).
|
||||
DATA(lv_name) = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_name
|
||||
exp = `XSDBOOLEAN` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `XSDBOOLEAN`
|
||||
act = lv_name ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -563,16 +532,13 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_type_kind) = z2ui5_cl_util=>rtti_get_type_kind( lv_string ).
|
||||
DATA lr_string TYPE REF TO string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_type_kind
|
||||
exp = cl_abap_typedescr=>typekind_string ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>typekind_string
|
||||
act = lv_type_kind ).
|
||||
|
||||
CREATE DATA lr_string.
|
||||
lv_type_kind = z2ui5_cl_util=>rtti_get_type_kind( lr_string ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_type_kind
|
||||
exp = cl_abap_typedescr=>typekind_dref ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>typekind_dref
|
||||
act = lv_type_kind ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -580,15 +546,10 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_string) = VALUE string( ).
|
||||
DATA lr_string TYPE REF TO string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string )
|
||||
exp = abap_false ).
|
||||
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string ) ).
|
||||
|
||||
CREATE DATA lr_string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lr_string )
|
||||
exp = abap_true ).
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>rtti_check_type_kind_dref( lr_string ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -605,15 +566,21 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>fail( ).
|
||||
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( ).
|
||||
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( ).
|
||||
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( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -680,11 +647,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( lo_obj ).
|
||||
|
||||
CLEAR lo_obj.
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = lv_xml
|
||||
IMPORTING
|
||||
any = lo_obj ).
|
||||
z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
|
||||
IMPORTING any = lo_obj ).
|
||||
|
||||
IF lo_obj IS NOT BOUND.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -735,19 +699,14 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = lv_xml
|
||||
IMPORTING
|
||||
any = ls_row2 ).
|
||||
z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
|
||||
IMPORTING any = ls_row2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row
|
||||
exp = ls_row2 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_row2
|
||||
act = ls_row ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_c_trim_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.
|
||||
|
||||
DATA(lt_range) = VALUE z2ui5_cl_util=>ty_t_range(
|
||||
( sign = 'I' option = 'EQ' low = `table` high = `` )
|
||||
DATA(lt_range) = VALUE z2ui5_cl_util=>ty_t_range( ( sign = 'I' option = 'EQ' low = `table` high = `` )
|
||||
).
|
||||
|
||||
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(
|
||||
( key = `=table` text = `=table` visible = 'X' selkz = '' editable = 'X' )
|
||||
( key = `=table` text = `=table` visible = 'X' selkz = '' editable = 'X' )
|
||||
).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_result
|
||||
exp = lt_exp
|
||||
cl_abap_unit_assert=>assert_equals( exp = lt_exp
|
||||
act = lt_result
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -798,11 +755,10 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
value2 TYPE string,
|
||||
END OF ty_struc.
|
||||
|
||||
DATA
|
||||
BEGIN OF ms_struc2.
|
||||
INCLUDE TYPE ty_struc.
|
||||
INCLUDE TYPE ty_struc_incl.
|
||||
DATA END OF ms_struc2.
|
||||
DATA BEGIN OF ms_struc2.
|
||||
INCLUDE TYPE ty_struc.
|
||||
INCLUDE TYPE ty_struc_incl.
|
||||
DATA END OF 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 ) ).
|
||||
|
@ -812,5 +768,4 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
CLASS z2ui5_cx_util_error DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM cx_no_check
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
INHERITING FROM cx_no_check FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -11,26 +10,23 @@ CLASS z2ui5_cx_util_error DEFINITION
|
|||
x_root TYPE REF TO cx_root,
|
||||
uuid TYPE string,
|
||||
text TYPE string,
|
||||
END OF ms_error .
|
||||
END OF ms_error.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!val TYPE any OPTIONAL
|
||||
val TYPE any OPTIONAL
|
||||
!previous TYPE REF TO cx_root OPTIONAL
|
||||
PREFERRED PARAMETER val.
|
||||
|
||||
METHODS if_message~get_text
|
||||
REDEFINITION.
|
||||
METHODS if_message~get_text REDEFINITION.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cx_util_error IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||
|
||||
super->constructor( previous = previous ).
|
||||
|
@ -45,7 +41,6 @@ CLASS z2ui5_cx_util_error IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD if_message~get_text.
|
||||
|
||||
IF ms_error-x_root IS NOT INITIAL.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL DANGEROUS.
|
||||
CLASS ltcl_unit_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_raise FOR TESTING RAISING cx_static_check.
|
||||
|
@ -8,21 +7,17 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_raise.
|
||||
|
||||
TRY.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `this is an error text`.
|
||||
EXPORTING val = `this is an error text`.
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO DATA(lx).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lx->get_text( )
|
||||
exp = `this is an error text` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
|
||||
act = lx->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_core_srv_draft DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -11,8 +10,8 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
|
|||
|
||||
METHODS create
|
||||
IMPORTING
|
||||
!draft TYPE z2ui5_if_types=>ty_s_draft
|
||||
!model_xml TYPE clike.
|
||||
draft TYPE z2ui5_if_types=>ty_s_draft
|
||||
model_xml TYPE clike.
|
||||
|
||||
METHODS read_draft
|
||||
IMPORTING
|
||||
|
@ -32,61 +31,52 @@ CLASS z2ui5_cl_core_srv_draft DEFINITION
|
|||
|
||||
METHODS read
|
||||
IMPORTING
|
||||
!id TYPE clike
|
||||
!check_load_app TYPE abap_bool DEFAULT abap_true
|
||||
!id TYPE clike
|
||||
check_load_app TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db.
|
||||
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_db.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD cleanup.
|
||||
|
||||
DATA(lv_four_hours_ago) = z2ui5_cl_util=>time_substract_seconds(
|
||||
time = z2ui5_cl_util=>time_get_timestampl( )
|
||||
seconds = 60 * 60 * 4 ).
|
||||
DATA(lv_four_hours_ago) = z2ui5_cl_util=>time_substract_seconds( time = z2ui5_cl_util=>time_get_timestampl( )
|
||||
seconds = 60 * 60 * 4 ).
|
||||
|
||||
DELETE FROM z2ui5_t_01 WHERE timestampl < @lv_four_hours_ago.
|
||||
COMMIT WORK.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create.
|
||||
|
||||
ASSERT draft-id IS NOT INITIAL.
|
||||
|
||||
DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db(
|
||||
id = draft-id
|
||||
id_prev = draft-id_prev
|
||||
id_prev_app = draft-id_prev_app
|
||||
id_prev_app_stack = draft-id_prev_app_stack
|
||||
uname = z2ui5_cl_util=>context_get_user_tech( )
|
||||
timestampl = z2ui5_cl_util=>time_get_timestampl( )
|
||||
data = model_xml ).
|
||||
DATA(ls_db) = VALUE z2ui5_if_core_types=>ty_s_db( id = draft-id
|
||||
id_prev = draft-id_prev
|
||||
id_prev_app = draft-id_prev_app
|
||||
id_prev_app_stack = draft-id_prev_app_stack
|
||||
uname = z2ui5_cl_util=>context_get_user_tech( )
|
||||
timestampl = z2ui5_cl_util=>time_get_timestampl( )
|
||||
data = model_xml ).
|
||||
|
||||
MODIFY z2ui5_t_01 FROM @ls_db.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
|
||||
EXPORTING val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
|
||||
ENDIF.
|
||||
COMMIT WORK AND WAIT.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read.
|
||||
|
||||
IF check_load_app = abap_true.
|
||||
|
||||
SELECT SINGLE *
|
||||
FROM z2ui5_t_01
|
||||
SELECT SINGLE * FROM z2ui5_t_01
|
||||
WHERE id = @id
|
||||
INTO @result ##SUBRC_OK.
|
||||
|
||||
|
@ -101,38 +91,31 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
|
||||
EXPORTING val = `NO_DRAFT_ENTRY_OF_PREVIOUS_REQUEST_FOUND`.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read_draft.
|
||||
|
||||
result = read( id ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read_info.
|
||||
|
||||
DATA(ls_db) = read(
|
||||
id = id
|
||||
check_load_app = abap_false ).
|
||||
DATA(ls_db) = read( id = id
|
||||
check_load_app = abap_false ).
|
||||
|
||||
result = CORRESPONDING #( ls_db ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD count_entries.
|
||||
|
||||
SELECT
|
||||
COUNT( * )
|
||||
SELECT COUNT( * )
|
||||
FROM z2ui5_t_01
|
||||
INTO @result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION LONG
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -8,12 +7,12 @@ CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
|||
METHODS test_create FOR TESTING.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -22,17 +21,14 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
|
||||
lo_draft->create(
|
||||
draft = VALUE #( id = `TEST_ID` )
|
||||
model_xml = `my xml`
|
||||
lo_draft->create( draft = VALUE #( id = `TEST_ID` )
|
||||
model_xml = `my xml`
|
||||
).
|
||||
|
||||
DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_db-data
|
||||
exp = `my xml` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `my xml`
|
||||
act = ls_db-data ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS z2ui5_cl_core_action DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
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_app TYPE REF TO z2ui5_cl_core_app.
|
||||
|
||||
DATA ms_actual TYPE z2ui5_if_core_types=>ty_s_actual.
|
||||
DATA ms_next TYPE z2ui5_if_core_types=>ty_s_next.
|
||||
DATA ms_actual TYPE z2ui5_if_core_types=>ty_s_actual.
|
||||
DATA ms_next TYPE z2ui5_if_core_types=>ty_s_next.
|
||||
|
||||
METHODS factory_system_startup
|
||||
RETURNING
|
||||
|
@ -47,10 +46,7 @@ CLASS z2ui5_cl_core_action DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mo_http_post = val.
|
||||
|
@ -58,7 +54,6 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_by_frontend.
|
||||
|
||||
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 ).
|
||||
ENDIF.
|
||||
|
||||
|
||||
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->ms_actual-view = mo_http_post->ms_request-s_front-view.
|
||||
|
||||
result->mo_app->model_json_parse(
|
||||
iv_view = mo_http_post->ms_request-s_front-view
|
||||
io_model = mo_http_post->ms_request-o_model ).
|
||||
result->mo_app->model_json_parse( iv_view = mo_http_post->ms_request-s_front-view
|
||||
io_model = mo_http_post->ms_request-o_model ).
|
||||
|
||||
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.
|
||||
|
@ -84,7 +77,6 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_first_start.
|
||||
|
||||
TRY.
|
||||
|
@ -100,14 +92,12 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `App with name ` && mo_http_post->ms_request-s_control-app_start && ` not found...`
|
||||
previous = x.
|
||||
EXPORTING val = |App with name { mo_http_post->ms_request-s_control-app_start } not found...|
|
||||
previous = x.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_stack_call.
|
||||
|
||||
result = prepare_app_stack( ms_next-o_app_call ).
|
||||
|
@ -115,12 +105,11 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_stack_leave.
|
||||
|
||||
result = prepare_app_stack( ms_next-o_app_leave ).
|
||||
|
||||
"check for new app?
|
||||
" check for new app?
|
||||
TRY.
|
||||
DATA(lo_draft) = NEW z2ui5_cl_core_srv_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.
|
||||
ENDTRY.
|
||||
|
||||
"check for already existing app?
|
||||
" check for already existing app?
|
||||
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 ).
|
||||
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( ).
|
||||
|
||||
val->id_draft = COND string( WHEN val->id_draft IS INITIAL
|
||||
THEN z2ui5_cl_util=>uuid_get_c32( )
|
||||
ELSE ms_next-o_app_leave->id_draft ).
|
||||
THEN z2ui5_cl_util=>uuid_get_c32( )
|
||||
ELSE ms_next-o_app_leave->id_draft ).
|
||||
|
||||
result = NEW #( mo_http_post ).
|
||||
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_popover-check_update_model = abap_false.
|
||||
|
||||
|
||||
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)
|
||||
result->ms_actual-event.
|
||||
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.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS
|
||||
first_test FOR TESTING RAISING cx_static_check.
|
||||
METHODS first_test FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_core_action DEFINITION LOCAL FRIENDS ltcl_test.
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ).
|
||||
DATA(lo_action) = NEW z2ui5_cl_core_action( lo_http ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,24 +1,23 @@
|
|||
CLASS z2ui5_cl_core_app DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES if_serializable_object.
|
||||
|
||||
DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA mo_app TYPE REF TO object.
|
||||
DATA ms_draft TYPE z2ui5_if_types=>ty_s_get-s_draft.
|
||||
DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA mo_app TYPE REF TO object.
|
||||
DATA ms_draft TYPE z2ui5_if_types=>ty_s_get-s_draft.
|
||||
|
||||
METHODS model_json_stringify
|
||||
RETURNING
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS model_json_parse
|
||||
IMPORTING
|
||||
!iv_view TYPE clike
|
||||
!io_model TYPE REF TO z2ui5_if_ajson.
|
||||
iv_view TYPE clike
|
||||
io_model TYPE REF TO z2ui5_if_ajson.
|
||||
|
||||
METHODS all_xml_stringify
|
||||
RETURNING
|
||||
|
@ -46,32 +45,25 @@ CLASS z2ui5_cl_core_app DEFINITION
|
|||
METHODS db_save.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD all_xml_parse.
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = xml
|
||||
IMPORTING
|
||||
any = result ).
|
||||
z2ui5_cl_util=>xml_parse( EXPORTING xml = xml
|
||||
IMPORTING any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD all_xml_stringify.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
lo_model->attri_before_save( ).
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
||||
|
@ -82,15 +74,13 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
CLEAR mt_attri->*.
|
||||
|
||||
DATA(lo_dissolver) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
DATA(lo_dissolver) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
lo_dissolver->main( ).
|
||||
lo_dissolver->main( ).
|
||||
lo_model = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
lo_model = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
lo_model->attri_before_save( ).
|
||||
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
@ -99,36 +89,32 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
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.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
CREATE DATA mt_attri.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
DATA(ls_db) = lo_db->read_draft( id ).
|
||||
result = all_xml_parse( ls_db-data ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
|
||||
lo_model->attri_after_load( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load_by_app.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
|
@ -137,15 +123,13 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
result->mo_app = app.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
|
||||
lo_model->attri_refs_update( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_save.
|
||||
|
||||
IF mo_app IS BOUND.
|
||||
|
@ -154,24 +138,20 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
lo_db->create(
|
||||
draft = ms_draft
|
||||
model_xml = all_xml_stringify( ) ).
|
||||
lo_db->create( draft = ms_draft
|
||||
model_xml = all_xml_stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD model_json_parse.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
lo_json_mapper->model_front_to_back(
|
||||
view = iv_view
|
||||
t_attri = mt_attri
|
||||
model = io_model ).
|
||||
lo_json_mapper->model_front_to_back( view = iv_view
|
||||
t_attri = mt_attri
|
||||
model = io_model ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD model_json_stringify.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
|
|
|
@ -1,43 +1,41 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS
|
||||
first_test FOR TESTING RAISING cx_static_check.
|
||||
METHODS first_test FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_core_app DEFINITION LOCAL FRIENDS ltcl_test.
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_action) = NEW z2ui5_cl_core_app( ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_db DEFINITION FINAL FOR TESTING
|
||||
DURATION LONG
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_test_db DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA mv_value TYPE string.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
METHODS test_db_save FOR TESTING.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test_db IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
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_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_app_user_db->mv_value
|
||||
exp = lo_app_user->mv_value ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_app_user->mv_value
|
||||
act = lo_app_user_db->mv_value ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
CLASS z2ui5_cl_core_client DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_client .
|
||||
INTERFACES z2ui5_if_client.
|
||||
|
||||
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.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mo_action = action.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~follow_up_action.
|
||||
|
||||
mo_action->ms_next-s_set-s_follow_up_action-custom_js = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~get.
|
||||
|
||||
result = VALUE #(
|
||||
event = mo_action->ms_actual-event
|
||||
check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad
|
||||
t_event_arg = mo_action->ms_actual-t_event_arg
|
||||
s_draft = CORRESPONDING #( mo_action->mo_app->ms_draft )
|
||||
check_on_navigated = mo_action->ms_actual-check_on_navigated
|
||||
s_config = CORRESPONDING #( mo_action->mo_http_post->ms_request-s_front )
|
||||
r_event_data = mo_action->ms_actual-r_data
|
||||
result = VALUE #( event = mo_action->ms_actual-event
|
||||
check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad
|
||||
t_event_arg = mo_action->ms_actual-t_event_arg
|
||||
s_draft = CORRESPONDING #( mo_action->mo_app->ms_draft )
|
||||
check_on_navigated = mo_action->ms_actual-check_on_navigated
|
||||
s_config = CORRESPONDING #( mo_action->mo_http_post->ms_request-s_front )
|
||||
r_event_data = mo_action->ms_actual-r_data
|
||||
).
|
||||
|
||||
TRY.
|
||||
|
@ -53,12 +48,13 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
LOOP AT lo_params->mt_json_tree
|
||||
REFERENCE INTO DATA(lr_comp)
|
||||
WHERE name = `1`.
|
||||
REFERENCE INTO DATA(lr_comp)
|
||||
WHERE name = `1`.
|
||||
|
||||
INSERT VALUE #(
|
||||
n = shift_left( val = shift_right( val = lr_comp->path sub = `/` ) sub = `/` )
|
||||
v = lr_comp->value ) INTO TABLE result-t_comp_params.
|
||||
INSERT VALUE #( n = shift_left( val = shift_right( val = lr_comp->path
|
||||
sub = `/` )
|
||||
sub = `/` )
|
||||
v = lr_comp->value ) INTO TABLE result-t_comp_params.
|
||||
ENDLOOP.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -85,7 +81,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~message_box_display.
|
||||
|
||||
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 ).
|
||||
lv_type = to_lower( lv_type ).
|
||||
DATA(lv_title) = SWITCH #( lt_msg[ 1 ]-type WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success` WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
|
||||
DATA(lv_title) = SWITCH #( lt_msg[ 1 ]-type
|
||||
WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success`
|
||||
WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
|
||||
ELSEIF lines( lt_msg ) > 1.
|
||||
lv_text = | { lines( lt_msg ) } Messages found: |.
|
||||
DATA(lv_details) = `<ul>`.
|
||||
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.
|
||||
lv_details = lv_details && |</ul>|.
|
||||
lv_details = |{ lv_details }</ul>|.
|
||||
IF title IS INITIAL.
|
||||
lv_title = SWITCH #( lt_msg[ 1 ]-type WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success` WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
lv_title = SWITCH #( lt_msg[ 1 ]-type
|
||||
WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success`
|
||||
WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
ENDIF.
|
||||
lv_type = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ).
|
||||
ELSE.
|
||||
|
@ -134,28 +132,25 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
lv_type = 'show'.
|
||||
ENDIF.
|
||||
|
||||
mo_action->ms_next-s_set-s_msg_box = VALUE #(
|
||||
text = lv_text
|
||||
type = lv_type
|
||||
title = lv_title
|
||||
styleclass = styleclass
|
||||
onclose = onclose
|
||||
actions = actions
|
||||
emphasizedaction = emphasizedaction
|
||||
initialfocus = initialfocus
|
||||
textdirection = textdirection
|
||||
icon = icon
|
||||
details = lv_details
|
||||
closeonnavigation = closeonnavigation
|
||||
mo_action->ms_next-s_set-s_msg_box = VALUE #( text = lv_text
|
||||
type = lv_type
|
||||
title = lv_title
|
||||
styleclass = styleclass
|
||||
onclose = onclose
|
||||
actions = actions
|
||||
emphasizedaction = emphasizedaction
|
||||
initialfocus = initialfocus
|
||||
textdirection = textdirection
|
||||
icon = icon
|
||||
details = lv_details
|
||||
closeonnavigation = closeonnavigation
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~message_toast_display.
|
||||
|
||||
mo_action->ms_next-s_set-s_msg_toast = VALUE #(
|
||||
text = text
|
||||
mo_action->ms_next-s_set-s_msg_toast = VALUE #( text = text
|
||||
duration = duration
|
||||
width = width
|
||||
my = my
|
||||
|
@ -173,7 +168,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nav_app_call.
|
||||
|
||||
IF app IS NOT BOUND.
|
||||
|
@ -188,7 +182,6 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
result = app->id_app.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nav_app_leave.
|
||||
|
||||
IF app IS NOT SUPPLIED.
|
||||
|
@ -208,175 +201,149 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nest2_view_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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-id = id.
|
||||
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-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.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nest2_view_model_update.
|
||||
|
||||
mo_action->ms_next-s_set-s_view_nest2-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nest_view_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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-id = id.
|
||||
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-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.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~nest_view_model_update.
|
||||
|
||||
mo_action->ms_next-s_set-s_view_nest-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~popover_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_popover-check_destroy = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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-xml = xml.
|
||||
mo_action->ms_next-s_set-s_popover-open_by_id = by_id.
|
||||
mo_action->ms_next-s_set-s_popover-xml = xml.
|
||||
mo_action->ms_next-s_set-s_popover-open_by_id = by_id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~popover_model_update.
|
||||
|
||||
mo_action->ms_next-s_set-s_popover-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~popup_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_popup = VALUE #( check_destroy = abap_true ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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-xml = val.
|
||||
mo_action->ms_next-s_set-s_popup-xml = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~popup_model_update.
|
||||
|
||||
mo_action->ms_next-s_set-s_popup-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~view_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_view-check_destroy = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~view_display.
|
||||
|
||||
mo_action->ms_next-s_set-s_view-xml = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~view_model_update.
|
||||
|
||||
mo_action->ms_next-s_set-s_view-check_update_model = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~_bind.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
result = lo_bind->main(
|
||||
val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way
|
||||
config = VALUE #(
|
||||
path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_mapper = custom_mapper
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index ) ).
|
||||
result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way
|
||||
config = VALUE #( path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_mapper = custom_mapper
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~_bind_edit.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
result = lo_bind->main(
|
||||
val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
config = VALUE #(
|
||||
path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_filter_back = custom_filter_back
|
||||
custom_mapper = custom_mapper
|
||||
custom_mapper_back = custom_mapper_back
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index ) ).
|
||||
result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
config = VALUE #( path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_filter_back = custom_filter_back
|
||||
custom_mapper = custom_mapper
|
||||
custom_mapper_back = custom_mapper_back
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~_bind_local.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
result = lo_bind->main_local(
|
||||
val = val
|
||||
config = VALUE #(
|
||||
path_only = path
|
||||
custom_mapper = custom_mapper
|
||||
custom_filter = custom_filter ) ).
|
||||
result = lo_bind->main_local( val = val
|
||||
config = VALUE #( path_only = path
|
||||
custom_mapper = custom_mapper
|
||||
custom_filter = custom_filter ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~_event.
|
||||
|
||||
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
|
||||
result = lo_ui5->get_event(
|
||||
val = val
|
||||
t_arg = t_arg
|
||||
s_cnt = s_ctrl ).
|
||||
result = lo_ui5->get_event( val = val
|
||||
t_arg = t_arg
|
||||
s_cnt = s_ctrl ).
|
||||
|
||||
IF r_data IS NOT INITIAL.
|
||||
CREATE DATA mo_action->ms_next-r_data LIKE r_data.
|
||||
|
@ -385,24 +352,20 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_client~_event_client.
|
||||
|
||||
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
|
||||
result = lo_ui5->get_event_client(
|
||||
val = val
|
||||
t_arg = t_arg ).
|
||||
result = lo_ui5->get_event_client( val = val
|
||||
t_arg = t_arg ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `STATEFUL_ALREADY_ACTIVATED_ERROR`.
|
||||
EXPORTING val = `STATEFUL_ALREADY_ACTIVATED_ERROR`.
|
||||
ENDIF.
|
||||
IF stateful = abap_true.
|
||||
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 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_test_client DEFINITION FINAL FOR TESTING
|
||||
DURATION LONG
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_client DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
|
||||
|
||||
PRIVATE SECTION.
|
||||
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 ltcl_test_client IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
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.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_core_handler DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -33,10 +32,7 @@ CLASS z2ui5_cl_core_handler DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mv_request_json = val.
|
||||
|
@ -44,7 +40,6 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main.
|
||||
|
||||
main_begin( ).
|
||||
|
@ -54,14 +49,12 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDDO.
|
||||
|
||||
result = VALUE #(
|
||||
body = mv_response
|
||||
s_stateful = ms_response-s_front-params-s_stateful
|
||||
result = VALUE #( body = mv_response
|
||||
s_stateful = ms_response-s_front-params-s_stateful
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_begin.
|
||||
TRY.
|
||||
|
||||
|
@ -84,29 +77,26 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_end.
|
||||
|
||||
ms_response = VALUE #(
|
||||
s_front-params = mo_action->ms_next-s_set
|
||||
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 )
|
||||
ms_response = VALUE #( s_front-params = mo_action->ms_next-s_set
|
||||
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 )
|
||||
).
|
||||
|
||||
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_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_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_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_popup-xml IS NOT INITIAL
|
||||
OR ms_response-s_front-params-s_popover-xml IS NOT INITIAL.
|
||||
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_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_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_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_popup-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(
|
||||
attri = mo_action->mo_app->mt_attri
|
||||
app = mo_action->mo_app->mo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_action->mo_app->mt_attri
|
||||
app = mo_action->mo_app->mo_app ).
|
||||
lo_model->attri_refs_update( ).
|
||||
ms_response-model = mo_action->mo_app->model_json_stringify( ).
|
||||
|
||||
|
@ -125,7 +115,6 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_process.
|
||||
TRY.
|
||||
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
|
||||
CLASS ltcl_test_handler_post DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_handler_post DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS
|
||||
load_startup_app FOR TESTING RAISING cx_static_check.
|
||||
METHODS load_startup_app FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_core_handler DEFINITION LOCAL FRIENDS ltcl_test_handler_post.
|
||||
|
||||
CLASS ltcl_test_handler_post IMPLEMENTATION.
|
||||
|
||||
METHOD load_startup_app.
|
||||
|
||||
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_equals(
|
||||
act = lo_post->ms_request-s_front-origin
|
||||
exp = `ORIGIN` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `ORIGIN`
|
||||
act = lo_post->ms_request-s_front-origin ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_post->ms_request-s_front-pathname
|
||||
exp = `PATHNAME` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `PATHNAME`
|
||||
act = lo_post->ms_request-s_front-pathname ).
|
||||
|
||||
DATA(lo_startup) = CAST z2ui5_cl_app_startup( lo_post->mo_action->mo_app->mo_app ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -41,12 +41,11 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
||||
|
||||
METHOD attri_after_load.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
|
||||
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 ).
|
||||
|
||||
IF lr_attri->srtti_data IS NOT INITIAL.
|
||||
|
@ -104,9 +103,8 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_dissolve) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
DATA(lo_dissolve) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
DO 5 TIMES.
|
||||
|
||||
|
@ -137,9 +135,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
LOOP AT mt_attri->* ASSIGNING FIELD-SYMBOL(<ls_attri>).
|
||||
DATA(lv_name) = <ls_attri>-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>-view = lt_attri[ name = lv_name ]-view.
|
||||
<ls_attri>-view = lt_attri[ name = lv_name ]-view.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
RETURN.
|
||||
|
@ -152,7 +150,6 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
EXIT.
|
||||
ENDDO.
|
||||
|
||||
|
||||
"""""
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
|
@ -167,8 +164,7 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `DEREF_FAILED_TARGET_INITIAL`.
|
||||
EXPORTING val = `DEREF_FAILED_TARGET_INITIAL`.
|
||||
ENDIF.
|
||||
|
||||
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).
|
||||
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 ).
|
||||
|
||||
* TRY.
|
||||
|
@ -211,9 +207,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
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_table.
|
||||
AND lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_table.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
|
@ -224,7 +220,5 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
|
|
@ -1,58 +1,53 @@
|
|||
|
||||
CLASS ltcl_test_app2 DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_app2 DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value TYPE REF TO data.
|
||||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value 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.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app2 IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_app2 IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ltcl_test_search_attri DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_search_attri DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
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 third_test FOR TESTING RAISING cx_static_check.
|
||||
METHODS third_test FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS z2ui5_cl_core_srv_attri DEFINITION LOCAL FRIENDS ltcl_test_search_attri.
|
||||
|
||||
CLASS ltcl_test_search_attri IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app2( ).
|
||||
DATA lr_value TYPE REF TO data.
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( (
|
||||
r_ref = lr_value
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value )
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = lr_value
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value )
|
||||
) ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
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.
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( (
|
||||
r_ref = REF #( lo_app_client->mv_value )
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_value )
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = REF #( lo_app_client->mv_value )
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value )
|
||||
) ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
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 #( ).
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri(
|
||||
( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
|
||||
( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
|
||||
( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
|
||||
( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ).
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
|
||||
( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
|
||||
( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
|
||||
( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ).
|
||||
|
||||
DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ).
|
||||
IF lr_attri->r_ref <> lr_value.
|
||||
|
@ -105,13 +98,11 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test_app_sub DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_app_sub DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -122,61 +113,59 @@ CLASS ltcl_test_app_sub DEFINITION FINAL FOR TESTING
|
|||
METHODS constructor.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app_sub IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_app_sub IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app3 DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_test_app3 DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value TYPE REF TO string.
|
||||
* 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.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app3 IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_app3 IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
mo_app = NEW #( ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_get_attri DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_test_get_attri DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
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 third_test FOR TESTING RAISING cx_static_check.
|
||||
METHODS test4 FOR TESTING RAISING cx_static_check.
|
||||
METHODS third_test FOR TESTING RAISING cx_static_check.
|
||||
METHODS test4 FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_get_attri IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_get_attri IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app3( ).
|
||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
||||
DATA lr_value TYPE REF TO data.
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
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.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
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(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
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.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MR_VALUE->*` ).
|
||||
|
||||
|
@ -238,6 +224,4 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,50 +1,49 @@
|
|||
CLASS z2ui5_cl_core_srv_bind DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
DATA mo_app TYPE REF TO z2ui5_cl_core_app .
|
||||
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 mv_type TYPE string .
|
||||
DATA mo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
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 mv_type TYPE string.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!app TYPE REF TO z2ui5_cl_core_app .
|
||||
app TYPE REF TO z2ui5_cl_core_app.
|
||||
|
||||
METHODS main_local
|
||||
IMPORTING
|
||||
!val TYPE data
|
||||
!config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL
|
||||
val TYPE data
|
||||
config TYPE z2ui5_if_core_types=>ty_s_bind_config OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS main
|
||||
IMPORTING
|
||||
!val TYPE REF TO data
|
||||
val TYPE REF TO data
|
||||
!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
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS main_cell
|
||||
IMPORTING
|
||||
!val TYPE data
|
||||
val TYPE data
|
||||
!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
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS clear
|
||||
IMPORTING
|
||||
!val TYPE string.
|
||||
val TYPE string.
|
||||
|
||||
METHODS bind_tab_cell
|
||||
IMPORTING
|
||||
!iv_name TYPE string
|
||||
!i_val TYPE data
|
||||
iv_name TYPE string
|
||||
i_val TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
@ -62,17 +61,15 @@ CLASS z2ui5_cl_core_srv_bind DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD bind_tab_cell.
|
||||
|
||||
FIELD-SYMBOLS <ele> TYPE any.
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
FIELD-SYMBOLS <ele> TYPE any.
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
DATA lr_ref_in TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
|
||||
ASSIGN ms_config-tab->* TO <tab>.
|
||||
ASSIGN <tab>[ ms_config-tab_index ] TO <row>.
|
||||
|
||||
|
@ -84,7 +81,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
lr_ref_in = REF #( <ele> ).
|
||||
|
||||
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.
|
||||
ENDIF.
|
||||
|
||||
|
@ -96,13 +93,11 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD check_raise_existing.
|
||||
|
||||
IF mr_attri->bind_type <> mv_type.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>Binding Error - Two different binding types for same attribute used (` && mr_attri->name && `).`.
|
||||
EXPORTING val = |<p>Binding Error - Two different binding types for same attribute used ({ mr_attri->name }).|.
|
||||
ENDIF.
|
||||
|
||||
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 ).
|
||||
IF lv_name1 <> lv_name2.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>Binding Error - Two different mapper for same attribute used (` && mr_attri->name && `).`.
|
||||
EXPORTING val = |<p>Binding Error - Two different mapper for same attribute used ({ mr_attri->name }).|.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
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
|
||||
EXPORTING
|
||||
val = `<p>Binding Error - Two different mapper back for same attribute used (` && mr_attri->name && `).`.
|
||||
EXPORTING val = |<p>Binding Error - Two different mapper back for same attribute used ({ mr_attri->name }).|.
|
||||
ENDIF.
|
||||
|
||||
IF mr_attri->custom_filter IS BOUND AND mr_attri->custom_filter <> ms_config-custom_filter.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>Binding Error - Two different filter for same attribute used (` && mr_attri->name && `).`.
|
||||
EXPORTING val = |<p>Binding Error - Two different filter for same attribute used ({ mr_attri->name }).|.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD check_raise_new.
|
||||
|
||||
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.
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `<p>custom_filter_back used but it is not serializable, please use if_serializable_object`.
|
||||
EXPORTING val = `<p>custom_filter_back used but it is not serializable, please use if_serializable_object`.
|
||||
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
|
@ -157,18 +147,18 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear.
|
||||
|
||||
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 = val ]-check_dissolved = abap_false.
|
||||
mo_app->mt_attri->*[ name = lv_path ]-name_client = ``.
|
||||
mo_app->mt_attri->*[ name = lv_path ]-bind_type = ``.
|
||||
|
||||
LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2)
|
||||
WHERE name = lv_path.
|
||||
WHERE name = lv_path.
|
||||
CLEAR lr_bind2->r_ref.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -177,33 +167,35 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mo_app = app.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_client_name.
|
||||
|
||||
result = replace( val = mr_attri->name sub = `-` with = `/` occ = 0 ).
|
||||
result = replace( val = result sub = `>` with = `` occ = 0 ).
|
||||
result = replace( val = mr_attri->name
|
||||
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
|
||||
THEN `/` && z2ui5_if_core_types=>cs_ui5-two_way_model )
|
||||
&& `/` && result.
|
||||
THEN |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }| )
|
||||
&& |/{ result }|.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main.
|
||||
|
||||
IF z2ui5_cl_util=>check_bound_a_not_inital( config-tab ).
|
||||
|
||||
result = main_cell(
|
||||
val = val
|
||||
type = type
|
||||
config = config ).
|
||||
result = main_cell( val = val
|
||||
type = type
|
||||
config = config ).
|
||||
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -211,9 +203,8 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ms_config = config.
|
||||
mv_type = type.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = mo_app->mt_attri
|
||||
app = mo_app->mo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_app->mt_attri
|
||||
app = mo_app->mo_app ).
|
||||
|
||||
lo_model->attri_refs_update( ).
|
||||
|
||||
|
@ -227,44 +218,43 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDIF.
|
||||
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
|
||||
EXPORTING
|
||||
val = `<p>Name of variable not allowed - x is reserved word - use anoter name for your attribute`.
|
||||
EXPORTING val = `<p>Name of variable not allowed - x is reserved word - use anoter name for your attribute`.
|
||||
|
||||
ENDIF.
|
||||
|
||||
IF ms_config-path_only = abap_false.
|
||||
result = `{` && result && `}`.
|
||||
result = |\{{ result }\}|.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_cell.
|
||||
|
||||
ms_config = config.
|
||||
mv_type = type.
|
||||
|
||||
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(
|
||||
iv_name = result
|
||||
i_val = val ).
|
||||
result = bind_tab_cell( iv_name = result
|
||||
i_val = val ).
|
||||
|
||||
IF ms_config-path_only = abap_false.
|
||||
result = `{` && result && `}`.
|
||||
result = |\{{ result }\}|.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_local.
|
||||
TRY.
|
||||
|
||||
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.
|
||||
lo_json = lo_json->map( config-custom_mapper ).
|
||||
|
@ -283,12 +273,12 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
name = lv_id
|
||||
json_bind_local = lo_json
|
||||
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 }|.
|
||||
|
||||
IF config-path_only = abap_false.
|
||||
result = `{` && result && `}`.
|
||||
result = |\{{ result }\}|.
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
@ -296,18 +286,18 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD update_model_attri.
|
||||
|
||||
mr_attri->bind_type = mv_type.
|
||||
mr_attri->view = ms_config-view.
|
||||
mr_attri->custom_filter = ms_config-custom_filter.
|
||||
mr_attri->bind_type = mv_type.
|
||||
mr_attri->view = ms_config-view.
|
||||
mr_attri->custom_filter = ms_config-custom_filter.
|
||||
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->view = COND #( WHEN ms_config-view IS INITIAL THEN z2ui5_if_client=>cs_view-main ELSE ms_config-view ).
|
||||
mr_attri->name_client = get_client_name( ).
|
||||
mr_attri->view = COND #( WHEN ms_config-view IS INITIAL
|
||||
THEN z2ui5_if_client=>cs_view-main
|
||||
ELSE ms_config-view ).
|
||||
mr_attri->name_client = get_client_name( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
CLASS ltcl_test_bind DEFINITION DEFERRED.
|
||||
CLASS z2ui5_cl_core_srv_bind DEFINITION LOCAL FRIENDS ltcl_test_bind.
|
||||
|
||||
CLASS ltcl_test_app DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_app DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -26,38 +25,40 @@ CLASS ltcl_test_app DEFINITION FINAL FOR TESTING
|
|||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value TYPE REF TO data ##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.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_bind DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
CLASS ltcl_test_bind DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
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_error_diff 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_one 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_error_diff 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_one FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_bind IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_bind IMPLEMENTATION.
|
||||
METHOD test_one_way_w_x_error.
|
||||
|
||||
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 ).
|
||||
|
||||
TRY.
|
||||
lo_bind->main(
|
||||
val = REF #( lo_app_client->xx )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
lo_bind->main( val = REF #( lo_app_client->xx )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
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(lv_bind) = lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_bind
|
||||
exp = `{/MV_VALUE}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MV_VALUE}`
|
||||
act = lv_bind ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -104,14 +102,12 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
TRY.
|
||||
lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
||||
|
@ -120,7 +116,6 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_two_way.
|
||||
|
||||
* 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(lv_bind) = lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
DATA(lv_bind2) = lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_bind
|
||||
exp = lv_bind2 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_bind2
|
||||
act = 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 ).
|
||||
|
||||
DATA(lv_bind2) = lo_bind->main(
|
||||
val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_bind2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test_main_structure DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_main_structure DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -210,16 +199,15 @@ CLASS ltcl_test_main_structure DEFINITION FINAL FOR TESTING
|
|||
|
||||
PRIVATE SECTION.
|
||||
|
||||
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_lev3 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_lev3 FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_one_way_lev4_long_name FOR TESTING RAISING cx_static_check.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_main_structure IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_main_structure IMPLEMENTATION.
|
||||
METHOD test_one_way_lev1.
|
||||
|
||||
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.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->ms_struc-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MS_STRUC/INPUT}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
lv_result = lo_bind->main(
|
||||
val = REF #( lo_test_app->ms_struc-input )
|
||||
config = VALUE #( path_only = abap_true )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
lv_result = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
|
||||
config = VALUE #( path_only = abap_true )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `/MS_STRUC/INPUT` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `/MS_STRUC/INPUT`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -253,13 +237,11 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->ms_struc-s_02-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MS_STRUC/S_02/INPUT}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -270,13 +252,11 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->ms_struc-s_02-s_03-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MS_STRUC/S_02/S_03/INPUT}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -287,26 +267,22 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->ms_struc-s_02-s_03-s_04-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-s_04-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MS_STRUC/S_02/S_03/S_04/INPUT}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/S_04/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test_main_object DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_main_object DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION MEDIUM.
|
||||
|
||||
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.
|
||||
|
||||
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_struc FOR TESTING RAISING cx_static_check.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_main_object IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_test_main_object IMPLEMENTATION.
|
||||
METHOD test_one_way_value.
|
||||
|
||||
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.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->mo_obj->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->mv_value )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MO_OBJ/MV_VALUE}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MV_VALUE}`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -362,14 +335,11 @@ CLASS ltcl_test_main_object IMPLEMENTATION.
|
|||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main(
|
||||
val = REF #( lo_test_app->mo_obj->ms_struc-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->ms_struc-input )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = `{/MO_OBJ/MS_STRUC/INPUT}` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MS_STRUC/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
CLASS z2ui5_cl_core_srv_diss DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
|
||||
!app TYPE REF TO object.
|
||||
attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
|
||||
app TYPE REF TO object.
|
||||
|
||||
METHODS main.
|
||||
|
||||
METHODS main .
|
||||
PROTECTED SECTION.
|
||||
|
||||
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.
|
||||
|
||||
METHODS diss_oref
|
||||
IMPORTING ir_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri
|
||||
RETURNING VALUE(result) TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
IMPORTING
|
||||
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
|
||||
IMPORTING
|
||||
name TYPE string
|
||||
!name TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
|
||||
|
@ -45,10 +47,7 @@ CLASS z2ui5_cl_core_srv_diss DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
mt_attri = attri.
|
||||
|
@ -56,20 +55,17 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_new_entry.
|
||||
|
||||
result = VALUE z2ui5_if_core_types=>ty_s_attri( ).
|
||||
result-name = name.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
result = VALUE z2ui5_if_core_types=>ty_s_attri( ).
|
||||
result-name = name.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
result-r_ref = lo_model->attri_get_val_ref( name ).
|
||||
result-o_typedescr = cl_abap_datadescr=>describe_by_data_ref( result-r_ref ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD diss_dref.
|
||||
|
||||
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ).
|
||||
|
@ -92,10 +88,9 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
WHEN OTHERS.
|
||||
|
||||
ls_attri2-name = ir_attri->name && `->*`.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri(
|
||||
attri = mt_attri
|
||||
app = mo_app ).
|
||||
ls_attri2-name = |{ ir_attri->name }->*|.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
ls_attri2-r_ref = lo_model->attri_get_val_ref( ls_attri2-name ).
|
||||
INSERT ls_attri2 INTO TABLE result.
|
||||
|
||||
|
@ -103,7 +98,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD diss_oref.
|
||||
|
||||
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 ).
|
||||
|
||||
LOOP AT lt_attri REFERENCE INTO DATA(lr_attri)
|
||||
WHERE visibility = cl_abap_objectdescr=>public
|
||||
AND is_interface = abap_false
|
||||
AND is_constant = abap_false.
|
||||
WHERE visibility = cl_abap_objectdescr=>public
|
||||
AND is_interface = abap_false
|
||||
AND is_constant = abap_false.
|
||||
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 ).
|
||||
INSERT ls_new INTO TABLE result.
|
||||
|
||||
|
@ -128,14 +122,13 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD diss_struc.
|
||||
|
||||
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 ).
|
||||
ELSE.
|
||||
lv_name = ir_attri->name && `-`.
|
||||
lv_name = |{ ir_attri->name }-|.
|
||||
lr_ref = ir_attri->r_ref.
|
||||
ENDIF.
|
||||
|
||||
|
@ -148,7 +141,6 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main.
|
||||
|
||||
TRY.
|
||||
|
@ -170,12 +162,11 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_init.
|
||||
|
||||
IF mt_attri->* IS NOT INITIAL.
|
||||
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.
|
||||
IF sy-subrc = 0.
|
||||
RETURN.
|
||||
|
@ -188,21 +179,20 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main_run.
|
||||
|
||||
DATA(lt_attri_new) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
WHERE check_dissolved = abap_false
|
||||
AND bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time.
|
||||
WHERE check_dissolved = abap_false
|
||||
AND bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time.
|
||||
|
||||
lr_attri->check_dissolved = abap_true.
|
||||
|
||||
IF lr_attri->o_typedescr IS NOT BOUND.
|
||||
DATA(ls_entry) = create_new_entry( lr_attri->name ).
|
||||
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.
|
||||
|
||||
CASE lr_attri->o_typedescr->kind.
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
CLASS ltcl_test_dissolve DEFINITION DEFERRED.
|
||||
CLASS z2ui5_cl_core_srv_diss DEFINITION LOCAL FRIENDS ltcl_test_dissolve.
|
||||
|
||||
CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test_dissolve DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -27,38 +26,36 @@ CLASS ltcl_test_dissolve DEFINITION FINAL FOR TESTING
|
|||
s_01 TYPE s_01,
|
||||
END OF ty_s_struc.
|
||||
|
||||
DATA ms_struc TYPE s_01 ##NEEDED.
|
||||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value TYPE REF TO data.
|
||||
DATA mr_struc TYPE REF TO s_01.
|
||||
DATA mo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA ms_struc TYPE s_01 ##NEEDED.
|
||||
DATA mv_value TYPE string ##NEEDED.
|
||||
DATA mr_value TYPE REF TO data.
|
||||
DATA mr_struc TYPE REF TO s_01.
|
||||
DATA mo_app TYPE REF TO ltcl_test_dissolve.
|
||||
|
||||
DATA ms_struc2 TYPE ty_s_struc.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_init 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_struc_dref 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_oref_dref_struc 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_init 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_struc_dref 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_oref_dref_struc 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.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test_dissolve IMPLEMENTATION.
|
||||
|
||||
|
||||
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(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
|
||||
|
@ -73,12 +70,11 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
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(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -93,14 +89,13 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
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_value TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -111,7 +106,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
METHOD test_oref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
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.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app2 ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app2 ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -137,11 +131,10 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
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(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -157,7 +150,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
METHOD test_dref_struc.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
lo_app2->mo_app = lo_app.
|
||||
|
@ -165,9 +158,8 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
CREATE DATA lo_app->mr_struc.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -181,7 +173,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
METHOD test_oref_dref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = lo_app2.
|
||||
|
@ -189,9 +181,8 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
CREATE DATA lo_app2->mr_value TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -203,7 +194,7 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
METHOD test_oref_dref_struc.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = lo_app2.
|
||||
|
@ -211,9 +202,8 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
CREATE DATA lo_app->mo_app->mr_struc.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -226,17 +216,15 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_struc_dref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
CREATE DATA lo_app->mo_app->ms_struc2-r_ref TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss(
|
||||
attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -247,5 +235,4 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC2-R_REF->*` ] OPTIONAL ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
CLASS z2ui5_cl_core_srv_event DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS get_event
|
||||
IMPORTING
|
||||
!val TYPE clike OPTIONAL
|
||||
!t_arg TYPE string_table OPTIONAL
|
||||
!s_cnt TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL
|
||||
val TYPE clike OPTIONAL
|
||||
t_arg TYPE string_table OPTIONAL
|
||||
s_cnt TYPE z2ui5_if_types=>ty_s_event_control OPTIONAL
|
||||
PREFERRED PARAMETER val
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS get_event_client
|
||||
IMPORTING
|
||||
!val TYPE clike
|
||||
!t_arg TYPE string_table OPTIONAL
|
||||
val TYPE clike
|
||||
t_arg TYPE string_table OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
@ -34,20 +33,18 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
|
||||
|
||||
METHOD get_event.
|
||||
|
||||
result = |{ z2ui5_if_core_types=>cs_ui5-event_backend_function }(['{ val }'|.
|
||||
|
||||
IF s_cnt-check_allow_multi_req = abap_true.
|
||||
result = result && `,false,true`.
|
||||
result = |{ result },false,true|.
|
||||
ENDIF.
|
||||
|
||||
result = result && `]` && get_t_arg( t_arg ).
|
||||
result = |{ result }]{ get_t_arg( t_arg ) }|.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_event_client.
|
||||
|
||||
result = |{ z2ui5_if_core_types=>cs_ui5-event_frontend_function }('{ val }'|.
|
||||
|
@ -55,7 +52,6 @@ CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_t_arg.
|
||||
|
||||
IF val IS NOT INITIAL.
|
||||
|
@ -66,14 +62,14 @@ CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
|
|||
CONTINUE.
|
||||
ENDIF.
|
||||
IF lv_new(1) <> `$` AND lv_new(1) <> `{`.
|
||||
lv_new = `'` && lv_new && `'`.
|
||||
lv_new = |'{ lv_new }'|.
|
||||
ENDIF.
|
||||
result = result && `, ` && lv_new.
|
||||
result = |{ result }, { lv_new }|.
|
||||
ENDLOOP.
|
||||
|
||||
ENDIF.
|
||||
|
||||
result = result && `)`.
|
||||
result = |{ result })|.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,25 +1,24 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION LONG
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION LONG.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS event FOR TESTING.
|
||||
METHODS event FOR TESTING.
|
||||
METHODS event_backend FOR TESTING.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD event.
|
||||
|
||||
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA(lv_event) = lo_event->get_event( `POST` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_event
|
||||
exp = `.eB(['POST'])` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `.eB(['POST'])`
|
||||
act = lv_event ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -28,9 +27,8 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA(lv_event) = lo_event->get_event_client( z2ui5_if_client=>cs_event-popover_close ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_event
|
||||
exp = `.eF('POPOVER_CLOSE')` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `.eF('POPOVER_CLOSE')`
|
||||
act = lv_event ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,45 +1,42 @@
|
|||
CLASS z2ui5_cl_core_srv_json DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_ajson_filter .
|
||||
INTERFACES z2ui5_if_ajson_filter.
|
||||
|
||||
METHODS request_json_to_abap
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
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
|
||||
IMPORTING
|
||||
val TYPE z2ui5_if_core_types=>ty_s_response
|
||||
RETURNING
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS model_front_to_back
|
||||
IMPORTING
|
||||
view TYPE string
|
||||
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
|
||||
IMPORTING
|
||||
t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri
|
||||
RETURNING
|
||||
VALUE(result) TYPE string .
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD model_front_to_back.
|
||||
|
||||
IF line_exists( t_attri->*[ view = view ] ).
|
||||
|
@ -49,8 +46,8 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
WHERE bind_type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
AND view = lv_view.
|
||||
WHERE bind_type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
AND view = lv_view.
|
||||
TRY.
|
||||
|
||||
DATA(lo_val_front) = model->slice( lr_attri->name_client ).
|
||||
|
@ -71,19 +68,15 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
lo_val_front->to_abap(
|
||||
IMPORTING
|
||||
ev_container = <val> ).
|
||||
lo_val_front->to_abap( IMPORTING ev_container = <val> ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
z2ui5_cl_util=>x_raise( |JSON_PARSING_ERROR: { x->get_text( ) } | ).
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD model_back_to_front.
|
||||
TRY.
|
||||
|
||||
|
@ -91,9 +84,11 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
CASE lr_attri->bind_type.
|
||||
|
@ -105,10 +100,14 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
CONTINUE.
|
||||
ENDIF.
|
||||
* 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.
|
||||
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.
|
||||
ASSERT `` = `ERROR_UNKNOWN_BIND_MODE`.
|
||||
|
@ -118,7 +117,8 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ajson = ajson->filter( lr_attri->custom_filter ).
|
||||
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.
|
||||
|
||||
result = ajson_result->stringify( ).
|
||||
|
@ -129,31 +129,28 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD request_json_to_abap.
|
||||
TRY.
|
||||
|
||||
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( ).
|
||||
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 = lo_ajson->slice( `/S_FRONT` ).
|
||||
lo_ajson->to_abap(
|
||||
EXPORTING
|
||||
iv_corresponding = abap_true
|
||||
IMPORTING
|
||||
ev_container = result-s_front ).
|
||||
lo_ajson->to_abap( EXPORTING iv_corresponding = abap_true
|
||||
IMPORTING ev_container = result-s_front ).
|
||||
|
||||
result-s_front-o_comp_data = lo_ajson->slice( `/CONFIG/ComponentData` ).
|
||||
|
||||
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 `test/flpSandbox`
|
||||
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 `test/flpSandbox`
|
||||
).
|
||||
IF result-s_front-id IS NOT INITIAL.
|
||||
RETURN.
|
||||
|
@ -175,37 +172,36 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
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).
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = x.
|
||||
EXPORTING val = x.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD response_abap_to_json.
|
||||
TRY.
|
||||
|
||||
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( ) ).
|
||||
DATA(lv_frontend) = ajson_result->stringify( ).
|
||||
|
||||
result = `{` &&
|
||||
result = |\{| &&
|
||||
|"S_FRONT":{ lv_frontend },| &&
|
||||
|"MODEL":{ val-model }| &&
|
||||
`}`.
|
||||
|\}|.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_ajson_filter~keep_node.
|
||||
|
||||
rv_keep = abap_true.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
CLASS ltcl_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS request_json_to_abap FOR TESTING RAISING cx_static_check.
|
||||
|
@ -9,39 +8,32 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
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"` &&
|
||||
`,"VIEW":"MAIN","EVENT":"BUTTON_POST","T_EVENT_ARG":[]}}`.
|
||||
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":[]\}\}|.
|
||||
|
||||
DATA(lo_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
DATA(ls_result) = lo_mapper->request_json_to_abap( lv_payload ).
|
||||
|
||||
DATA(ls_exp) = VALUE z2ui5_if_core_types=>ty_s_request(
|
||||
s_front = VALUE #(
|
||||
id = `ID_NR`
|
||||
view = `MAIN`
|
||||
origin = `ORIGIN`
|
||||
pathname = `PATHNAME`
|
||||
search = `SEARCH`
|
||||
event = `BUTTON_POST` ) ).
|
||||
DATA(ls_exp) = VALUE z2ui5_if_core_types=>ty_s_request( s_front = VALUE #( id = `ID_NR`
|
||||
view = `MAIN`
|
||||
origin = `ORIGIN`
|
||||
pathname = `PATHNAME`
|
||||
search = `SEARCH`
|
||||
event = `BUTTON_POST` ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_result-s_front
|
||||
exp = ls_exp-s_front ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_exp-s_front
|
||||
act = ls_result-s_front ).
|
||||
|
||||
DATA(lt_tree) = VALUE z2ui5_if_ajson_types=>ty_nodes_ts( ).
|
||||
lt_tree = ls_result-o_model->mt_json_tree.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_tree[ name = `NAME` ]-value
|
||||
exp = `test` ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `test`
|
||||
act = lt_tree[ name = `NAME` ]-value ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lines( lt_tree )
|
||||
exp = 3 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3
|
||||
act = lines( lt_tree ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
CLASS z2ui5_cl_core_srv_util DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM z2ui5_cl_util
|
||||
CREATE PUBLIC .
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -19,37 +19,33 @@ CLASS z2ui5_cl_core_srv_util DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_srv_util IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
IF classname IS INITIAL.
|
||||
classname = rtti_get_classname_by_ref( client->get_app( ) ).
|
||||
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 ).
|
||||
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.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
DATA(ls_config) = client->get( )-s_config.
|
||||
result = ls_config-origin && `/sap/bc/adt/oo/classes/`
|
||||
&& rtti_get_classname_by_ref( client->get_app( ) ) && `/source/main`.
|
||||
result = |{ ls_config-origin }/sap/bc/adt/oo/classes/|
|
||||
&& |{ rtti_get_classname_by_ref( client->get_app( ) ) }/source/main|.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_app_xml DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,24 +9,23 @@ CLASS z2ui5_cl_app_app_xml DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_app_xml IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `<mvc:View controllerName="z2ui5.controller.App"` &&
|
||||
` xmlns:html="http://www.w3.org/1999/xhtml"` &&
|
||||
` xmlns:mvc="sap.ui.core.mvc" displayBlock="true"` &&
|
||||
` xmlns="sap.m">` &&
|
||||
` <App id="app">` &&
|
||||
` </App>` &&
|
||||
`</mvc:View>` &&
|
||||
`` &&
|
||||
``.
|
||||
result = |<mvc:View controllerName="z2ui5.controller.App"| &&
|
||||
| xmlns:html="http://www.w3.org/1999/xhtml"| &&
|
||||
| xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &&
|
||||
| xmlns="sap.m">| &&
|
||||
| <App id="app">| &&
|
||||
| </App>| &&
|
||||
|</mvc:View>| &&
|
||||
|| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_component_js DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,77 +9,76 @@ CLASS z2ui5_cl_app_component_js DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_component_js IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
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| &&
|
||||
`` && |\n| &&
|
||||
` ], function (UIComponent, models, DebugTool, Server, Log, VersionInfo) {` && |\n| &&
|
||||
` return UIComponent.extend("z2ui5.Component", {` && |\n| &&
|
||||
` metadata: {` && |\n| &&
|
||||
` manifest: "json"` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` init: async function () {` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` UIComponent.prototype.init.apply(this, arguments);` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` this.getRouter().initialize();` && |\n| &&
|
||||
` z2ui5.oRouter = this.getRouter();` && |\n| &&
|
||||
` this.setModel(models.createDeviceModel(), "device");` && |\n| &&
|
||||
` this._oLogger = Log.getLogger("abap2UI5");` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` z2ui5.oConfig = {};` && |\n| &&
|
||||
` z2ui5.oConfig.ComponentData = this.getComponentData();` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` try {` && |\n| &&
|
||||
` z2ui5.oLaunchpadService = await this.getService("ShellUIService");` && |\n| &&
|
||||
` } catch (e) {}` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` let oVersionInfo = await VersionInfo.load();` && |\n| &&
|
||||
` z2ui5.oConfig.UI5VersionInfo = {` && |\n| &&
|
||||
` version : oVersionInfo.version,` && |\n| &&
|
||||
` buildTimestamp : oVersionInfo.buildTimestamp,` && |\n| &&
|
||||
` gav : oVersionInfo.gav,` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` if (/iPad|iPhone/.test(navigator.platform)) {` && |\n| &&
|
||||
` window.addEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| &&
|
||||
` } else {` && |\n| &&
|
||||
` window.addEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` document.addEventListener("keydown", function (zEvent) {` && |\n| &&
|
||||
` if (zEvent?.key === "F12") {` && |\n| &&
|
||||
` new z2ui5.cc.DebugTool().show();` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` __beforeunload: function () {` && |\n| &&
|
||||
` window.removeEventListener("__beforeunload", this.__beforeunload.bind(this));` && |\n| &&
|
||||
` this.destroy();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` __pagehide: function () {` && |\n| &&
|
||||
` window.removeEventListener("__pagehide", this.__pagehide.bind(this));` && |\n| &&
|
||||
` this.destroy();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` exit: function () {` && |\n| &&
|
||||
` Server.endSession();` && |\n| &&
|
||||
` if (UIComponent.prototype.exit)` && |\n| &&
|
||||
` UIComponent.prototype.exit.apply(this, arguments);` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
`});` && |\n| &&
|
||||
`` && |\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| &&
|
||||
|| && |\n| &&
|
||||
| ], function (UIComponent, models, DebugTool, Server, Log, VersionInfo) \{| && |\n| &&
|
||||
| return UIComponent.extend("z2ui5.Component", \{| && |\n| &&
|
||||
| metadata: \{| && |\n| &&
|
||||
| manifest: "json"| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| init: async function () \{| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| UIComponent.prototype.init.apply(this, arguments);| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| this.getRouter().initialize();| && |\n| &&
|
||||
| z2ui5.oRouter = this.getRouter();| && |\n| &&
|
||||
| this.setModel(models.createDeviceModel(), "device");| && |\n| &&
|
||||
| this._oLogger = Log.getLogger("abap2UI5");| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| z2ui5.oConfig = \{\};| && |\n| &&
|
||||
| z2ui5.oConfig.ComponentData = this.getComponentData();| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| try \{| && |\n| &&
|
||||
| z2ui5.oLaunchpadService = await this.getService("ShellUIService");| && |\n| &&
|
||||
| \} catch (e) \{\}| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| let oVersionInfo = await VersionInfo.load();| && |\n| &&
|
||||
| z2ui5.oConfig.UI5VersionInfo = \{| && |\n| &&
|
||||
| version : oVersionInfo.version,| && |\n| &&
|
||||
| buildTimestamp : oVersionInfo.buildTimestamp,| && |\n| &&
|
||||
| gav : oVersionInfo.gav,| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| if (/iPad\|iPhone/.test(navigator.platform)) \{| && |\n| &&
|
||||
| window.addEventListener("__pagehide", this.__pagehide.bind(this));| && |\n| &&
|
||||
| \} else \{| && |\n| &&
|
||||
| window.addEventListener("__beforeunload", this.__beforeunload.bind(this));| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| document.addEventListener("keydown", function (zEvent) \{| && |\n| &&
|
||||
| if (zEvent?.key === "F12") \{| && |\n| &&
|
||||
| new z2ui5.cc.DebugTool().show();| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| __beforeunload: function () \{| && |\n| &&
|
||||
| window.removeEventListener("__beforeunload", this.__beforeunload.bind(this));| && |\n| &&
|
||||
| this.destroy();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| __pagehide: function () \{| && |\n| &&
|
||||
| window.removeEventListener("__pagehide", this.__pagehide.bind(this));| && |\n| &&
|
||||
| this.destroy();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| exit: function () \{| && |\n| &&
|
||||
| Server.endSession();| && |\n| &&
|
||||
| if (UIComponent.prototype.exit)| && |\n| &&
|
||||
| UIComponent.prototype.exit.apply(this, arguments);| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
|\});| && |\n| &&
|
||||
|| && |\n| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_debugtool_js DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,159 +9,158 @@ CLASS z2ui5_cl_app_debugtool_js DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_debugtool_js IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `sap.ui.define(["sap/ui/core/Control", "sap/ui/core/Fragment", "sap/ui/model/json/JSONModel"], (Control, Fragment, JSONModel) => {` && |\n| &&
|
||||
` "use strict";` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` return Control.extend("z2ui5.cc.DebugTool", {` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` //printer XML` && |\n| &&
|
||||
` prettifyXml: function (sourceXml) {` && |\n| &&
|
||||
` const xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');` && |\n| &&
|
||||
` var sParse = ``<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">` && |\n| &&
|
||||
` <xsl:strip-space elements="*" />` && |\n| &&
|
||||
` <xsl:template match="para[content-style][not(text())]">` && |\n| &&
|
||||
` <xsl:value-of select="normalize-space(.)" />` && |\n| &&
|
||||
` </xsl:template>` && |\n| &&
|
||||
` <xsl:template match="node()|@*">` && |\n| &&
|
||||
` <xsl:copy>` && |\n| &&
|
||||
` <xsl:apply-templates select="node()|@*" />` && |\n| &&
|
||||
` </xsl:copy>` && |\n| &&
|
||||
` </xsl:template>` && |\n| &&
|
||||
` <xsl:output indent="yes" />` && |\n| &&
|
||||
` </xsl:stylesheet>``;` && |\n| &&
|
||||
` sParse = sParse.replace(/>/g, unescape("%3E")).replace(/</g, unescape("%3C"));` && |\n| &&
|
||||
` const xsltDoc = new DOMParser().parseFromString(sParse, 'application/xml');` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` const xsltProcessor = new XSLTProcessor();` && |\n| &&
|
||||
` xsltProcessor.importStylesheet(xsltDoc);` && |\n| &&
|
||||
` const resultDoc = xsltProcessor.transformToDocument(xmlDoc);` && |\n| &&
|
||||
` const resultXml = new XMLSerializer().serializeToString(resultDoc);` && |\n| &&
|
||||
` return resultXml.replace(/>/g, ">").replace(/</g, "<");` && |\n| &&
|
||||
` }, onItemSelect: function (oEvent) {` && |\n| &&
|
||||
` const selItem = oEvent.getSource().getSelectedKey();` && |\n| &&
|
||||
` const oView = z2ui5?.oView;` && |\n| &&
|
||||
` const oResponse = z2ui5?.oResponse;` && |\n| &&
|
||||
` const displayEditor = this.displayEditor.bind(this);` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` switch (selItem) {` && |\n| &&
|
||||
` case 'CONFIG':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5.oConfig, null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'MODEL':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(oView?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'VIEW':` && |\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| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'PLAIN':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5.responseData, null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'REQUEST':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5.oBody, null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'POPUP':` && |\n| &&
|
||||
` displayEditor(oEvent, this.prettifyXml(oResponse?.PARAMS?.S_POPUP?.XML), 'xml');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'POPUP_MODEL':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5.oViewPopup.getModel().getData(), null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'POPOVER':` && |\n| &&
|
||||
` displayEditor(oEvent, oResponse?.PARAMS?.S_POPOVER?.XML, 'xml');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'POPOVER_MODEL':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewPopover?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'NEST1':` && |\n| &&
|
||||
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest?._xContent.outerHTML));` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'NEST1_MODEL':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'NEST2':` && |\n| &&
|
||||
` displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest2?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest2?._xContent.outerHTML));` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'NEST2_MODEL':` && |\n| &&
|
||||
` displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest2?.getModel()?.getData(), null, 3), 'json');` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'SOURCE':` && |\n| &&
|
||||
` const parent = oEvent.getSource().getParent();` && |\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 content = atob('PGlmcmFtZSBpZD0idGVzdCIgc3JjPSInICsgdXJsICsgJyIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjEyMDBweCIgLz4=').replace("' + url + '", url);` && |\n| &&
|
||||
` contentControl.setProperty("content", content);` && |\n| &&
|
||||
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
|
||||
` modelData.editor_visible = false;` && |\n| &&
|
||||
` modelData.source_visible = true;` && |\n| &&
|
||||
` oEvent.getSource().getModel().refresh();` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` displayEditor: function (oEvent, content, type, xcontent = "") {` && |\n| &&
|
||||
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
|
||||
` modelData.editor_visible = true;` && |\n| &&
|
||||
` modelData.source_visible = false;` && |\n| &&
|
||||
` modelData.isTemplating = content.includes("xmlns:template");` && |\n| &&
|
||||
` modelData.value = content;` && |\n| &&
|
||||
` modelData.previousValue = content;` && |\n| &&
|
||||
` modelData.xContent = xcontent;` && |\n| &&
|
||||
` modelData.type = type;` && |\n| &&
|
||||
` oEvent.getSource().getModel().refresh();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` onTemplatingPress: function (oEvent) {` && |\n| &&
|
||||
` const modelData = oEvent.getSource().getModel().oData;` && |\n| &&
|
||||
` modelData.value = oEvent.getSource().getPressed() ? modelData.xContent : modelData.previousValue;` && |\n| &&
|
||||
` oEvent.getSource().getModel().refresh();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` onClose: function () {` && |\n| &&
|
||||
` this.oDialog.close();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` async show() {` && |\n| &&
|
||||
` if (!this.oDialog) {` && |\n| &&
|
||||
` this.oDialog = await Fragment.load({` && |\n| &&
|
||||
` name: "z2ui5.cc.DebugTool",` && |\n| &&
|
||||
` controller: this,` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` const value = JSON.stringify(z2ui5.responseData, null, 3);` && |\n| &&
|
||||
` const oData = {` && |\n| &&
|
||||
` type: 'json',` && |\n| &&
|
||||
` source_visible: false,` && |\n| &&
|
||||
` editor_visible: true,` && |\n| &&
|
||||
` value: value,` && |\n| &&
|
||||
` xContent: '',` && |\n| &&
|
||||
` previousValue: value,` && |\n| &&
|
||||
` isTemplating: false,` && |\n| &&
|
||||
` templatingSource: false,` && |\n| &&
|
||||
` activeNest1: z2ui5?.oViewNest?.mProperties?.viewContent !== undefined,` && |\n| &&
|
||||
` activeNest2: z2ui5?.oViewNest2?.mProperties?.viewContent !== undefined,` && |\n| &&
|
||||
` activePopup: z2ui5?.oResponse?.PARAMS?.S_POPUP?.XML !== undefined,` && |\n| &&
|
||||
` activePopover: z2ui5?.oResponse?.PARAMS?.S_POPOVER?.XML !== undefined,` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
` const oModel = new JSONModel(oData);` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` this.oDialog.addStyleClass('dbg-ltr');` && |\n| &&
|
||||
` this.oDialog.setModel(oModel);` && |\n| &&
|
||||
` this.oDialog.open();` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
`});` && |\n| &&
|
||||
`` && |\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| &&
|
||||
|| && |\n| &&
|
||||
| return Control.extend("z2ui5.cc.DebugTool", \{| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| //printer XML| && |\n| &&
|
||||
| prettifyXml: function (sourceXml) \{| && |\n| &&
|
||||
| const xmlDoc = new DOMParser().parseFromString(sourceXml, 'application/xml');| && |\n| &&
|
||||
| var sParse = `<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">| && |\n| &&
|
||||
| <xsl:strip-space elements="*" />| && |\n| &&
|
||||
| <xsl:template match="para[content-style][not(text())]">| && |\n| &&
|
||||
| <xsl:value-of select="normalize-space(.)" />| && |\n| &&
|
||||
| </xsl:template>| && |\n| &&
|
||||
| <xsl:template match="node()\|@*">| && |\n| &&
|
||||
| <xsl:copy>| && |\n| &&
|
||||
| <xsl:apply-templates select="node()\|@*" />| && |\n| &&
|
||||
| </xsl:copy>| && |\n| &&
|
||||
| </xsl:template>| && |\n| &&
|
||||
| <xsl:output indent="yes" />| && |\n| &&
|
||||
| </xsl:stylesheet>`;| && |\n| &&
|
||||
| sParse = sParse.replace(/>/g, unescape("%3E")).replace(/</g, unescape("%3C"));| && |\n| &&
|
||||
| const xsltDoc = new DOMParser().parseFromString(sParse, 'application/xml');| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| const xsltProcessor = new XSLTProcessor();| && |\n| &&
|
||||
| xsltProcessor.importStylesheet(xsltDoc);| && |\n| &&
|
||||
| const resultDoc = xsltProcessor.transformToDocument(xmlDoc);| && |\n| &&
|
||||
| const resultXml = new XMLSerializer().serializeToString(resultDoc);| && |\n| &&
|
||||
| return resultXml.replace(/>/g, ">").replace(/</g, "<");| && |\n| &&
|
||||
| \}, onItemSelect: function (oEvent) \{| && |\n| &&
|
||||
| const selItem = oEvent.getSource().getSelectedKey();| && |\n| &&
|
||||
| const oView = z2ui5?.oView;| && |\n| &&
|
||||
| const oResponse = z2ui5?.oResponse;| && |\n| &&
|
||||
| const displayEditor = this.displayEditor.bind(this);| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| switch (selItem) \{| && |\n| &&
|
||||
| case 'CONFIG':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5.oConfig, null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'MODEL':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(oView?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'VIEW':| && |\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| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'PLAIN':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5.responseData, null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'REQUEST':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5.oBody, null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'POPUP':| && |\n| &&
|
||||
| displayEditor(oEvent, this.prettifyXml(oResponse?.PARAMS?.S_POPUP?.XML), 'xml');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'POPUP_MODEL':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5.oViewPopup.getModel().getData(), null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'POPOVER':| && |\n| &&
|
||||
| displayEditor(oEvent, oResponse?.PARAMS?.S_POPOVER?.XML, 'xml');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'POPOVER_MODEL':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5?.oViewPopover?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'NEST1':| && |\n| &&
|
||||
| displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest?._xContent.outerHTML));| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'NEST1_MODEL':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'NEST2':| && |\n| &&
|
||||
| displayEditor(oEvent, this.prettifyXml(z2ui5?.oViewNest2?.mProperties?.viewContent), 'xml', this.prettifyXml(z2ui5?.oViewNest2?._xContent.outerHTML));| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'NEST2_MODEL':| && |\n| &&
|
||||
| displayEditor(oEvent, JSON.stringify(z2ui5?.oViewNest2?.getModel()?.getData(), null, 3), 'json');| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| case 'SOURCE':| && |\n| &&
|
||||
| const parent = oEvent.getSource().getParent();| && |\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 content = atob('PGlmcmFtZSBpZD0idGVzdCIgc3JjPSInICsgdXJsICsgJyIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjEyMDBweCIgLz4=').replace("' + url + '", url);| && |\n| &&
|
||||
| contentControl.setProperty("content", content);| && |\n| &&
|
||||
| const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
|
||||
| modelData.editor_visible = false;| && |\n| &&
|
||||
| modelData.source_visible = true;| && |\n| &&
|
||||
| oEvent.getSource().getModel().refresh();| && |\n| &&
|
||||
| break;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| displayEditor: function (oEvent, content, type, xcontent = "") \{| && |\n| &&
|
||||
| const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
|
||||
| modelData.editor_visible = true;| && |\n| &&
|
||||
| modelData.source_visible = false;| && |\n| &&
|
||||
| modelData.isTemplating = content.includes("xmlns:template");| && |\n| &&
|
||||
| modelData.value = content;| && |\n| &&
|
||||
| modelData.previousValue = content;| && |\n| &&
|
||||
| modelData.xContent = xcontent;| && |\n| &&
|
||||
| modelData.type = type;| && |\n| &&
|
||||
| oEvent.getSource().getModel().refresh();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| onTemplatingPress: function (oEvent) \{| && |\n| &&
|
||||
| const modelData = oEvent.getSource().getModel().oData;| && |\n| &&
|
||||
| modelData.value = oEvent.getSource().getPressed() ? modelData.xContent : modelData.previousValue;| && |\n| &&
|
||||
| oEvent.getSource().getModel().refresh();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| onClose: function () \{| && |\n| &&
|
||||
| this.oDialog.close();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| async show() \{| && |\n| &&
|
||||
| if (!this.oDialog) \{| && |\n| &&
|
||||
| this.oDialog = await Fragment.load(\{| && |\n| &&
|
||||
| name: "z2ui5.cc.DebugTool",| && |\n| &&
|
||||
| controller: this,| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| const value = JSON.stringify(z2ui5.responseData, null, 3);| && |\n| &&
|
||||
| const oData = \{| && |\n| &&
|
||||
| type: 'json',| && |\n| &&
|
||||
| source_visible: false,| && |\n| &&
|
||||
| editor_visible: true,| && |\n| &&
|
||||
| value: value,| && |\n| &&
|
||||
| xContent: '',| && |\n| &&
|
||||
| previousValue: value,| && |\n| &&
|
||||
| isTemplating: false,| && |\n| &&
|
||||
| templatingSource: false,| && |\n| &&
|
||||
| activeNest1: z2ui5?.oViewNest?.mProperties?.viewContent !== undefined,| && |\n| &&
|
||||
| activeNest2: z2ui5?.oViewNest2?.mProperties?.viewContent !== undefined,| && |\n| &&
|
||||
| activePopup: z2ui5?.oResponse?.PARAMS?.S_POPUP?.XML !== undefined,| && |\n| &&
|
||||
| activePopover: z2ui5?.oResponse?.PARAMS?.S_POPOVER?.XML !== undefined,| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
| const oModel = new JSONModel(oData);| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| this.oDialog.addStyleClass('dbg-ltr');| && |\n| &&
|
||||
| this.oDialog.setModel(oModel);| && |\n| &&
|
||||
| this.oDialog.open();| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
|\});| && |\n| &&
|
||||
|| && |\n| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_debugtool_xml DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,121 +9,120 @@ CLASS z2ui5_cl_app_debugtool_xml DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_debugtool_xml IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `<core:FragmentDefinition` &&
|
||||
` xmlns="sap.m"` &&
|
||||
` xmlns:mvc="sap.ui.core.mvc"` &&
|
||||
` xmlns:core="sap.ui.core"` &&
|
||||
` xmlns:html="http://www.w3.org/1999/xhtml"` &&
|
||||
` xmlns:ce="sap.ui.codeeditor"` &&
|
||||
`>` &&
|
||||
` <Dialog` &&
|
||||
` title="abap2UI5 - DebugTool"` &&
|
||||
` stretch="true"` &&
|
||||
` >` &&
|
||||
` <IconTabHeader` &&
|
||||
` selectedKey="PLAIN"` &&
|
||||
` select="onItemSelect"` &&
|
||||
` >` &&
|
||||
` <items>` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Config"` &&
|
||||
` key="CONFIG"` &&
|
||||
` enabled="true"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Previous Request"` &&
|
||||
` key="REQUEST"` &&
|
||||
` enabled="true"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Response"` &&
|
||||
` key="PLAIN"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Source Code"` &&
|
||||
` key="SOURCE"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="View"` &&
|
||||
` key="VIEW"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="View Model"` &&
|
||||
` key="MODEL"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Popup"` &&
|
||||
` key="POPUP"` &&
|
||||
` enabled="{/activePopup}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Popup Model"` &&
|
||||
` key="POPUP_MODEL"` &&
|
||||
` enabled="{/activePopup}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Popover"` &&
|
||||
` key="POPOVER"` &&
|
||||
` enabled="{/activePopover}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Popover Model"` &&
|
||||
` key="POPOVER_MODEL"` &&
|
||||
` enabled="{/activePopover}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Nest1"` &&
|
||||
` key="NEST1"` &&
|
||||
` enabled="{/activeNest1}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Nest1 Model"` &&
|
||||
` key="NEST1_MODEL"` &&
|
||||
` enabled="{/activeNest1}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Nest2"` &&
|
||||
` key="NEST2"` &&
|
||||
` enabled="{/activeNest2}"` &&
|
||||
` />` &&
|
||||
` <IconTabFilter` &&
|
||||
` text="Nest2 Model"` &&
|
||||
` key="NEST2_MODEL"` &&
|
||||
` enabled="{/activeNest2}"` &&
|
||||
` />` &&
|
||||
` </items>` &&
|
||||
` </IconTabHeader>` &&
|
||||
` <VBox>` &&
|
||||
` <ToggleButton text="Source XML after Templating" visible="{/isTemplating}" pressed="{/templatingSource}" press="onTemplatingPress" />` &&
|
||||
` <ce:CodeEditor` &&
|
||||
` type="{/type}"` &&
|
||||
` value="{/value}"` &&
|
||||
` height="2000px"` &&
|
||||
` width="10000px"` &&
|
||||
` visible="{/editor_visible}"` &&
|
||||
` /></VBox>` &&
|
||||
` <VBox visible="{/source_visible}">` &&
|
||||
` <core:HTML/>` &&
|
||||
` </VBox>` &&
|
||||
` <endButton>` &&
|
||||
` <Button` &&
|
||||
` text="Close"` &&
|
||||
` press="onClose"` &&
|
||||
` />` &&
|
||||
` </endButton>` &&
|
||||
` </Dialog>` &&
|
||||
`</core:FragmentDefinition>` &&
|
||||
`` &&
|
||||
``.
|
||||
result = |<core:FragmentDefinition| &&
|
||||
| xmlns="sap.m"| &&
|
||||
| xmlns:mvc="sap.ui.core.mvc"| &&
|
||||
| xmlns:core="sap.ui.core"| &&
|
||||
| xmlns:html="http://www.w3.org/1999/xhtml"| &&
|
||||
| xmlns:ce="sap.ui.codeeditor"| &&
|
||||
|>| &&
|
||||
| <Dialog| &&
|
||||
| title="abap2UI5 - DebugTool"| &&
|
||||
| stretch="true"| &&
|
||||
| >| &&
|
||||
| <IconTabHeader| &&
|
||||
| selectedKey="PLAIN"| &&
|
||||
| select="onItemSelect"| &&
|
||||
| >| &&
|
||||
| <items>| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Config"| &&
|
||||
| key="CONFIG"| &&
|
||||
| enabled="true"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Previous Request"| &&
|
||||
| key="REQUEST"| &&
|
||||
| enabled="true"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Response"| &&
|
||||
| key="PLAIN"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Source Code"| &&
|
||||
| key="SOURCE"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="View"| &&
|
||||
| key="VIEW"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="View Model"| &&
|
||||
| key="MODEL"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Popup"| &&
|
||||
| key="POPUP"| &&
|
||||
| enabled="\{/activePopup\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Popup Model"| &&
|
||||
| key="POPUP_MODEL"| &&
|
||||
| enabled="\{/activePopup\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Popover"| &&
|
||||
| key="POPOVER"| &&
|
||||
| enabled="\{/activePopover\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Popover Model"| &&
|
||||
| key="POPOVER_MODEL"| &&
|
||||
| enabled="\{/activePopover\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Nest1"| &&
|
||||
| key="NEST1"| &&
|
||||
| enabled="\{/activeNest1\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Nest1 Model"| &&
|
||||
| key="NEST1_MODEL"| &&
|
||||
| enabled="\{/activeNest1\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Nest2"| &&
|
||||
| key="NEST2"| &&
|
||||
| enabled="\{/activeNest2\}"| &&
|
||||
| />| &&
|
||||
| <IconTabFilter| &&
|
||||
| text="Nest2 Model"| &&
|
||||
| key="NEST2_MODEL"| &&
|
||||
| enabled="\{/activeNest2\}"| &&
|
||||
| />| &&
|
||||
| </items>| &&
|
||||
| </IconTabHeader>| &&
|
||||
| <VBox>| &&
|
||||
| <ToggleButton text="Source XML after Templating" visible="\{/isTemplating\}" pressed="\{/templatingSource\}" press="onTemplatingPress" />| &&
|
||||
| <ce:CodeEditor| &&
|
||||
| type="\{/type\}"| &&
|
||||
| value="\{/value\}"| &&
|
||||
| height="2000px"| &&
|
||||
| width="10000px"| &&
|
||||
| visible="\{/editor_visible\}"| &&
|
||||
| /></VBox>| &&
|
||||
| <VBox visible="\{/source_visible\}">| &&
|
||||
| <core:HTML/>| &&
|
||||
| </VBox>| &&
|
||||
| <endButton>| &&
|
||||
| <Button| &&
|
||||
| text="Close"| &&
|
||||
| press="onClose"| &&
|
||||
| />| &&
|
||||
| </endButton>| &&
|
||||
| </Dialog>| &&
|
||||
|</core:FragmentDefinition>| &&
|
||||
|| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_index_html DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,51 +9,50 @@ CLASS z2ui5_cl_app_index_html DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_index_html IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `<!DOCTYPE html>` &&
|
||||
`<html lang="en">` &&
|
||||
`<head>` &&
|
||||
` <meta charset="UTF-8">` &&
|
||||
` <meta name="viewport" content="width=device-width, initial-scale=1.0">` &&
|
||||
` <meta http-equiv="X-UA-Compatible" content="IE=edge">` &&
|
||||
` <title></title>` &&
|
||||
` <style>` &&
|
||||
` html, body, body > div, #container, #container-uiarea {` &&
|
||||
` height: 100%;` &&
|
||||
` }` &&
|
||||
` </style>` &&
|
||||
` <script` &&
|
||||
` id="sap-ui-bootstrap"` &&
|
||||
` src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"` &&
|
||||
` data-sap-ui-theme="sap_horizon"` &&
|
||||
` data-sap-ui-resourceroots='{` &&
|
||||
` "z2ui5": "./"` &&
|
||||
` }'` &&
|
||||
` data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"` &&
|
||||
` data-sap-ui-compatVersion="edge"` &&
|
||||
` data-sap-ui-async="true"` &&
|
||||
` data-sap-ui-frameOptions="trusted"` &&
|
||||
` ></script>` &&
|
||||
`</head>` &&
|
||||
`<body class="sapUiBody sapUiSizeCompact" id="content">` &&
|
||||
` <div` &&
|
||||
` data-sap-ui-component` &&
|
||||
` data-name="z2ui5"` &&
|
||||
` data-id="container"` &&
|
||||
` data-settings='{"id" : "z2ui5"}'` &&
|
||||
` data-handle-validation="true"` &&
|
||||
` ></div>` &&
|
||||
`</body>` &&
|
||||
`</html>` &&
|
||||
``.
|
||||
result = |<!DOCTYPE html>| &&
|
||||
|<html lang="en">| &&
|
||||
|<head>| &&
|
||||
| <meta charset="UTF-8">| &&
|
||||
| <meta name="viewport" content="width=device-width, initial-scale=1.0">| &&
|
||||
| <meta http-equiv="X-UA-Compatible" content="IE=edge">| &&
|
||||
| <title></title>| &&
|
||||
| <style>| &&
|
||||
| html, body, body > div, #container, #container-uiarea \{| &&
|
||||
| height: 100%;| &&
|
||||
| \}| &&
|
||||
| </style>| &&
|
||||
| <script| &&
|
||||
| id="sap-ui-bootstrap"| &&
|
||||
| src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"| &&
|
||||
| data-sap-ui-theme="sap_horizon"| &&
|
||||
| data-sap-ui-resourceroots='\{| &&
|
||||
| "z2ui5": "./"| &&
|
||||
| \}'| &&
|
||||
| data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"| &&
|
||||
| data-sap-ui-compatVersion="edge"| &&
|
||||
| data-sap-ui-async="true"| &&
|
||||
| data-sap-ui-frameOptions="trusted"| &&
|
||||
| ></script>| &&
|
||||
|</head>| &&
|
||||
|<body class="sapUiBody sapUiSizeCompact" id="content">| &&
|
||||
| <div| &&
|
||||
| data-sap-ui-component| &&
|
||||
| data-name="z2ui5"| &&
|
||||
| data-id="container"| &&
|
||||
| data-settings='\{"id" : "z2ui5"\}'| &&
|
||||
| data-handle-validation="true"| &&
|
||||
| ></div>| &&
|
||||
|</body>| &&
|
||||
|</html>| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_manifest_json DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,160 +9,159 @@ CLASS z2ui5_cl_app_manifest_json DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_manifest_json IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `{` &&
|
||||
` "_version": "1.65.0",` &&
|
||||
` "sap.app": {` &&
|
||||
` "id": "z2ui5",` &&
|
||||
` "type": "application",` &&
|
||||
` "applicationVersion": {` &&
|
||||
` "version": "0.0.1"` &&
|
||||
` },` &&
|
||||
` "title": "{{appTitle}}",` &&
|
||||
` "description": "{{appDescription}}",` &&
|
||||
` "resources": "resources.json",` &&
|
||||
` "sourceTemplate": {` &&
|
||||
` "id": "@sap/generator-fiori:basic",` &&
|
||||
` "version": "1.15.0",` &&
|
||||
` "toolsId": "3a966e20-9635-4c28-8861-d1b66f79f1de"` &&
|
||||
` },` &&
|
||||
` "dataSources": {` &&
|
||||
` "mainService": {` &&
|
||||
` "uri": "/sap/bc/z2ui5",` &&
|
||||
` "type": "OData",` &&
|
||||
` "settings": {` &&
|
||||
` "annotations": [],` &&
|
||||
` "localUri": "localService/metadata.xml",` &&
|
||||
` "odataVersion": "2.0"` &&
|
||||
` }` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "crossNavigation": {` &&
|
||||
` "inbounds": {` &&
|
||||
` "z2ui5-display": {` &&
|
||||
` "semanticObject": "z2ui5",` &&
|
||||
` "action": "display",` &&
|
||||
` "title": "{{flpTitle}}",` &&
|
||||
` "signature": {` &&
|
||||
` "parameters": {},` &&
|
||||
` "additionalParameters": "allowed"` &&
|
||||
` }` &&
|
||||
` }` &&
|
||||
` }` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "sap.ui": {` &&
|
||||
` "technology": "UI5",` &&
|
||||
` "icons": {` &&
|
||||
` "icon": "",` &&
|
||||
` "favIcon": "",` &&
|
||||
` "phone": "",` &&
|
||||
` "phone@2": "",` &&
|
||||
` "tablet": "",` &&
|
||||
` "tablet@2": ""` &&
|
||||
` },` &&
|
||||
` "deviceTypes": {` &&
|
||||
` "desktop": true,` &&
|
||||
` "tablet": true,` &&
|
||||
` "phone": true` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "sap.ui5": {` &&
|
||||
` "flexEnabled": true,` &&
|
||||
` "dependencies": {` &&
|
||||
` "minUI5Version": "1.128.1",` &&
|
||||
` "libs": {` &&
|
||||
` "sap.m": {},` &&
|
||||
` "sap.ui.core": {}` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "contentDensities": {` &&
|
||||
` "compact": true,` &&
|
||||
` "cozy": true` &&
|
||||
` },` &&
|
||||
` "services": {` &&
|
||||
` "ShellUIService": {` &&
|
||||
` "factoryName": "sap.ushell.ui5service.ShellUIService"` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "models": {` &&
|
||||
` "": {` &&
|
||||
` "dataSource": "mainService",` &&
|
||||
` "preload": true,` &&
|
||||
` "settings": {}` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "resources": {` &&
|
||||
` "css": [` &&
|
||||
` {` &&
|
||||
` "uri": "css/style.css"` &&
|
||||
` }` &&
|
||||
` ]` &&
|
||||
` },` &&
|
||||
` "routing": {` &&
|
||||
` "config": {` &&
|
||||
` "routerClass": "sap.m.routing.Router",` &&
|
||||
` "viewType": "XML",` &&
|
||||
` "async": true,` &&
|
||||
` "viewPath": "z2ui5.view",` &&
|
||||
` "controlAggregation": "pages",` &&
|
||||
` "controlId": "app",` &&
|
||||
` "clearControlAggregation": false` &&
|
||||
` },` &&
|
||||
` "routes": [` &&
|
||||
` {` &&
|
||||
` "name": "RouteView1",` &&
|
||||
` "pattern": ":?query:",` &&
|
||||
` "target": [` &&
|
||||
` "TargetView1"` &&
|
||||
` ]` &&
|
||||
` },` &&
|
||||
` {` &&
|
||||
` "name": "RouteView2",` &&
|
||||
` "pattern": ":?query:",` &&
|
||||
` "target": [` &&
|
||||
` "TargetView2"` &&
|
||||
` ]` &&
|
||||
` }` &&
|
||||
` ],` &&
|
||||
` "targets": {` &&
|
||||
` "TargetView1": {` &&
|
||||
` "viewType": "XML",` &&
|
||||
` "transition": "flip",` &&
|
||||
` "clearControlAggregation": false,` &&
|
||||
` "viewId": "View1",` &&
|
||||
` "viewName": "View1"` &&
|
||||
` },` &&
|
||||
` "TargetView2": {` &&
|
||||
` "viewType": "XML",` &&
|
||||
` "transition": "flip",` &&
|
||||
` "clearControlAggregation": false,` &&
|
||||
` "viewId": "View2",` &&
|
||||
` "viewName": "View2"` &&
|
||||
` }` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "rootView": {` &&
|
||||
` "viewName": "z2ui5.view.App",` &&
|
||||
` "type": "XML",` &&
|
||||
` "async": true,` &&
|
||||
` "id": "App"` &&
|
||||
` }` &&
|
||||
` },` &&
|
||||
` "sap.cloud": {` &&
|
||||
` "public": true,` &&
|
||||
` "service": "z2ui5"` &&
|
||||
` }` &&
|
||||
`}` &&
|
||||
``.
|
||||
result = |\{| &&
|
||||
| "_version": "1.65.0",| &&
|
||||
| "sap.app": \{| &&
|
||||
| "id": "z2ui5",| &&
|
||||
| "type": "application",| &&
|
||||
| "applicationVersion": \{| &&
|
||||
| "version": "0.0.1"| &&
|
||||
| \},| &&
|
||||
| "title": "\{\{appTitle\}\}",| &&
|
||||
| "description": "\{\{appDescription\}\}",| &&
|
||||
| "resources": "resources.json",| &&
|
||||
| "sourceTemplate": \{| &&
|
||||
| "id": "@sap/generator-fiori:basic",| &&
|
||||
| "version": "1.15.0",| &&
|
||||
| "toolsId": "3a966e20-9635-4c28-8861-d1b66f79f1de"| &&
|
||||
| \},| &&
|
||||
| "dataSources": \{| &&
|
||||
| "mainService": \{| &&
|
||||
| "uri": "/sap/bc/z2ui5",| &&
|
||||
| "type": "OData",| &&
|
||||
| "settings": \{| &&
|
||||
| "annotations": [],| &&
|
||||
| "localUri": "localService/metadata.xml",| &&
|
||||
| "odataVersion": "2.0"| &&
|
||||
| \}| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "crossNavigation": \{| &&
|
||||
| "inbounds": \{| &&
|
||||
| "z2ui5-display": \{| &&
|
||||
| "semanticObject": "z2ui5",| &&
|
||||
| "action": "display",| &&
|
||||
| "title": "\{\{flpTitle\}\}",| &&
|
||||
| "signature": \{| &&
|
||||
| "parameters": \{\},| &&
|
||||
| "additionalParameters": "allowed"| &&
|
||||
| \}| &&
|
||||
| \}| &&
|
||||
| \}| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "sap.ui": \{| &&
|
||||
| "technology": "UI5",| &&
|
||||
| "icons": \{| &&
|
||||
| "icon": "",| &&
|
||||
| "favIcon": "",| &&
|
||||
| "phone": "",| &&
|
||||
| "phone@2": "",| &&
|
||||
| "tablet": "",| &&
|
||||
| "tablet@2": ""| &&
|
||||
| \},| &&
|
||||
| "deviceTypes": \{| &&
|
||||
| "desktop": true,| &&
|
||||
| "tablet": true,| &&
|
||||
| "phone": true| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "sap.ui5": \{| &&
|
||||
| "flexEnabled": true,| &&
|
||||
| "dependencies": \{| &&
|
||||
| "minUI5Version": "1.128.1",| &&
|
||||
| "libs": \{| &&
|
||||
| "sap.m": \{\},| &&
|
||||
| "sap.ui.core": \{\}| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "contentDensities": \{| &&
|
||||
| "compact": true,| &&
|
||||
| "cozy": true| &&
|
||||
| \},| &&
|
||||
| "services": \{| &&
|
||||
| "ShellUIService": \{| &&
|
||||
| "factoryName": "sap.ushell.ui5service.ShellUIService"| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "models": \{| &&
|
||||
| "": \{| &&
|
||||
| "dataSource": "mainService",| &&
|
||||
| "preload": true,| &&
|
||||
| "settings": \{\}| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "resources": \{| &&
|
||||
| "css": [| &&
|
||||
| \{| &&
|
||||
| "uri": "css/style.css"| &&
|
||||
| \}| &&
|
||||
| ]| &&
|
||||
| \},| &&
|
||||
| "routing": \{| &&
|
||||
| "config": \{| &&
|
||||
| "routerClass": "sap.m.routing.Router",| &&
|
||||
| "viewType": "XML",| &&
|
||||
| "async": true,| &&
|
||||
| "viewPath": "z2ui5.view",| &&
|
||||
| "controlAggregation": "pages",| &&
|
||||
| "controlId": "app",| &&
|
||||
| "clearControlAggregation": false| &&
|
||||
| \},| &&
|
||||
| "routes": [| &&
|
||||
| \{| &&
|
||||
| "name": "RouteView1",| &&
|
||||
| "pattern": ":?query:",| &&
|
||||
| "target": [| &&
|
||||
| "TargetView1"| &&
|
||||
| ]| &&
|
||||
| \},| &&
|
||||
| \{| &&
|
||||
| "name": "RouteView2",| &&
|
||||
| "pattern": ":?query:",| &&
|
||||
| "target": [| &&
|
||||
| "TargetView2"| &&
|
||||
| ]| &&
|
||||
| \}| &&
|
||||
| ],| &&
|
||||
| "targets": \{| &&
|
||||
| "TargetView1": \{| &&
|
||||
| "viewType": "XML",| &&
|
||||
| "transition": "flip",| &&
|
||||
| "clearControlAggregation": false,| &&
|
||||
| "viewId": "View1",| &&
|
||||
| "viewName": "View1"| &&
|
||||
| \},| &&
|
||||
| "TargetView2": \{| &&
|
||||
| "viewType": "XML",| &&
|
||||
| "transition": "flip",| &&
|
||||
| "clearControlAggregation": false,| &&
|
||||
| "viewId": "View2",| &&
|
||||
| "viewName": "View2"| &&
|
||||
| \}| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "rootView": \{| &&
|
||||
| "viewName": "z2ui5.view.App",| &&
|
||||
| "type": "XML",| &&
|
||||
| "async": true,| &&
|
||||
| "id": "App"| &&
|
||||
| \}| &&
|
||||
| \},| &&
|
||||
| "sap.cloud": \{| &&
|
||||
| "public": true,| &&
|
||||
| "service": "z2ui5"| &&
|
||||
| \}| &&
|
||||
|\}| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_models_js DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,35 +9,34 @@ CLASS z2ui5_cl_app_models_js DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_models_js IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `sap.ui.define([` && |\n| &&
|
||||
` "sap/ui/model/json/JSONModel",` && |\n| &&
|
||||
` "sap/ui/Device"` && |\n| &&
|
||||
`],` && |\n| &&
|
||||
`function (JSONModel, Device) {` && |\n| &&
|
||||
` "use strict";` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` return {` && |\n| &&
|
||||
` /**` && |\n| &&
|
||||
` * Provides runtime info for the device the UI5 app is running on as JSONModel` && |\n| &&
|
||||
` */` && |\n| &&
|
||||
` createDeviceModel: function () {` && |\n| &&
|
||||
` var oModel = new JSONModel(Device);` && |\n| &&
|
||||
` oModel.setDefaultBindingMode("OneWay");` && |\n| &&
|
||||
` return oModel;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
`` && |\n| &&
|
||||
`});` && |\n| &&
|
||||
``.
|
||||
result = |sap.ui.define([| && |\n| &&
|
||||
| "sap/ui/model/json/JSONModel",| && |\n| &&
|
||||
| "sap/ui/Device"| && |\n| &&
|
||||
|],| && |\n| &&
|
||||
|function (JSONModel, Device) \{| && |\n| &&
|
||||
| "use strict";| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| return \{| && |\n| &&
|
||||
| /**| && |\n| &&
|
||||
| * Provides runtime info for the device the UI5 app is running on as JSONModel| && |\n| &&
|
||||
| */| && |\n| &&
|
||||
| createDeviceModel: function () \{| && |\n| &&
|
||||
| var oModel = new JSONModel(Device);| && |\n| &&
|
||||
| oModel.setDefaultBindingMode("OneWay");| && |\n| &&
|
||||
| return oModel;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
|| && |\n| &&
|
||||
|\});| && |\n| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_server_js DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,163 +9,162 @@ CLASS z2ui5_cl_app_server_js DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_server_js IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `sap.ui.define(["sap/ui/core/BusyIndicator", "sap/m/MessageBox"` && |\n| &&
|
||||
`],` && |\n| &&
|
||||
` function (BusyIndicator, MessageBox) {` && |\n| &&
|
||||
` "use strict";` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` return {` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` endSession: function () {` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` if (z2ui5.contextId) {` && |\n| &&
|
||||
` fetch(z2ui5.oConfig.pathname, {` && |\n| &&
|
||||
` method: 'HEAD',` && |\n| &&
|
||||
` keepalive: true,` && |\n| &&
|
||||
` headers: {` && |\n| &&
|
||||
` 'sap-terminate': 'session',` && |\n| &&
|
||||
` 'sap-contextid': z2ui5.contextId,` && |\n| &&
|
||||
` 'sap-contextid-accept': 'header'` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` delete z2ui5.contextId;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` Roundtrip() {` && |\n| &&
|
||||
` z2ui5.checkTimerActive = false;` && |\n| &&
|
||||
` z2ui5.checkNestAfter = false;` && |\n| &&
|
||||
` z2ui5.checkNestAfter2 = false;` && |\n| &&
|
||||
` let event = (args) => {` && |\n| &&
|
||||
` if (args != undefined) {` && |\n| &&
|
||||
` return args[0][0];` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` z2ui5.oBody ??= {};` && |\n| &&
|
||||
` z2ui5.oBody.S_FRONT = {` && |\n| &&
|
||||
` ID: z2ui5?.oBody?.ID,` && |\n| &&
|
||||
` CONFIG: z2ui5.oConfig,` && |\n| &&
|
||||
` XX: z2ui5?.oBody?.XX,` && |\n| &&
|
||||
` ORIGIN: window.location.origin,` && |\n| &&
|
||||
` PATHNAME: window.location.pathname,` && |\n| &&
|
||||
` SEARCH: (z2ui5.search) ? z2ui5.search : window.location.search,` && |\n| &&
|
||||
` VIEW: z2ui5.oBody?.VIEWNAME,` && |\n| &&
|
||||
` EVENT: event(z2ui5.oBody?.ARGUMENTS),` && |\n| &&
|
||||
` HASH: window.location.hash,` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
` if (z2ui5.oBody?.ARGUMENTS != undefined) {` && |\n| &&
|
||||
` if (z2ui5.oBody?.ARGUMENTS.length > 0) {` && |\n| &&
|
||||
` z2ui5.oBody?.ARGUMENTS.shift();` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` z2ui5.oBody.S_FRONT.T_EVENT_ARG = z2ui5.oBody?.ARGUMENTS;` && |\n| &&
|
||||
` delete z2ui5.oBody.ID;` && |\n| &&
|
||||
` delete z2ui5.oBody?.VIEWNAME;` && |\n| &&
|
||||
` delete z2ui5.oBody?.S_FRONT.XX;` && |\n| &&
|
||||
` delete z2ui5.oBody?.ARGUMENTS;` && |\n| &&
|
||||
` if (!z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| &&
|
||||
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG) {` && |\n| &&
|
||||
` if (z2ui5.oBody.S_FRONT.T_EVENT_ARG.length == 0) {` && |\n| &&
|
||||
` delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS == undefined) {` && |\n| &&
|
||||
` delete z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (z2ui5.oBody.S_FRONT.SEARCH == '') {` && |\n| &&
|
||||
` delete z2ui5.oBody.S_FRONT.SEARCH;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (!z2ui5.oBody.XX) {` && |\n| &&
|
||||
` delete z2ui5.oBody.XX;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` this.readHttp();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
`` && |\n| &&
|
||||
` async readHttp() {` && |\n| &&
|
||||
` const response = await fetch(z2ui5.oConfig.pathname, {` && |\n| &&
|
||||
` method: 'POST',` && |\n| &&
|
||||
` headers: {` && |\n| &&
|
||||
` 'Content-Type': 'application/json',` && |\n| &&
|
||||
` 'sap-contextid-accept': 'header',` && |\n| &&
|
||||
` 'sap-contextid': z2ui5.contextId` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` body: JSON.stringify(z2ui5.oBody)` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` z2ui5.contextId = response.headers.get("sap-contextid");` && |\n| &&
|
||||
` if (!response.ok) {` && |\n| &&
|
||||
` const responseText = await response.text();` && |\n| &&
|
||||
` this.responseError(responseText);` && |\n| &&
|
||||
` } else {` && |\n| &&
|
||||
` const responseData = await response.json();` && |\n| &&
|
||||
` z2ui5.responseData = responseData;` && |\n| &&
|
||||
` this.responseSuccess({` && |\n| &&
|
||||
` ID: responseData.S_FRONT.ID,` && |\n| &&
|
||||
` PARAMS: responseData.S_FRONT.PARAMS,` && |\n| &&
|
||||
` OVIEWMODEL: responseData.MODEL,` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` async responseSuccess(response) {` && |\n| &&
|
||||
` try {` && |\n| &&
|
||||
` z2ui5.oResponse = response;` && |\n| &&
|
||||
` if (z2ui5.oResponse.PARAMS?.S_VIEW?.CHECK_DESTROY) {` && |\n| &&
|
||||
` z2ui5.oController.ViewDestroy();` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` ; if (z2ui5.oResponse.PARAMS?.S_FOLLOW_UP_ACTION?.CUSTOM_JS) {` && |\n| &&
|
||||
` setTimeout(() => {` && |\n| &&
|
||||
` let mParams = z2ui5.oResponse?.PARAMS.S_FOLLOW_UP_ACTION.CUSTOM_JS.split("'");` && |\n| &&
|
||||
` let mParamsEF = mParams.filter((val, index) => index % 2)` && |\n| &&
|
||||
` if (mParamsEF.length) {` && |\n| &&
|
||||
` z2ui5.oController.eF.apply(undefined, mParamsEF);` && |\n| &&
|
||||
` } else {` && |\n| &&
|
||||
` Function("return " + mParams[0])();` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` }, 100);` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
` z2ui5.oController.showMessage('S_MSG_TOAST', 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| &&
|
||||
` z2ui5.oController.ViewDestroy();` && |\n| &&
|
||||
` await z2ui5.oController.displayView(z2ui5.oResponse.PARAMS.S_VIEW.XML, z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
|
||||
` return;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` z2ui5.oController.updateModelIfRequired('S_VIEW', z2ui5.oView);` && |\n| &&
|
||||
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST', z2ui5.oViewNest);` && |\n| &&
|
||||
` z2ui5.oController.updateModelIfRequired('S_VIEW_NEST2', z2ui5.oViewNest2);` && |\n| &&
|
||||
` z2ui5.oController.updateModelIfRequired('S_POPUP', z2ui5.oViewPopup);` && |\n| &&
|
||||
` z2ui5.oController.updateModelIfRequired('S_POPOVER', z2ui5.oViewPopover);` && |\n| &&
|
||||
` z2ui5.oController.onAfterRendering();` && |\n| &&
|
||||
` } catch (e) {` && |\n| &&
|
||||
` BusyIndicator.hide();` && |\n| &&
|
||||
` if (e.message.includes("openui5")) {` && |\n| &&
|
||||
` if (e.message.includes("script load error")) {` && |\n| &&
|
||||
` z2ui5.oController.checkSDKcompatibility(e)` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` } else {` && |\n| &&
|
||||
` MessageBox.error(e.toLocaleString());` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` responseError(response) {` && |\n| &&
|
||||
` document.write(response);` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` };` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
``.
|
||||
result = |sap.ui.define(["sap/ui/core/BusyIndicator", "sap/m/MessageBox"| && |\n| &&
|
||||
|],| && |\n| &&
|
||||
| function (BusyIndicator, MessageBox) \{| && |\n| &&
|
||||
| "use strict";| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| return \{| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| endSession: function () \{| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| if (z2ui5.contextId) \{| && |\n| &&
|
||||
| fetch(z2ui5.oConfig.pathname, \{| && |\n| &&
|
||||
| method: 'HEAD',| && |\n| &&
|
||||
| keepalive: true,| && |\n| &&
|
||||
| headers: \{| && |\n| &&
|
||||
| 'sap-terminate': 'session',| && |\n| &&
|
||||
| 'sap-contextid': z2ui5.contextId,| && |\n| &&
|
||||
| 'sap-contextid-accept': 'header'| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
| delete z2ui5.contextId;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| Roundtrip() \{| && |\n| &&
|
||||
| z2ui5.checkTimerActive = false;| && |\n| &&
|
||||
| z2ui5.checkNestAfter = false;| && |\n| &&
|
||||
| z2ui5.checkNestAfter2 = false;| && |\n| &&
|
||||
| let event = (args) => \{| && |\n| &&
|
||||
| if (args != undefined) \{| && |\n| &&
|
||||
| return args[0][0];| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| z2ui5.oBody ??= \{\};| && |\n| &&
|
||||
| z2ui5.oBody.S_FRONT = \{| && |\n| &&
|
||||
| ID: z2ui5?.oBody?.ID,| && |\n| &&
|
||||
| CONFIG: z2ui5.oConfig,| && |\n| &&
|
||||
| XX: z2ui5?.oBody?.XX,| && |\n| &&
|
||||
| ORIGIN: window.location.origin,| && |\n| &&
|
||||
| PATHNAME: window.location.pathname,| && |\n| &&
|
||||
| SEARCH: (z2ui5.search) ? z2ui5.search : window.location.search,| && |\n| &&
|
||||
| VIEW: z2ui5.oBody?.VIEWNAME,| && |\n| &&
|
||||
| EVENT: event(z2ui5.oBody?.ARGUMENTS),| && |\n| &&
|
||||
| HASH: window.location.hash,| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
| if (z2ui5.oBody?.ARGUMENTS != undefined) \{| && |\n| &&
|
||||
| if (z2ui5.oBody?.ARGUMENTS.length > 0) \{| && |\n| &&
|
||||
| z2ui5.oBody?.ARGUMENTS.shift();| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| z2ui5.oBody.S_FRONT.T_EVENT_ARG = z2ui5.oBody?.ARGUMENTS;| && |\n| &&
|
||||
| delete z2ui5.oBody.ID;| && |\n| &&
|
||||
| delete z2ui5.oBody?.VIEWNAME;| && |\n| &&
|
||||
| delete z2ui5.oBody?.S_FRONT.XX;| && |\n| &&
|
||||
| delete z2ui5.oBody?.ARGUMENTS;| && |\n| &&
|
||||
| if (!z2ui5.oBody.S_FRONT.T_EVENT_ARG) \{| && |\n| &&
|
||||
| delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| if (z2ui5.oBody.S_FRONT.T_EVENT_ARG) \{| && |\n| &&
|
||||
| if (z2ui5.oBody.S_FRONT.T_EVENT_ARG.length == 0) \{| && |\n| &&
|
||||
| delete z2ui5.oBody.S_FRONT.T_EVENT_ARG;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| if (z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS == undefined) \{| && |\n| &&
|
||||
| delete z2ui5.oBody.S_FRONT.T_STARTUP_PARAMETERS;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| if (z2ui5.oBody.S_FRONT.SEARCH == '') \{| && |\n| &&
|
||||
| delete z2ui5.oBody.S_FRONT.SEARCH;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| if (!z2ui5.oBody.XX) \{| && |\n| &&
|
||||
| delete z2ui5.oBody.XX;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| this.readHttp();| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
|| && |\n| &&
|
||||
| async readHttp() \{| && |\n| &&
|
||||
| const response = await fetch(z2ui5.oConfig.pathname, \{| && |\n| &&
|
||||
| method: 'POST',| && |\n| &&
|
||||
| headers: \{| && |\n| &&
|
||||
| 'Content-Type': 'application/json',| && |\n| &&
|
||||
| 'sap-contextid-accept': 'header',| && |\n| &&
|
||||
| 'sap-contextid': z2ui5.contextId| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| body: JSON.stringify(z2ui5.oBody)| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
| z2ui5.contextId = response.headers.get("sap-contextid");| && |\n| &&
|
||||
| if (!response.ok) \{| && |\n| &&
|
||||
| const responseText = await response.text();| && |\n| &&
|
||||
| this.responseError(responseText);| && |\n| &&
|
||||
| \} else \{| && |\n| &&
|
||||
| const responseData = await response.json();| && |\n| &&
|
||||
| z2ui5.responseData = responseData;| && |\n| &&
|
||||
| this.responseSuccess(\{| && |\n| &&
|
||||
| ID: responseData.S_FRONT.ID,| && |\n| &&
|
||||
| PARAMS: responseData.S_FRONT.PARAMS,| && |\n| &&
|
||||
| OVIEWMODEL: responseData.MODEL,| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| async responseSuccess(response) \{| && |\n| &&
|
||||
| try \{| && |\n| &&
|
||||
| z2ui5.oResponse = response;| && |\n| &&
|
||||
| if (z2ui5.oResponse.PARAMS?.S_VIEW?.CHECK_DESTROY) \{| && |\n| &&
|
||||
| z2ui5.oController.ViewDestroy();| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| ; if (z2ui5.oResponse.PARAMS?.S_FOLLOW_UP_ACTION?.CUSTOM_JS) \{| && |\n| &&
|
||||
| setTimeout(() => \{| && |\n| &&
|
||||
| let mParams = z2ui5.oResponse?.PARAMS.S_FOLLOW_UP_ACTION.CUSTOM_JS.split("'");| && |\n| &&
|
||||
| let mParamsEF = mParams.filter((val, index) => index % 2)| && |\n| &&
|
||||
| if (mParamsEF.length) \{| && |\n| &&
|
||||
| z2ui5.oController.eF.apply(undefined, mParamsEF);| && |\n| &&
|
||||
| \} else \{| && |\n| &&
|
||||
| Function("return " + mParams[0])();| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \}, 100);| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
| z2ui5.oController.showMessage('S_MSG_TOAST', 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| &&
|
||||
| z2ui5.oController.ViewDestroy();| && |\n| &&
|
||||
| await z2ui5.oController.displayView(z2ui5.oResponse.PARAMS.S_VIEW.XML, z2ui5.oResponse.OVIEWMODEL);| && |\n| &&
|
||||
| return;| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| z2ui5.oController.updateModelIfRequired('S_VIEW', z2ui5.oView);| && |\n| &&
|
||||
| z2ui5.oController.updateModelIfRequired('S_VIEW_NEST', z2ui5.oViewNest);| && |\n| &&
|
||||
| z2ui5.oController.updateModelIfRequired('S_VIEW_NEST2', z2ui5.oViewNest2);| && |\n| &&
|
||||
| z2ui5.oController.updateModelIfRequired('S_POPUP', z2ui5.oViewPopup);| && |\n| &&
|
||||
| z2ui5.oController.updateModelIfRequired('S_POPOVER', z2ui5.oViewPopover);| && |\n| &&
|
||||
| z2ui5.oController.onAfterRendering();| && |\n| &&
|
||||
| \} catch (e) \{| && |\n| &&
|
||||
| BusyIndicator.hide();| && |\n| &&
|
||||
| if (e.message.includes("openui5")) \{| && |\n| &&
|
||||
| if (e.message.includes("script load error")) \{| && |\n| &&
|
||||
| z2ui5.oController.checkSDKcompatibility(e)| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \} else \{| && |\n| &&
|
||||
| MessageBox.error(e.toLocaleString());| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \}| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| responseError(response) \{| && |\n| &&
|
||||
| document.write(response);| && |\n| &&
|
||||
| \},| && |\n| &&
|
||||
| \};| && |\n| &&
|
||||
| \});| && |\n| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_style_css DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,17 +9,16 @@ CLASS z2ui5_cl_app_style_css DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_style_css IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `/* Enter your custom styles here */` &&
|
||||
``.
|
||||
result = |/* Enter your custom styles here */| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_app_view1_xml DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -10,21 +9,20 @@ CLASS z2ui5_cl_app_view1_xml DEFINITION
|
|||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_app_view1_xml IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
result = `<mvc:View controllerName="z2ui5.controller.View1"` &&
|
||||
` xmlns:mvc="sap.ui.core.mvc" displayBlock="true"` &&
|
||||
` xmlns="sap.m">` &&
|
||||
`</mvc:View>` &&
|
||||
`` &&
|
||||
``.
|
||||
result = |<mvc:View controllerName="z2ui5.controller.View1"| &&
|
||||
| xmlns:mvc="sap.ui.core.mvc" displayBlock="true"| &&
|
||||
| xmlns="sap.m">| &&
|
||||
|</mvc:View>| &&
|
||||
|| &&
|
||||
||.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_error DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -14,18 +13,17 @@ CLASS z2ui5_cl_pop_error DEFINITION
|
|||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_error.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA error TYPE REF TO cx_root.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA error TYPE REF TO cx_root.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_error IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
@ -33,27 +31,23 @@ CLASS z2ui5_cl_pop_error IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = `Error View`
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = `Error View`
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( error->get_text( )
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = `OK`
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = `OK`
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_file_dl DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -18,10 +17,10 @@ CLASS z2ui5_cl_pop_file_dl DEFINITION
|
|||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_file_dl.
|
||||
|
||||
DATA mv_name TYPE string.
|
||||
DATA mv_type TYPE string.
|
||||
DATA mv_size TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
DATA mv_name TYPE string.
|
||||
DATA mv_type TYPE string.
|
||||
DATA mv_size TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
DATA mv_check_download TYPE abap_bool.
|
||||
|
||||
METHODS result
|
||||
|
@ -29,51 +28,47 @@ CLASS z2ui5_cl_pop_file_dl DEFINITION
|
|||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_confirmed TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA check_confirmed TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_file_dl IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
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_cancel = i_button_text_cancel.
|
||||
r_result->mv_type = i_type.
|
||||
r_result->mv_value = i_file.
|
||||
r_result->mv_size = strlen( i_file ) / 1000.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_type = i_type.
|
||||
r_result->mv_value = i_file.
|
||||
r_result->mv_size = strlen( i_file ) / 1000.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = check_confirmed.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content( ).
|
||||
|
||||
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 ).
|
||||
popup->_generic( ns = `html`
|
||||
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` ) ).
|
||||
|
||||
|
@ -99,19 +95,16 @@ CLASS Z2UI5_CL_POP_FILE_DL IMPLEMENTATION.
|
|||
enabled = abap_false
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = `Download`
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = `Download`
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_file_ul DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -22,9 +21,10 @@ CLASS z2ui5_cl_pop_file_ul DEFINITION
|
|||
value TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
DATA mv_path TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
DATA mv_path TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
DATA check_confirm_enabled TYPE abap_bool.
|
||||
|
||||
METHODS result
|
||||
|
@ -32,72 +32,64 @@ CLASS z2ui5_cl_pop_file_ul DEFINITION
|
|||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
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_cancel = i_button_text_cancel.
|
||||
r_result->mv_path = i_path.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_path = i_path.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( question_text
|
||||
)->_z2ui5( )->file_uploader(
|
||||
value = client->_bind_edit( mv_value )
|
||||
path = client->_bind_edit( mv_path )
|
||||
placeholder = 'filepath here...'
|
||||
upload = client->_event( 'UPLOAD' )
|
||||
)->_z2ui5( )->file_uploader( value = client->_bind_edit( mv_value )
|
||||
path = client->_bind_edit( mv_path )
|
||||
placeholder = 'filepath here...'
|
||||
upload = client->_event( 'UPLOAD' )
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
enabled = client->_bind( check_confirm_enabled )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
enabled = client->_bind( check_confirm_enabled )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_get_range DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
@ -13,6 +12,7 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
|
|||
high TYPE string,
|
||||
key TYPE string,
|
||||
END OF ty_s_filter_pop.
|
||||
|
||||
DATA mt_filter TYPE STANDARD TABLE OF ty_s_filter_pop WITH EMPTY KEY.
|
||||
|
||||
CLASS-METHODS factory
|
||||
|
@ -26,6 +26,7 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
|
|||
t_range TYPE z2ui5_cl_util=>ty_t_range,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
|
@ -33,70 +34,60 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
|
|||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
DATA mt_mapping TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
||||
z2ui5_cl_util=>itab_corresponding(
|
||||
EXPORTING
|
||||
val = t_range
|
||||
CHANGING
|
||||
tab = r_result->ms_result-t_range
|
||||
z2ui5_cl_util=>itab_corresponding( EXPORTING val = t_range
|
||||
CHANGING tab = r_result->ms_result-t_range
|
||||
).
|
||||
|
||||
INSERT VALUE #( ) INTO TABLE r_result->ms_result-t_range.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
lo_popup = lo_popup->dialog(
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
contentheight = `50%`
|
||||
contentwidth = `50%`
|
||||
title = 'Define Filter Conditons' ).
|
||||
lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
contentheight = `50%`
|
||||
contentwidth = `50%`
|
||||
title = 'Define Filter Conditons' ).
|
||||
|
||||
DATA(vbox) = lo_popup->vbox( height = `100%`
|
||||
justifycontent = 'SpaceBetween' ).
|
||||
|
||||
DATA(item) = vbox->list(
|
||||
nodata = `no conditions defined`
|
||||
items = client->_bind_edit( mt_filter )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
DATA(item) = vbox->list( nodata = `no conditions defined`
|
||||
items = client->_bind_edit( mt_filter )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
DATA(grid) = item->grid( ).
|
||||
|
||||
grid->combobox(
|
||||
selectedkey = `{OPTION}`
|
||||
items = client->_bind( mt_mapping )
|
||||
)->item(
|
||||
key = '{N}'
|
||||
text = '{N}'
|
||||
grid->combobox( selectedkey = `{OPTION}`
|
||||
items = client->_bind( mt_mapping )
|
||||
)->item( key = '{N}'
|
||||
text = '{N}'
|
||||
)->get_parent(
|
||||
)->input( value = `{LOW}`
|
||||
submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
|
@ -105,7 +96,8 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
|
|||
submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->button( icon = 'sap-icon://decline'
|
||||
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(
|
||||
)->button( text = `Delete All`
|
||||
|
@ -115,19 +107,16 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
|
|||
)->button( text = `Add Item`
|
||||
icon = `sap-icon://add`
|
||||
press = client->_event( val = `POPUP_ADD` )
|
||||
)->button(
|
||||
text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( lo_popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
@ -139,11 +128,10 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
|
|||
|
||||
CLEAR mt_filter.
|
||||
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
|
||||
INSERT VALUE #(
|
||||
low = lr_product->low
|
||||
high = lr_product->high
|
||||
option = lr_product->option
|
||||
key = z2ui5_cl_util=>uuid_get_c32( )
|
||||
INSERT VALUE #( low = lr_product->low
|
||||
high = lr_product->high
|
||||
option = lr_product->option
|
||||
key = z2ui5_cl_util=>uuid_get_c32( )
|
||||
) INTO TABLE mt_filter.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -160,11 +148,10 @@ CLASS Z2UI5_CL_POP_GET_RANGE IMPLEMENTATION.
|
|||
IF lr_filter->low IS INITIAL AND lr_filter->high IS INITIAL.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
INSERT VALUE #(
|
||||
sign = `I`
|
||||
option = lr_filter->option
|
||||
low = lr_filter->low
|
||||
high = lr_filter->high
|
||||
INSERT VALUE #( sign = `I`
|
||||
option = lr_filter->option
|
||||
low = lr_filter->low
|
||||
high = lr_filter->high
|
||||
) INTO TABLE ms_result-t_range.
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -24,9 +24,10 @@ CLASS z2ui5_cl_pop_get_range_m DEFINITION
|
|||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA mv_popup_name TYPE LINE OF string_table.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA mv_popup_name TYPE LINE OF string_table.
|
||||
|
||||
METHODS popup_display.
|
||||
|
||||
METHODS init.
|
||||
|
@ -35,9 +36,7 @@ CLASS z2ui5_cl_pop_get_range_m DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
||||
|
||||
CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
@ -45,14 +44,12 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD init.
|
||||
|
||||
popup_display( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD popup_display.
|
||||
|
||||
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` ).
|
||||
grid->text( `{NAME}` ).
|
||||
|
||||
grid->multi_input( tokens = `{T_TOKEN}`
|
||||
enabled = abap_false
|
||||
valuehelprequest = client->_event( val = `LIST_OPEN` t_arg = VALUE #( ( `${NAME}` ) ) )
|
||||
grid->multi_input( tokens = `{T_TOKEN}`
|
||||
enabled = abap_false
|
||||
valuehelprequest = client->_event( val = `LIST_OPEN`
|
||||
t_arg = VALUE #( ( `${NAME}` ) ) )
|
||||
)->tokens(
|
||||
)->token( key = `{KEY}`
|
||||
text = `{TEXT}`
|
||||
|
@ -83,11 +81,13 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
|||
editable = `{EDITABLE}` ).
|
||||
|
||||
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'
|
||||
type = `Transparent`
|
||||
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(
|
||||
)->button( text = `Clear All`
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_html DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -17,53 +16,48 @@ CLASS z2ui5_cl_pop_html DEFINITION
|
|||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_html.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA html TYPE string.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA html TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_HTML IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_html IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->html = i_html.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->html = i_html.
|
||||
r_result->button_text_confirm = i_button_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->html( html
|
||||
)->get_parent( )->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_input_val DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -9,9 +8,9 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
|
|||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
text TYPE string DEFAULT `Enter New Value`
|
||||
!text TYPE string DEFAULT `Enter New Value`
|
||||
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_cancel TYPE string DEFAULT `Cancel`
|
||||
PREFERRED PARAMETER val
|
||||
|
@ -23,6 +22,7 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
|
|||
value TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
|
@ -30,70 +30,62 @@ CLASS z2ui5_cl_pop_input_val DEFINITION
|
|||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_INPUT_VAL IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_input_val IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
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_cancel = button_text_cancel.
|
||||
r_result->button_text_cancel = button_text_cancel.
|
||||
r_result->ms_result-value = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( question_text
|
||||
)->input(
|
||||
value = client->_bind_edit( ms_result-value )
|
||||
submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->input( value = client->_bind_edit( ms_result-value )
|
||||
submit = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -24,13 +23,13 @@ CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
|
|||
DATA mr_itab TYPE REF TO data.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
|
||||
|
@ -38,31 +37,26 @@ CLASS z2ui5_cl_pop_itab_json_dl DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POP_ITAB_JSON_DL IMPLEMENTATION.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_itab_json_dl IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
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->icon = i_icon.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = check_result_confirmed.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
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.
|
||||
|
||||
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="` &&
|
||||
lv_link && `" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>`.
|
||||
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>|.
|
||||
|
||||
DATA(lx) = NEW z2ui5_cx_util_error( val = lv_text ).
|
||||
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`.
|
||||
CALL METHOD (lv_classname)=>('FACTORY_POPUP_BY_ITAB')
|
||||
EXPORTING
|
||||
itab = mr_itab
|
||||
RECEIVING
|
||||
result = app.
|
||||
EXPORTING itab = mr_itab
|
||||
RECEIVING result = app.
|
||||
|
||||
client->nav_app_leave( CAST #( app ) ).
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_js_loader DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -23,15 +22,14 @@ CLASS z2ui5_cl_pop_js_loader DEFINITION
|
|||
VALUE(result3) TYPE string.
|
||||
|
||||
DATA mv_is_open_ui5 TYPE abap_bool.
|
||||
DATA ui5_gav TYPE string.
|
||||
DATA ui5_gav TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA js TYPE string.
|
||||
DATA user_command TYPE string.
|
||||
DATA check_open_ui5 TYPE abap_bool.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA js TYPE string.
|
||||
DATA user_command TYPE string.
|
||||
DATA check_open_ui5 TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
|
@ -39,54 +37,46 @@ CLASS z2ui5_cl_pop_js_loader DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->js = i_js.
|
||||
r_result->js = i_js.
|
||||
r_result->user_command = i_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory_check_open_ui5.
|
||||
r_result = NEW #( ).
|
||||
r_result->check_open_ui5 = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result3 = user_command.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( `Setup UI...`
|
||||
)->content( ).
|
||||
|
||||
IF js IS NOT INITIAL.
|
||||
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.
|
||||
|
||||
IF check_open_ui5 = abap_true.
|
||||
popup->_z2ui5( )->info_frontend(
|
||||
finished = client->_event( `INFO_FINISHED` )
|
||||
ui5_gav = client->_bind_edit( ui5_gav ) ).
|
||||
popup->_z2ui5( )->info_frontend( finished = client->_event( `INFO_FINISHED` )
|
||||
ui5_gav = client->_bind_edit( ui5_gav ) ).
|
||||
ENDIF.
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_messages DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -22,6 +21,7 @@ CLASS z2ui5_cl_pop_messages DEFINITION
|
|||
group TYPE string,
|
||||
END OF ty_s_msg.
|
||||
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg.
|
||||
|
||||
DATA mt_msg TYPE ty_t_msg.
|
||||
|
||||
CLASS-METHODS factory
|
||||
|
@ -32,19 +32,17 @@ CLASS z2ui5_cl_pop_messages DEFINITION
|
|||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_messages.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
@ -53,11 +51,11 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
|||
LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
|
||||
|
||||
DATA(ls_row) = VALUE ty_s_msg( ).
|
||||
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
||||
ls_row-title = lr_row->text.
|
||||
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
||||
ls_row-title = lr_row->text.
|
||||
* lr_row->title = `title`.
|
||||
* 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`.
|
||||
|
||||
INSERT ls_row INTO TABLE r_result->mt_msg.
|
||||
|
@ -67,42 +65,34 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
popup = popup->dialog(
|
||||
title = `Messages`
|
||||
contentheight = '50%'
|
||||
contentwidth = '50%'
|
||||
verticalScrolling = abap_false
|
||||
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
||||
popup = popup->dialog( title = `Messages`
|
||||
contentheight = '50%'
|
||||
contentwidth = '50%'
|
||||
verticalScrolling = abap_false
|
||||
afterclose = client->_event( 'BUTTON_CONTINUE' )
|
||||
).
|
||||
|
||||
popup->message_view(
|
||||
items = client->_bind( mt_msg )
|
||||
* groupitems = abap_true
|
||||
)->message_item(
|
||||
type = `{TYPE}`
|
||||
title = `{TITLE}`
|
||||
subtitle = `{SUBTITLE}`
|
||||
* description = `{MESSAGE}`
|
||||
* groupname = `{GROUP}`
|
||||
popup->message_view( items = client->_bind( mt_msg )
|
||||
* groupitems = abap_true
|
||||
)->message_item( type = `{TYPE}`
|
||||
title = `{TITLE}`
|
||||
subtitle = `{SUBTITLE}`
|
||||
* description = `{MESSAGE}`
|
||||
* groupname = `{GROUP}`
|
||||
).
|
||||
|
||||
popup->buttons(
|
||||
)->button(
|
||||
text = 'continue'
|
||||
press = client->_event( 'BUTTON_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
)->button( text = 'continue'
|
||||
press = client->_event( 'BUTTON_CONTINUE' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_pdf DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -21,83 +20,75 @@ CLASS z2ui5_cl_pop_pdf DEFINITION
|
|||
text TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
DATA mv_pdf TYPE string.
|
||||
DATA mv_pdf TYPE string.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
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_cancel = i_button_text_cancel.
|
||||
r_result->mv_pdf = i_pdf.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_pdf = i_pdf.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
stretch = abap_true
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
stretch = abap_true
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->label( question_text
|
||||
)->_generic(
|
||||
ns = `html`
|
||||
name = `iframe`
|
||||
t_prop = VALUE #(
|
||||
( n = `src` v = mv_pdf )
|
||||
( n = `height` v = `800px` )
|
||||
( n = `width` v = `99%` )
|
||||
)
|
||||
)->_generic( ns = `html`
|
||||
name = `iframe`
|
||||
t_prop = VALUE #( ( n = `src` v = mv_pdf )
|
||||
( n = `height` v = `800px` )
|
||||
( n = `width` v = `99%` )
|
||||
)
|
||||
)->get_parent( )->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS z2ui5_cl_pop_table DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
PUBLIC FINAL
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
@ -18,6 +17,7 @@ CLASS z2ui5_cl_pop_table DEFINITION
|
|||
row TYPE REF TO data,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS result
|
||||
|
@ -28,8 +28,9 @@ CLASS z2ui5_cl_pop_table DEFINITION
|
|||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA title TYPE string VALUE 'Table View'.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string VALUE 'Table View'.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
METHODS on_event.
|
||||
METHODS display.
|
||||
METHODS on_event_confirm.
|
||||
|
@ -38,24 +39,20 @@ CLASS z2ui5_cl_pop_table DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
|
||||
ASSIGN mr_tab->* TO <tab_out>.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
stretch = abap_true
|
||||
title = title
|
||||
* icon = 'sap-icon://edit'
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
stretch = abap_true
|
||||
title = title
|
||||
* icon = 'sap-icon://edit'
|
||||
)->content( ).
|
||||
|
||||
DATA(tab) = popup->table(
|
||||
client->_bind( <tab_out> ) ).
|
||||
DATA(tab) = popup->table( client->_bind( <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( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
cells->text( `{` && ls_comp-name && `}` ).
|
||||
cells->text( |\{{ ls_comp-name }\}| ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
|
@ -73,16 +70,14 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
|
||||
popup->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = 'OK'
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
|
||||
|
@ -98,7 +93,6 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
@ -111,12 +105,10 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event_confirm.
|
||||
|
||||
client->popup_destroy( ).
|
||||
|
@ -124,7 +116,6 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
@ -133,7 +124,7 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_textedit DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
@ -9,23 +8,25 @@ CLASS z2ui5_cl_pop_textedit DEFINITION
|
|||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_stretch_active TYPE abap_bool DEFAULT abap_true
|
||||
i_textarea TYPE string OPTIONAL
|
||||
i_title TYPE string DEFAULT `Editor`
|
||||
i_textarea TYPE string OPTIONAL
|
||||
i_title TYPE string DEFAULT `Editor`
|
||||
i_check_editable TYPE abap_bool DEFAULT abap_false
|
||||
PREFERRED PARAMETER i_textarea
|
||||
RETURNING
|
||||
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_title TYPE string.
|
||||
DATA mv_title TYPE string.
|
||||
DATA mv_check_editable TYPE abap_bool.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
text TYPE string,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
|
||||
METHODS display.
|
||||
|
@ -35,49 +36,44 @@ CLASS z2ui5_cl_pop_textedit DEFINITION
|
|||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->mv_stretch_active = i_stretch_active.
|
||||
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.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
stretch = mv_stretch_active
|
||||
title = mv_title
|
||||
icon = 'sap-icon://edit'
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
stretch = mv_stretch_active
|
||||
title = mv_title
|
||||
icon = 'sap-icon://edit'
|
||||
)->content(
|
||||
)->text_area( growing = abap_true
|
||||
editable = mv_check_editable
|
||||
value = client->_bind_edit( ms_result-text )
|
||||
)->text_area( growing = abap_true
|
||||
editable = mv_check_editable
|
||||
value = client->_bind_edit( ms_result-text )
|
||||
)->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
)->button(
|
||||
text = 'Confirm'
|
||||
press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
)->button( text = 'Confirm'
|
||||
press = client->_event( 'BUTTON_TEXTAREA_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
@ -105,5 +101,4 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
|
|||
METHOD result.
|
||||
result = ms_result.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_to_confirm DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -30,73 +29,65 @@ CLASS z2ui5_cl_pop_to_confirm DEFINITION
|
|||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
DATA event_confirm TYPE string.
|
||||
DATA event_canceled TYPE string.
|
||||
DATA event_confirm TYPE string.
|
||||
DATA event_canceled TYPE string.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = check_result_confirmed.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_question_text.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_question_text.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->event_confirm = i_event_confirm.
|
||||
r_result->event_canceled = i_event_cancel.
|
||||
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->event_confirm = i_event_confirm.
|
||||
r_result->event_canceled = i_event_cancel.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( question_text
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
CLASS z2ui5_cl_pop_to_inform DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -17,52 +16,48 @@ CLASS z2ui5_cl_pop_to_inform DEFINITION
|
|||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_inform.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
METHODS view_display.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
r_result->button_text_confirm = i_button_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
)->text( question_text
|
||||
)->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button(
|
||||
text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
)->button( text = button_text_confirm
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
|
|
@ -1,69 +1,67 @@
|
|||
CLASS z2ui5_cl_pop_to_select DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PROTECTED .
|
||||
PUBLIC FINAL
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app .
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
row TYPE REF TO data,
|
||||
table TYPE REF TO data,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result .
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result .
|
||||
DATA mr_tab TYPE REF TO data .
|
||||
DATA mr_tab_popup TYPE REF TO data ##NEEDED.
|
||||
DATA mr_tab_popup_backup TYPE REF TO data ##NEEDED.
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
DATA mr_tab TYPE REF TO data.
|
||||
DATA mr_tab_popup TYPE REF TO data ##NEEDED.
|
||||
DATA mr_tab_popup_backup TYPE REF TO data ##NEEDED.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
!i_tab TYPE STANDARD TABLE
|
||||
!i_title TYPE clike OPTIONAL
|
||||
!i_sort_field TYPE clike OPTIONAL
|
||||
!i_descending TYPE abap_bool OPTIONAL
|
||||
!i_contentwidth TYPE clike OPTIONAL
|
||||
!i_contentheight TYPE clike OPTIONAL
|
||||
!i_growingthreshold TYPE clike OPTIONAL
|
||||
!i_multiselect TYPE abap_bool OPTIONAL
|
||||
i_event_canceled TYPE string OPTIONAL
|
||||
i_event_confirmed TYPE string OPTIONAL
|
||||
i_tab TYPE STANDARD TABLE
|
||||
i_title TYPE clike OPTIONAL
|
||||
i_sort_field TYPE clike OPTIONAL
|
||||
i_descending TYPE abap_bool OPTIONAL
|
||||
i_contentwidth TYPE clike OPTIONAL
|
||||
i_contentheight TYPE clike OPTIONAL
|
||||
i_growingthreshold TYPE clike OPTIONAL
|
||||
i_multiselect TYPE abap_bool OPTIONAL
|
||||
i_event_canceled TYPE string OPTIONAL
|
||||
i_event_confirmed TYPE string OPTIONAL
|
||||
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
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
DATA check_initialized TYPE abap_bool .
|
||||
DATA check_table_line TYPE abap_bool .
|
||||
DATA client TYPE REF TO z2ui5_if_client .
|
||||
DATA title TYPE string .
|
||||
DATA sort_field TYPE string .
|
||||
DATA content_width TYPE string .
|
||||
DATA content_height TYPE string .
|
||||
DATA growing_threshold TYPE string .
|
||||
DATA descending TYPE abap_bool .
|
||||
DATA multiselect TYPE abap_bool.
|
||||
DATA event_confirmed TYPE string.
|
||||
DATA event_canceled TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_table_line TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA sort_field TYPE string.
|
||||
DATA content_width TYPE string.
|
||||
DATA content_height TYPE string.
|
||||
DATA growing_threshold TYPE string.
|
||||
DATA descending TYPE abap_bool.
|
||||
DATA multiselect TYPE abap_bool.
|
||||
DATA event_confirmed 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.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
|
@ -74,43 +72,47 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
ELSE `Single select` ).
|
||||
ENDIF.
|
||||
|
||||
r_result->sort_field = i_sort_field.
|
||||
r_result->descending = i_descending.
|
||||
r_result->content_height = i_contentheight.
|
||||
r_result->content_width = i_contentwidth.
|
||||
r_result->sort_field = i_sort_field.
|
||||
r_result->descending = i_descending.
|
||||
r_result->content_height = i_contentheight.
|
||||
r_result->content_width = i_contentwidth.
|
||||
r_result->growing_threshold = i_growingthreshold.
|
||||
r_result->multiselect = i_multiselect.
|
||||
r_result->event_confirmed = i_event_confirmed.
|
||||
r_result->event_canceled = i_event_canceled.
|
||||
r_result->multiselect = i_multiselect.
|
||||
r_result->event_confirmed = i_event_confirmed.
|
||||
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-table LIKE i_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD display.
|
||||
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
|
||||
ASSIGN mr_tab_popup->* TO <tab_out>.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA(tab) = popup->table_select_dialog(
|
||||
items = `{path:'`
|
||||
&& client->_bind_edit( val = <tab_out> path = abap_true )
|
||||
&& `', 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}` ) ) )
|
||||
confirm = client->_event( val = 'CONFIRM' t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
|
||||
growing = abap_true
|
||||
contentwidth = content_width
|
||||
contentheight = content_height
|
||||
growingthreshold = growing_threshold
|
||||
title = title
|
||||
multiselect = multiselect ).
|
||||
items = |\{path:'|
|
||||
&& client->_bind_edit( val = <tab_out>
|
||||
path = abap_true )
|
||||
&& |', 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}` ) ) )
|
||||
confirm = client->_event( val = 'CONFIRM'
|
||||
t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
|
||||
growing = abap_true
|
||||
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> ).
|
||||
DELETE lt_comp WHERE name = 'ZZSELKZ'.
|
||||
|
@ -120,13 +122,15 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
DATA(cells) = list->cells( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
cells->text( `{` && ls_comp-name && `}` ).
|
||||
cells->text( |\{{ ls_comp-name }\}| ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
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
|
||||
WHEN medium_label IS NOT INITIAL
|
||||
THEN medium_label
|
||||
|
@ -138,7 +142,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
@ -154,7 +157,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
@ -163,7 +165,6 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
ms_result-check_confirmed = abap_true.
|
||||
on_event_confirm( ).
|
||||
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
client->popup_destroy( ).
|
||||
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.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD set_output_table.
|
||||
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
FIELD-SYMBOLS <row2> TYPE any.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <row> TYPE any.
|
||||
FIELD-SYMBOLS <row2> TYPE any.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <tab_out> 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.
|
||||
|
||||
ASSIGN mr_tab->* TO <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.
|
||||
check_table_line = abap_true.
|
||||
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.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `ZZSELKZ` ] ).
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <row_selected> TYPE any.
|
||||
FIELD-SYMBOLS <selkz> TYPE any.
|
||||
FIELD-SYMBOLS <row_result> TYPE any.
|
||||
FIELD-SYMBOLS <table_result> TYPE ANY TABLE.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <row_selected> TYPE any.
|
||||
FIELD-SYMBOLS <selkz> TYPE any.
|
||||
FIELD-SYMBOLS <row_result> TYPE any.
|
||||
FIELD-SYMBOLS <table_result> TYPE ANY TABLE.
|
||||
FIELD-SYMBOLS <table_line_selected> TYPE any.
|
||||
|
||||
ASSIGN mr_tab_popup->* TO <tab>.
|
||||
ASSIGN ms_result-table->* TO <table_result>.
|
||||
|
||||
|
@ -277,17 +280,17 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
|
||||
client->popup_destroy( ).
|
||||
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.
|
||||
|
||||
|
||||
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 <row2> TYPE any.
|
||||
FIELD-SYMBOLS <field2> TYPE any.
|
||||
FIELD-SYMBOLS <row2> TYPE any.
|
||||
FIELD-SYMBOLS <field2> TYPE any.
|
||||
|
||||
DATA(lt_arg) = client->get( )-t_event_arg.
|
||||
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>.
|
||||
DATA(lv_check_continue) = abap_false.
|
||||
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>.
|
||||
ASSERT sy-subrc = 0.
|
||||
IF to_upper( <field2> ) CS to_upper( ls_arg ).
|
||||
|
@ -318,5 +321,4 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
client->popup_model_update( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
CLASS ltcl_app_startup_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL DANGEROUS.
|
||||
CLASS ltcl_app_startup_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL DANGEROUS DURATION SHORT.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS first_test FOR TESTING RAISING cx_static_check.
|
||||
|
@ -9,11 +8,9 @@ ENDCLASS.
|
|||
|
||||
|
||||
CLASS ltcl_app_startup_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app) = z2ui5_cl_app_startup=>factory( ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL DANGEROUS.
|
||||
CLASS ltcl_unit_test DEFINITION FINAL
|
||||
FOR TESTING RISK LEVEL DANGEROUS DURATION MEDIUM.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_create FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_create FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_create.
|
||||
|
||||
DATA(lo_view) = z2ui5_cl_xml_view=>factory( ).
|
||||
|
@ -19,5 +18,4 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -6,13 +6,13 @@ INTERFACE z2ui5_if_app PUBLIC.
|
|||
CONSTANTS author TYPE string VALUE 'https://github.com/oblomov-dev'.
|
||||
CONSTANTS license TYPE string VALUE 'MIT'.
|
||||
|
||||
DATA id_draft TYPE string.
|
||||
DATA id_app TYPE string.
|
||||
DATA id_draft TYPE string.
|
||||
DATA id_app TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA check_sticky TYPE abap_bool.
|
||||
DATA check_sticky TYPE abap_bool.
|
||||
|
||||
METHODS main
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client.
|
||||
!client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -41,7 +41,7 @@ INTERFACE z2ui5_if_client
|
|||
METHODS nest_view_display
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
id TYPE clike
|
||||
!id TYPE clike
|
||||
method_insert TYPE clike
|
||||
method_destroy TYPE clike OPTIONAL.
|
||||
|
||||
|
@ -51,7 +51,7 @@ INTERFACE z2ui5_if_client
|
|||
METHODS nest2_view_display
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
id TYPE clike
|
||||
!id TYPE clike
|
||||
method_insert TYPE clike
|
||||
method_destroy TYPE clike OPTIONAL.
|
||||
|
||||
|
@ -70,7 +70,7 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS popover_display
|
||||
IMPORTING
|
||||
xml TYPE clike
|
||||
!xml TYPE clike
|
||||
by_id TYPE clike.
|
||||
|
||||
METHODS popover_destroy.
|
||||
|
@ -87,7 +87,7 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS get_app
|
||||
IMPORTING
|
||||
id TYPE clike OPTIONAL
|
||||
!id TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_if_app.
|
||||
|
||||
|
@ -105,42 +105,42 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS message_box_display
|
||||
IMPORTING
|
||||
text TYPE any
|
||||
type TYPE clike DEFAULT `information`
|
||||
title TYPE clike OPTIONAL
|
||||
styleclass TYPE clike OPTIONAL
|
||||
onclose TYPE clike OPTIONAL
|
||||
!text TYPE any
|
||||
!type TYPE clike DEFAULT `information`
|
||||
!title TYPE clike OPTIONAL
|
||||
styleclass TYPE clike OPTIONAL
|
||||
onclose TYPE clike OPTIONAL
|
||||
actions TYPE string_table OPTIONAL
|
||||
emphasizedaction TYPE clike OPTIONAL
|
||||
initialfocus TYPE clike OPTIONAL
|
||||
textdirection TYPE clike OPTIONAL
|
||||
icon TYPE clike OPTIONAL
|
||||
details TYPE clike OPTIONAL
|
||||
closeonnavigation TYPE abap_bool DEFAULT abap_true.
|
||||
emphasizedaction TYPE clike OPTIONAL
|
||||
initialfocus TYPE clike OPTIONAL
|
||||
textdirection TYPE clike OPTIONAL
|
||||
!icon TYPE clike OPTIONAL
|
||||
details TYPE clike OPTIONAL
|
||||
closeonnavigation TYPE abap_bool DEFAULT abap_true.
|
||||
|
||||
METHODS message_toast_display
|
||||
IMPORTING
|
||||
text TYPE clike
|
||||
duration TYPE clike OPTIONAL
|
||||
width TYPE clike OPTIONAL
|
||||
my TYPE clike OPTIONAL
|
||||
at TYPE clike OPTIONAL
|
||||
of TYPE clike OPTIONAL
|
||||
offset TYPE clike OPTIONAL
|
||||
collision TYPE clike OPTIONAL
|
||||
onclose TYPE clike DEFAULT ``
|
||||
!text TYPE clike
|
||||
!duration TYPE clike OPTIONAL
|
||||
!width TYPE clike OPTIONAL
|
||||
my TYPE clike OPTIONAL
|
||||
!at TYPE clike OPTIONAL
|
||||
!of TYPE clike OPTIONAL
|
||||
!offset TYPE clike OPTIONAL
|
||||
collision TYPE clike OPTIONAL
|
||||
onclose TYPE clike DEFAULT ``
|
||||
autoclose TYPE abap_bool DEFAULT abap_true
|
||||
animationtimingfunction TYPE clike OPTIONAL
|
||||
animationduration TYPE clike OPTIONAL
|
||||
animationtimingfunction TYPE clike OPTIONAL
|
||||
animationduration TYPE clike OPTIONAL
|
||||
closeonbrowsernavigation TYPE abap_bool DEFAULT abap_true
|
||||
class TYPE clike OPTIONAL.
|
||||
!class TYPE clike OPTIONAL.
|
||||
|
||||
METHODS _event
|
||||
IMPORTING
|
||||
val TYPE clike OPTIONAL
|
||||
t_arg TYPE string_table OPTIONAL
|
||||
val TYPE clike OPTIONAL
|
||||
t_arg TYPE string_table 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
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
@ -155,34 +155,34 @@ INTERFACE z2ui5_if_client
|
|||
METHODS _bind
|
||||
IMPORTING
|
||||
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_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
tab TYPE data OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
!tab TYPE data OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS _bind_edit
|
||||
IMPORTING
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
view TYPE string DEFAULT z2ui5_if_client=>cs_view-main
|
||||
!path TYPE abap_bool DEFAULT abap_false
|
||||
view TYPE string DEFAULT z2ui5_if_client=>cs_view-main
|
||||
custom_mapper 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_back TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
tab TYPE data OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
custom_filter_back TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
!tab TYPE data OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS _bind_local
|
||||
IMPORTING
|
||||
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_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
@ -192,18 +192,18 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS check_on_init
|
||||
RETURNING
|
||||
value(result) TYPE abap_bool.
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
METHODS check_app_prev_stack
|
||||
RETURNING
|
||||
value(result) TYPE abap_bool.
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
METHODS check_on_navigated
|
||||
RETURNING
|
||||
value(result) TYPE abap_bool.
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
METHODS get_app_prev
|
||||
RETURNING
|
||||
value(result) TYPE REF TO z2ui5_if_app.
|
||||
VALUE(result) TYPE REF TO z2ui5_if_app.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -46,7 +46,7 @@ INTERFACE z2ui5_if_types
|
|||
s_draft TYPE ty_s_draft,
|
||||
s_config TYPE ty_s_config,
|
||||
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.
|
||||
|
||||
TYPES:
|
||||
|
|
Loading…
Reference in New Issue
Block a user