mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 07:16:10 +08:00
parent
d5c331ffbb
commit
0c7130cfc2
|
@ -1,44 +1,46 @@
|
||||||
interface z2ui5_if_ajson_mapping
|
INTERFACE z2ui5_if_ajson_mapping
|
||||||
public.
|
PUBLIC.
|
||||||
|
|
||||||
types:
|
INTERFACES if_serializable_object.
|
||||||
begin of ty_mapping_field, " deprecated, will be removed
|
|
||||||
abap type string,
|
|
||||||
json type string,
|
|
||||||
end of ty_mapping_field,
|
|
||||||
ty_mapping_fields type standard table of ty_mapping_field
|
|
||||||
with unique sorted key abap components abap
|
|
||||||
with unique sorted key json components json.
|
|
||||||
|
|
||||||
types:
|
TYPES:
|
||||||
begin of ty_rename,
|
BEGIN OF ty_mapping_field, " deprecated, will be removed
|
||||||
from type string,
|
abap TYPE string,
|
||||||
to type string,
|
json TYPE string,
|
||||||
end of ty_rename,
|
END OF ty_mapping_field,
|
||||||
tty_rename_map type standard table of ty_rename
|
ty_mapping_fields TYPE STANDARD TABLE OF ty_mapping_field
|
||||||
with unique sorted key by_name components from.
|
WITH UNIQUE SORTED KEY abap COMPONENTS abap
|
||||||
|
WITH UNIQUE SORTED KEY json COMPONENTS json.
|
||||||
|
|
||||||
types:
|
TYPES:
|
||||||
ty_table_of type standard table of ref to z2ui5_if_ajson_mapping.
|
BEGIN OF ty_rename,
|
||||||
|
from TYPE string,
|
||||||
|
to TYPE string,
|
||||||
|
END OF ty_rename,
|
||||||
|
tty_rename_map TYPE STANDARD TABLE OF ty_rename
|
||||||
|
WITH UNIQUE SORTED KEY by_name COMPONENTS from.
|
||||||
|
|
||||||
methods to_abap " deprecated, will be removed
|
TYPES:
|
||||||
importing
|
ty_table_of TYPE STANDARD TABLE OF REF TO z2ui5_if_ajson_mapping.
|
||||||
!iv_path type string
|
|
||||||
!iv_name type string
|
|
||||||
returning
|
|
||||||
value(rv_result) type string.
|
|
||||||
|
|
||||||
methods to_json " deprecated, will be removed
|
METHODS to_abap " deprecated, will be removed
|
||||||
importing
|
IMPORTING
|
||||||
!iv_path type string
|
!iv_path TYPE string
|
||||||
!iv_name type string
|
!iv_name TYPE string
|
||||||
returning
|
RETURNING
|
||||||
value(rv_result) type string.
|
VALUE(rv_result) TYPE string.
|
||||||
|
|
||||||
methods rename_node
|
METHODS to_json " deprecated, will be removed
|
||||||
importing
|
IMPORTING
|
||||||
!is_node type z2ui5_if_ajson_types=>ty_node
|
!iv_path TYPE string
|
||||||
changing
|
!iv_name TYPE string
|
||||||
!cv_name type z2ui5_if_ajson_types=>ty_node-name.
|
RETURNING
|
||||||
|
VALUE(rv_result) TYPE string.
|
||||||
|
|
||||||
endinterface.
|
METHODS rename_node
|
||||||
|
IMPORTING
|
||||||
|
!is_node TYPE z2ui5_if_ajson_types=>ty_node
|
||||||
|
CHANGING
|
||||||
|
!cv_name TYPE z2ui5_if_ajson_types=>ty_node-name.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
||||||
|
|
|
@ -159,11 +159,9 @@ CLASS z2ui5_cl_util_func DEFINITION
|
||||||
|
|
||||||
CLASS-METHODS trans_json_by_any
|
CLASS-METHODS trans_json_by_any
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!any TYPE any
|
!any TYPE any
|
||||||
!pretty_mode TYPE clike DEFAULT z2ui5_if_client=>cs_pretty_mode-none
|
|
||||||
!compress_mode TYPE clike DEFAULT z2ui5_if_client=>cs_compress_mode-standard
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
CLASS-METHODS trans_xml_2_any
|
CLASS-METHODS trans_xml_2_any
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -1243,53 +1241,27 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD trans_json_2_any.
|
METHOD trans_json_2_any.
|
||||||
|
TRY.
|
||||||
|
|
||||||
* IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
z2ui5_cl_ajson=>parse( val )->to_abap(
|
||||||
* ASSERT 1 = 0.
|
IMPORTING
|
||||||
* ENDIF.
|
ev_container = data ).
|
||||||
|
|
||||||
/ui2/cl_json=>deserialize(
|
|
||||||
EXPORTING
|
|
||||||
json = CONV string( val )
|
|
||||||
assoc_arrays = abap_true
|
|
||||||
CHANGING
|
|
||||||
data = data ).
|
|
||||||
|
|
||||||
|
CATCH z2ui5_cx_ajson_error INTO DATA(x).
|
||||||
|
ASSERT x IS NOT BOUND.
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD trans_json_by_any.
|
METHOD trans_json_by_any.
|
||||||
|
TRY.
|
||||||
|
|
||||||
* IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
DATA(li_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ).
|
||||||
* ASSERT 1 = 0.
|
result = li_ajson->set( iv_path = `/` iv_val = any )->stringify( ).
|
||||||
* ENDIF.
|
|
||||||
|
|
||||||
CASE compress_mode.
|
|
||||||
|
|
||||||
WHEN z2ui5_if_client=>cs_compress_mode-full.
|
|
||||||
|
|
||||||
result = /ui2/cl_json=>serialize(
|
|
||||||
data = any
|
|
||||||
compress = abap_true
|
|
||||||
pretty_name = pretty_mode ).
|
|
||||||
|
|
||||||
WHEN z2ui5_if_client=>cs_compress_mode-none.
|
|
||||||
|
|
||||||
result = /ui2/cl_json=>serialize(
|
|
||||||
data = any
|
|
||||||
compress = abap_false
|
|
||||||
pretty_name = pretty_mode ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
|
|
||||||
DATA(lo_json) = NEW z2ui5_cl_util_ui2_json(
|
|
||||||
compress = abap_true
|
|
||||||
pretty_name = pretty_mode ).
|
|
||||||
|
|
||||||
result = lo_json->serialize_int( any ).
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
|
CATCH z2ui5_cx_ajson_error INTO DATA(x).
|
||||||
|
ASSERT x IS NOT BOUND.
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,240 +0,0 @@
|
||||||
CLASS z2ui5_cl_util_tree_json DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
DATA mo_root TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
DATA mo_parent TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
DATA mv_name TYPE string.
|
|
||||||
DATA mv_value TYPE string.
|
|
||||||
DATA mt_values TYPE STANDARD TABLE OF REF TO z2ui5_cl_util_tree_json WITH EMPTY KEY.
|
|
||||||
DATA mr_actual TYPE REF TO data.
|
|
||||||
DATA mv_apost_active TYPE abap_bool.
|
|
||||||
|
|
||||||
CLASS-METHODS factory
|
|
||||||
IMPORTING
|
|
||||||
iv_json TYPE clike OPTIONAL
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS constructor.
|
|
||||||
|
|
||||||
METHODS get_attribute
|
|
||||||
IMPORTING
|
|
||||||
name TYPE string
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS get_val
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
METHODS get_val_ref
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO data.
|
|
||||||
|
|
||||||
METHODS add_attribute
|
|
||||||
IMPORTING
|
|
||||||
n TYPE clike
|
|
||||||
v TYPE clike
|
|
||||||
apos_active TYPE abap_bool DEFAULT abap_true
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_object
|
|
||||||
IMPORTING
|
|
||||||
name TYPE clike
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_struc
|
|
||||||
IMPORTING
|
|
||||||
val TYPE data
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_instance
|
|
||||||
IMPORTING
|
|
||||||
val TYPE REF TO z2ui5_cl_util_tree_json
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
METHODS stringify
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
|
|
||||||
CLASS-METHODS new
|
|
||||||
IMPORTING
|
|
||||||
io_root TYPE REF TO z2ui5_cl_util_tree_json
|
|
||||||
iv_name TYPE simple
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_cl_util_tree_json IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD add_attribute.
|
|
||||||
|
|
||||||
result = new( io_root = mo_root
|
|
||||||
iv_name = n ).
|
|
||||||
|
|
||||||
result->mv_value = COND #( WHEN apos_active = abap_true
|
|
||||||
THEN escape( val = v
|
|
||||||
format = cl_abap_format=>e_json_string ) ELSE v ).
|
|
||||||
|
|
||||||
result->mv_apost_active = apos_active.
|
|
||||||
result->mo_parent = me.
|
|
||||||
INSERT result INTO TABLE mt_values.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD add_attribute_instance.
|
|
||||||
|
|
||||||
val->mo_root = mo_root.
|
|
||||||
val->mo_parent = me.
|
|
||||||
INSERT val INTO TABLE mt_values.
|
|
||||||
result = val.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD add_attribute_object.
|
|
||||||
|
|
||||||
result = new( io_root = mo_root
|
|
||||||
iv_name = name ).
|
|
||||||
INSERT result INTO TABLE mt_values.
|
|
||||||
result->mo_parent = me.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD add_attribute_struc.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <value> TYPE any.
|
|
||||||
DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_datadescr=>describe_by_data( val ) ).
|
|
||||||
DATA(lt_comp) = lo_struc->get_components( ).
|
|
||||||
|
|
||||||
LOOP AT lt_comp REFERENCE INTO DATA(lr_comp).
|
|
||||||
ASSIGN COMPONENT lr_comp->name OF STRUCTURE val TO <value>.
|
|
||||||
add_attribute( n = lr_comp->name
|
|
||||||
v = <value> ).
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
result = me.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
mo_root = me.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD factory.
|
|
||||||
|
|
||||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
|
||||||
ASSERT 1 = 0.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
result = NEW #( ).
|
|
||||||
result->mo_root = result.
|
|
||||||
|
|
||||||
z2ui5_cl_util_func=>trans_json_2_any(
|
|
||||||
EXPORTING
|
|
||||||
val = iv_json
|
|
||||||
CHANGING
|
|
||||||
data = result->mr_actual ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_attribute.
|
|
||||||
|
|
||||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
|
||||||
ASSERT 1 = 0.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <attribute> TYPE any.
|
|
||||||
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( mr_actual IS INITIAL ) ).
|
|
||||||
|
|
||||||
result = new( io_root = mo_root
|
|
||||||
iv_name = name ).
|
|
||||||
|
|
||||||
DATA(lv_name) = 'MR_ACTUAL->' && replace( val = name
|
|
||||||
sub = `-`
|
|
||||||
with = `_`
|
|
||||||
occ = 0 ).
|
|
||||||
|
|
||||||
|
|
||||||
ASSIGN (lv_name) TO <attribute>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
|
|
||||||
result->mr_actual = <attribute>.
|
|
||||||
result->mo_parent = me.
|
|
||||||
INSERT result INTO TABLE mt_values.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_val.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <attribute> TYPE any.
|
|
||||||
ASSIGN mr_actual->* TO <attribute>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( when = xsdbool( sy-subrc <> 0 )
|
|
||||||
v = `value of attribute in JSON not found` ).
|
|
||||||
result = <attribute>.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_val_ref.
|
|
||||||
|
|
||||||
result = mr_actual.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD new.
|
|
||||||
|
|
||||||
result = NEW #( ).
|
|
||||||
result->mo_root = io_root.
|
|
||||||
result->mv_name = CONV string( iv_name ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD stringify.
|
|
||||||
|
|
||||||
LOOP AT mt_values INTO DATA(lo_attri).
|
|
||||||
|
|
||||||
IF sy-tabix > 1.
|
|
||||||
result = result && `,`.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
result = |{ result }"{ lo_attri->mv_name }":|.
|
|
||||||
|
|
||||||
IF lo_attri->mt_values IS NOT INITIAL.
|
|
||||||
result = result && lo_attri->stringify( ).
|
|
||||||
ELSEIF lo_attri->mv_apost_active = abap_true OR lo_attri->mv_value IS INITIAL.
|
|
||||||
result = result && `"` && lo_attri->mv_value && `"`.
|
|
||||||
ELSE.
|
|
||||||
result = result && lo_attri->mv_value.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
result = `{` && result && `}`.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,85 +0,0 @@
|
||||||
*CLASS ltcl_unit_01_json DEFINITION FINAL FOR TESTING
|
|
||||||
* DURATION LONG
|
|
||||||
* RISK LEVEL HARMLESS.
|
|
||||||
*
|
|
||||||
* PRIVATE SECTION.
|
|
||||||
* METHODS test_json_attri FOR TESTING RAISING cx_static_check.
|
|
||||||
* METHODS test_json_object FOR TESTING RAISING cx_static_check.
|
|
||||||
* METHODS test_json_struc FOR TESTING RAISING cx_static_check.
|
|
||||||
* METHODS test_create_json FOR TESTING RAISING cx_static_check.
|
|
||||||
*
|
|
||||||
*ENDCLASS.
|
|
||||||
*
|
|
||||||
*CLASS ltcl_unit_01_json IMPLEMENTATION.
|
|
||||||
*
|
|
||||||
* METHOD test_json_attri.
|
|
||||||
*
|
|
||||||
* DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
|
|
||||||
* lo_tree->add_attribute( n = `AAA`
|
|
||||||
* v = `BBB` ).
|
|
||||||
*
|
|
||||||
* DATA(lv_result) = lo_tree->stringify( ).
|
|
||||||
* IF `{"AAA":"BBB"}` <> lv_result.
|
|
||||||
* cl_abap_unit_assert=>fail( 'json tree - wrong stringify attributes' ).
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
* METHOD test_json_object.
|
|
||||||
*
|
|
||||||
* DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
|
|
||||||
* lo_tree->add_attribute_object( `CCC` )->add_attribute( n = `AAA`
|
|
||||||
* v = `BBB` ).
|
|
||||||
*
|
|
||||||
* DATA(lv_result) = lo_tree->stringify( ).
|
|
||||||
* IF `{"CCC":{"AAA":"BBB"}}` <> lv_result.
|
|
||||||
* cl_abap_unit_assert=>fail( 'json tree - wrong stringify object attributes' ).
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
* METHOD test_json_struc.
|
|
||||||
*
|
|
||||||
* DATA(lo_tree) = NEW z2ui5_cl_util_tree_json( ).
|
|
||||||
*
|
|
||||||
* TYPES:
|
|
||||||
* BEGIN OF ty_s_test,
|
|
||||||
* comp1 TYPE string,
|
|
||||||
* comp2 TYPE string,
|
|
||||||
* END OF ty_s_test.
|
|
||||||
*
|
|
||||||
* DATA(ls_test) = VALUE ty_s_test( comp1 = `AAA` comp2 = `BBB` ).
|
|
||||||
* lo_tree->add_attribute_object( `CCC` )->add_attribute_struc( ls_test ).
|
|
||||||
*
|
|
||||||
* DATA(lv_result) = lo_tree->stringify( ).
|
|
||||||
* IF `{"CCC":{"COMP1":"AAA","COMP2":"BBB"}}` <> lv_result.
|
|
||||||
* cl_abap_unit_assert=>fail( 'json tree - wrong stringify structure' ).
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
* METHOD test_create_json.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* DATA(lo_json) = z2ui5_cl_util_tree_json=>factory( `{"CCC":{"COMP1":"AAA","COMP2":"BBB"}}` ).
|
|
||||||
*
|
|
||||||
* DATA(lo_attri) = lo_json->get_attribute( `CCC` )->get_attribute( `COMP2` ).
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* FIELD-SYMBOLS <any> TYPE any.
|
|
||||||
* DATA(lr_ref) = lo_attri->get_val_ref( ).
|
|
||||||
*
|
|
||||||
* ASSIGN lr_ref->* TO <any>.
|
|
||||||
* IF <any> <> `BBB`.
|
|
||||||
* cl_abap_unit_assert=>fail( quit = 5 ).
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* DATA(lv_val) = lo_attri->get_val( ).
|
|
||||||
* IF lv_val <> `BBB`.
|
|
||||||
* cl_abap_unit_assert=>fail( quit = 5 ).
|
|
||||||
* ENDIF.
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
*ENDCLASS.
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<VSEOCLASS>
|
|
||||||
<CLSNAME>Z2UI5_CL_UTIL_TREE_JSON</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abap2UI5 - utility json</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,29 +0,0 @@
|
||||||
CLASS z2ui5_cl_util_ui2_json DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC INHERITING FROM /ui2/cl_json.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
PROTECTED SECTION.
|
|
||||||
METHODS is_compressable REDEFINITION.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_cl_util_ui2_json IMPLEMENTATION.
|
|
||||||
|
|
||||||
METHOD is_compressable.
|
|
||||||
|
|
||||||
rv_compress = super->is_compressable(
|
|
||||||
type_descr = type_descr
|
|
||||||
name = name ).
|
|
||||||
|
|
||||||
IF z2ui5_cl_util_func=>boolean_check_by_name( type_descr->get_relative_name( ) ).
|
|
||||||
rv_compress = abap_false.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<VSEOCLASS>
|
|
||||||
<CLSNAME>Z2UI5_CL_UTIL_UI2_JSON</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abap2UI5 - /ui2/cl_json compress extension</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -1,33 +1,33 @@
|
||||||
class Z2UI5_CX_UTIL_ERROR definition
|
CLASS z2ui5_cx_util_error DEFINITION
|
||||||
public
|
PUBLIC
|
||||||
inheriting from CX_NO_CHECK
|
INHERITING FROM cx_no_check
|
||||||
final
|
FINAL
|
||||||
create public .
|
CREATE PUBLIC .
|
||||||
|
|
||||||
public section.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
data:
|
DATA:
|
||||||
BEGIN OF ms_error,
|
BEGIN OF ms_error,
|
||||||
x_root TYPE REF TO cx_root,
|
x_root TYPE REF TO cx_root,
|
||||||
uuid TYPE string,
|
uuid TYPE string,
|
||||||
text TYPE string,
|
text TYPE string,
|
||||||
END OF ms_error .
|
END OF ms_error .
|
||||||
|
|
||||||
methods CONSTRUCTOR
|
METHODS constructor
|
||||||
importing
|
IMPORTING
|
||||||
!VAL type ANY optional
|
!val TYPE any OPTIONAL
|
||||||
!PREVIOUS type ref to CX_ROOT optional
|
!previous TYPE REF TO cx_root OPTIONAL
|
||||||
preferred parameter VAL .
|
PREFERRED PARAMETER val .
|
||||||
|
|
||||||
methods IF_MESSAGE~GET_TEXT
|
METHODS if_message~get_text
|
||||||
redefinition .
|
REDEFINITION .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS Z2UI5_CX_UTIL_ERROR IMPLEMENTATION.
|
CLASS z2ui5_cx_util_error IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
METHOD constructor ##ADT_SUPPRESS_GENERATION.
|
||||||
|
@ -45,7 +45,7 @@ CLASS Z2UI5_CX_UTIL_ERROR IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD IF_MESSAGE~get_text.
|
METHOD if_message~get_text.
|
||||||
|
|
||||||
IF ms_error-x_root IS NOT INITIAL.
|
IF ms_error-x_root IS NOT INITIAL.
|
||||||
result = ms_error-x_root->get_text( ).
|
result = ms_error-x_root->get_text( ).
|
||||||
|
@ -55,7 +55,7 @@ CLASS Z2UI5_CX_UTIL_ERROR IMPLEMENTATION.
|
||||||
error = abap_true.
|
error = abap_true.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
result = COND #( WHEN error = abap_true AND result IS INITIAL THEN `unknown error` else result ).
|
result = COND #( WHEN error = abap_true AND result IS INITIAL THEN `unknown error` ELSE result ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -33,7 +33,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
||||||
depth TYPE i,
|
depth TYPE i,
|
||||||
ajson_local TYPE REF TO z2ui5_if_ajson,
|
ajson_local TYPE REF TO z2ui5_if_ajson,
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter,
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter,
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping,
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping,
|
||||||
END OF ty_s_attri.
|
END OF ty_s_attri.
|
||||||
TYPES ty_t_attri TYPE SORTED TABLE OF ty_s_attri WITH UNIQUE KEY name.
|
TYPES ty_t_attri TYPE SORTED TABLE OF ty_s_attri WITH UNIQUE KEY name.
|
||||||
|
|
||||||
|
@ -45,9 +45,6 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
||||||
data TYPE data OPTIONAL
|
data TYPE data OPTIONAL
|
||||||
check_attri TYPE data OPTIONAL
|
check_attri TYPE data OPTIONAL
|
||||||
view TYPE clike OPTIONAL
|
view TYPE clike OPTIONAL
|
||||||
pretty_name TYPE clike OPTIONAL
|
|
||||||
compress TYPE clike OPTIONAL
|
|
||||||
* compress_custom TYPE clike OPTIONAL
|
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -132,12 +129,6 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE REF TO ty_s_attri.
|
VALUE(result) TYPE REF TO ty_s_attri.
|
||||||
|
|
||||||
METHODS name_front_create
|
|
||||||
IMPORTING
|
|
||||||
val TYPE clike
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
@ -186,23 +177,10 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
bind->viewname = mv_view.
|
bind->viewname = mv_view.
|
||||||
bind->custom_filter = mo_custom_filter.
|
bind->custom_filter = mo_custom_filter.
|
||||||
bind->custom_mapper = mo_custom_mapper.
|
bind->custom_mapper = mo_custom_mapper.
|
||||||
* bind->compress_custom = mv_compress_custom.
|
|
||||||
|
|
||||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_false.
|
bind->name_front = replace( val = bind->name sub = `-` with = `/` ).
|
||||||
|
bind->name_front = replace( val = bind->name_front sub = `>` with = `` ).
|
||||||
bind->name_front = name_front_create( bind->name ).
|
result = `/` && COND #( WHEN mv_type = cs_bind_type-two_way THEN cv_model_edit_name && `/` ) && bind->name_front.
|
||||||
result = COND #( WHEN mv_type = cs_bind_type-two_way THEN `/` && cv_model_edit_name && `/` ELSE `/` ) && bind->name_front.
|
|
||||||
IF strlen( result ) > 30.
|
|
||||||
bind->name_front = z2ui5_cl_util_func=>uuid_get_c22( ).
|
|
||||||
result = COND #( WHEN mv_type = cs_bind_type-two_way THEN `/` && cv_model_edit_name && `/` ELSE `/` ) && bind->name_front.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
bind->name_front = replace( val = bind->name sub = `-` with = `/` ).
|
|
||||||
bind->name_front = replace( val = bind->name_front sub = `>` with = `` ).
|
|
||||||
result = `/` && COND #( WHEN mv_type = cs_bind_type-two_way THEN cv_model_edit_name && `/` ) && bind->name_front.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -214,40 +192,27 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
ASSIGN mr_data->* TO <any>.
|
ASSIGN mr_data->* TO <any>.
|
||||||
DATA(lv_id) = to_upper( z2ui5_cl_util_func=>uuid_get_c22( ) ).
|
DATA(lv_id) = to_upper( z2ui5_cl_util_func=>uuid_get_c22( ) ).
|
||||||
|
|
||||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_false.
|
IF mo_custom_mapper IS BOUND.
|
||||||
|
DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = mo_custom_mapper ) ).
|
||||||
INSERT VALUE #( name = lv_id
|
|
||||||
data_stringify = z2ui5_cl_util_func=>trans_json_by_any( any = mr_data
|
|
||||||
compress_mode = me->mv_compress )
|
|
||||||
bind_type = cs_bind_type-one_time )
|
|
||||||
INTO TABLE mt_attri.
|
|
||||||
|
|
||||||
ELSE.
|
ELSE.
|
||||||
|
ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
||||||
"(1) set pretty mode
|
|
||||||
CASE mv_pretty_name.
|
|
||||||
|
|
||||||
WHEN z2ui5_if_client=>cs_pretty_mode-none.
|
|
||||||
DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
|
||||||
|
|
||||||
WHEN z2ui5_if_client=>cs_pretty_mode-camel_case.
|
|
||||||
ajson = z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_camel_case( iv_first_json_upper = abap_false ) ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
ASSERT `` = `ERROR_UNKNOWN_PRETTY_MODE`.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
INSERT VALUE #( name_front = lv_id
|
|
||||||
name = lv_id
|
|
||||||
ajson_local = ajson->set( iv_path = `/` iv_val = <any> )
|
|
||||||
bind_type = cs_bind_type-one_time
|
|
||||||
pretty_name = mv_pretty_name
|
|
||||||
compress = mv_compress
|
|
||||||
)
|
|
||||||
INTO TABLE mt_attri.
|
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF mo_custom_filter IS BOUND.
|
||||||
|
ajson = ajson->filter( mo_custom_filter ).
|
||||||
|
ELSE.
|
||||||
|
ajson = ajson->filter( z2ui5_cl_ajson_filter_lib=>create_empty_filter( ) ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
INSERT VALUE #( name_front = lv_id
|
||||||
|
name = lv_id
|
||||||
|
ajson_local = ajson->set( iv_path = `/` iv_val = <any> )
|
||||||
|
bind_type = cs_bind_type-one_time
|
||||||
|
pretty_name = mv_pretty_name
|
||||||
|
compress = mv_compress
|
||||||
|
)
|
||||||
|
INTO TABLE mt_attri.
|
||||||
|
|
||||||
result = |/{ lv_id }|.
|
result = |/{ lv_id }|.
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
|
@ -327,8 +292,6 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
r_result->mv_type = type.
|
r_result->mv_type = type.
|
||||||
r_result->mv_check_attri = check_attri.
|
r_result->mv_check_attri = check_attri.
|
||||||
r_result->mv_view = view.
|
r_result->mv_view = view.
|
||||||
r_result->mv_pretty_name = pretty_name.
|
|
||||||
r_result->mv_compress = compress.
|
|
||||||
r_result->mo_custom_filter = custom_filter.
|
r_result->mo_custom_filter = custom_filter.
|
||||||
r_result->mo_custom_mapper = custom_mapper.
|
r_result->mo_custom_mapper = custom_mapper.
|
||||||
|
|
||||||
|
@ -502,29 +465,6 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD name_front_create.
|
|
||||||
|
|
||||||
result = replace( val = val
|
|
||||||
sub = `*`
|
|
||||||
with = `_`
|
|
||||||
occ = 0 ).
|
|
||||||
result = replace( val = result
|
|
||||||
sub = `>`
|
|
||||||
with = `_`
|
|
||||||
occ = 0 ).
|
|
||||||
result = replace( val = result
|
|
||||||
sub = `-`
|
|
||||||
with = `_`
|
|
||||||
occ = 0 ).
|
|
||||||
|
|
||||||
IF mv_pretty_name = abap_true.
|
|
||||||
REPLACE ALL OCCURRENCES OF `_` IN result WITH ``.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD search_binding.
|
METHOD search_binding.
|
||||||
|
|
||||||
set_attri_ready( REF #( mt_attri ) ).
|
set_attri_ready( REF #( mt_attri ) ).
|
||||||
|
|
|
@ -316,8 +316,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
IF struc IS NOT INITIAL.
|
IF struc IS NOT INITIAL.
|
||||||
|
|
||||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc
|
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc
|
||||||
path = abap_true
|
path = abap_true ).
|
||||||
pretty_mode = pretty_mode ).
|
|
||||||
result = bind_struc_comp(
|
result = bind_struc_comp(
|
||||||
iv_name = lv_name_struc
|
iv_name = lv_name_struc
|
||||||
i_struc = struc
|
i_struc = struc
|
||||||
|
@ -333,9 +332,6 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
check_attri = mo_handler->ms_db-check_attri
|
check_attri = mo_handler->ms_db-check_attri
|
||||||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
|
type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
|
||||||
data = val
|
data = val
|
||||||
pretty_name = pretty_mode
|
|
||||||
compress = compress_mode
|
|
||||||
* compress_custom = compress_custom
|
|
||||||
custom_mapper = custom_mapper
|
custom_mapper = custom_mapper
|
||||||
custom_filter = custom_filter
|
custom_filter = custom_filter
|
||||||
).
|
).
|
||||||
|
@ -377,8 +373,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
IF tab IS NOT INITIAL.
|
IF tab IS NOT INITIAL.
|
||||||
|
|
||||||
DATA(lv_name) = z2ui5_if_client~_bind_edit( val = tab
|
DATA(lv_name) = z2ui5_if_client~_bind_edit( val = tab
|
||||||
path = abap_true
|
path = abap_true ).
|
||||||
pretty_mode = pretty_mode ).
|
|
||||||
result = bind_tab_cell(
|
result = bind_tab_cell(
|
||||||
iv_name = lv_name
|
iv_name = lv_name
|
||||||
i_tab_index = tab_index
|
i_tab_index = tab_index
|
||||||
|
@ -392,8 +387,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
IF struc IS NOT INITIAL.
|
IF struc IS NOT INITIAL.
|
||||||
|
|
||||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc
|
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc
|
||||||
path = abap_true
|
path = abap_true ).
|
||||||
pretty_mode = pretty_mode ).
|
|
||||||
result = bind_struc_comp(
|
result = bind_struc_comp(
|
||||||
iv_name = lv_name_struc
|
iv_name = lv_name_struc
|
||||||
i_struc = struc
|
i_struc = struc
|
||||||
|
@ -410,9 +404,6 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
type = z2ui5_cl_fw_binding=>cs_bind_type-two_way
|
type = z2ui5_cl_fw_binding=>cs_bind_type-two_way
|
||||||
data = val
|
data = val
|
||||||
view = view
|
view = view
|
||||||
pretty_name = pretty_mode
|
|
||||||
compress = compress_mode
|
|
||||||
* compress_custom = compress_custom
|
|
||||||
custom_mapper = custom_mapper
|
custom_mapper = custom_mapper
|
||||||
custom_filter = custom_filter
|
custom_filter = custom_filter
|
||||||
).
|
).
|
||||||
|
@ -436,10 +427,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
check_attri = mo_handler->ms_db-check_attri
|
check_attri = mo_handler->ms_db-check_attri
|
||||||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
|
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
|
||||||
data = val
|
data = val
|
||||||
pretty_name = pretty_mode
|
custom_mapper = custom_mapper
|
||||||
compress = compress_mode
|
|
||||||
* compress_custom = compress_custom
|
|
||||||
custom_mapper = custom_mapper
|
|
||||||
custom_filter = custom_filter
|
custom_filter = custom_filter
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ CLASS z2ui5_cl_fw_controller DEFINITION
|
||||||
CREATE PUBLIC.
|
CREATE PUBLIC.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-DATA cv_check_ajson TYPE abap_bool VALUE abap_true.
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_next2,
|
BEGIN OF ty_s_next2,
|
||||||
|
@ -59,7 +58,6 @@ CLASS z2ui5_cl_fw_controller DEFINITION
|
||||||
END OF ty_s_next.
|
END OF ty_s_next.
|
||||||
|
|
||||||
CLASS-DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
|
CLASS-DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
|
||||||
CLASS-DATA so_body TYPE REF TO z2ui5_cl_util_tree_json.
|
|
||||||
CLASS-DATA so_body_ajson TYPE REF TO z2ui5_if_ajson.
|
CLASS-DATA so_body_ajson TYPE REF TO z2ui5_if_ajson.
|
||||||
|
|
||||||
DATA ms_db TYPE z2ui5_cl_fw_db=>ty_s_db.
|
DATA ms_db TYPE z2ui5_cl_fw_db=>ty_s_db.
|
||||||
|
@ -86,10 +84,6 @@ CLASS z2ui5_cl_fw_controller DEFINITION
|
||||||
|
|
||||||
CLASS-METHODS body_read_location.
|
CLASS-METHODS body_read_location.
|
||||||
|
|
||||||
CLASS-METHODS _get_id
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
CLASS-METHODS app_system_factory
|
CLASS-METHODS app_system_factory
|
||||||
IMPORTING
|
IMPORTING
|
||||||
VALUE(ix) TYPE REF TO cx_root OPTIONAL
|
VALUE(ix) TYPE REF TO cx_root OPTIONAL
|
||||||
|
@ -129,18 +123,6 @@ CLASS z2ui5_cl_fw_controller DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_fw_controller.
|
VALUE(result) TYPE REF TO z2ui5_cl_fw_controller.
|
||||||
|
|
||||||
METHODS app_client_end_model
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_viewmodel) TYPE string.
|
|
||||||
|
|
||||||
METHODS app_client_end_response
|
|
||||||
IMPORTING
|
|
||||||
iv_viewmodel TYPE string
|
|
||||||
RETURNING
|
|
||||||
VALUE(r_result) TYPE string.
|
|
||||||
|
|
||||||
METHODS app_client_end_db.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -168,50 +150,13 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
METHOD app_client_begin_event.
|
METHOD app_client_begin_event.
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
DATA(ajson) = so_body_ajson->slice( `/ARGUMENTS` ).
|
||||||
|
ms_actual-event = ajson->get( `/1/EVENT` ).
|
||||||
FIELD-SYMBOLS <any> TYPE any.
|
ajson->delete( `/1` ).
|
||||||
FIELD-SYMBOLS <arg> TYPE STANDARD TABLE.
|
ajson->to_abap(
|
||||||
FIELD-SYMBOLS <arg_row> TYPE any.
|
IMPORTING
|
||||||
FIELD-SYMBOLS <val> TYPE any.
|
ev_container = ms_actual-t_event_arg
|
||||||
|
).
|
||||||
ASSIGN (`SO_BODY->MR_ACTUAL`) TO <any>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
ASSIGN (`<ANY>->ARGUMENTS`) TO <any>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
ASSIGN (`<ANY>->*`) TO <any>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
|
|
||||||
ASSIGN <any> TO <arg>.
|
|
||||||
z2ui5_cl_util_func=>x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
|
|
||||||
LOOP AT <arg> ASSIGNING <arg_row>.
|
|
||||||
|
|
||||||
IF sy-tabix = 1.
|
|
||||||
|
|
||||||
ASSIGN (`<ARG_ROW>->EVENT->*`) TO <val>.
|
|
||||||
ms_actual-event = <val>.
|
|
||||||
ELSE.
|
|
||||||
ASSIGN <arg_row>->* TO <val>.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
INSERT CONV string( <val> ) INTO TABLE ms_actual-t_event_arg.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
DATA(ajson) = so_body_ajson->slice( `/ARGUMENTS` ).
|
|
||||||
ms_actual-event = ajson->get( `/1/EVENT` ).
|
|
||||||
ajson->delete( `/1` ).
|
|
||||||
ajson->to_abap(
|
|
||||||
IMPORTING
|
|
||||||
ev_container = ms_actual-t_event_arg
|
|
||||||
).
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
ASSERT x IS NOT BOUND.
|
ASSERT x IS NOT BOUND.
|
||||||
|
@ -220,91 +165,31 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD app_client_begin_factory.
|
METHOD app_client_begin_factory.
|
||||||
|
|
||||||
result = NEW #( ).
|
|
||||||
result->ms_db = z2ui5_cl_fw_db=>load_app( id_prev ).
|
|
||||||
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
|
||||||
result->ms_db-id_prev = id_prev.
|
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
IF cv_check_ajson = abap_false.
|
|
||||||
result->ms_actual-viewname = so_body->get_attribute( `VIEWNAME` )->get_val( ).
|
|
||||||
ELSE.
|
|
||||||
result->ms_actual-viewname = so_body_ajson->get( iv_path = `/VIEWNAME` ).
|
|
||||||
ENDIF.
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
|
result = NEW #( ).
|
||||||
|
result->ms_db = z2ui5_cl_fw_db=>load_app( id_prev ).
|
||||||
|
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
||||||
|
result->ms_db-id_prev = id_prev.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
result->ms_actual-viewname = so_body_ajson->get( iv_path = `/VIEWNAME` ).
|
||||||
|
|
||||||
|
CATCH cx_root INTO DATA(x).
|
||||||
|
ASSERT x IS NOT BOUND.
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD app_client_begin_model.
|
METHOD app_client_begin_model.
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
z2ui5_cl_fw_model_ajson=>front_to_back(
|
||||||
|
viewname = ms_actual-viewname
|
||||||
TRY.
|
app = ms_db-app
|
||||||
DATA(lo_model) = z2ui5_cl_fw_model=>factory(
|
t_attri = ms_db-t_attri
|
||||||
viewname = ms_actual-viewname
|
ajson_in = so_body_ajson
|
||||||
app = ms_db-app
|
).
|
||||||
attri = ms_db-t_attri ).
|
|
||||||
|
|
||||||
lo_model->main_set_backend(
|
|
||||||
so_body->get_attribute( z2ui5_cl_fw_binding=>cv_model_edit_name )->mr_actual ).
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
z2ui5_cl_fw_model_ajson=>front_to_back(
|
|
||||||
viewname = ms_actual-viewname
|
|
||||||
app = ms_db-app
|
|
||||||
t_attri = ms_db-t_attri
|
|
||||||
ajson_in = so_body_ajson
|
|
||||||
).
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD app_client_end_db.
|
|
||||||
|
|
||||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
|
||||||
db = ms_db ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD app_client_end_model.
|
|
||||||
|
|
||||||
DATA(lo_binder) = z2ui5_cl_fw_model=>factory(
|
|
||||||
viewname = ms_actual-viewname
|
|
||||||
app = ms_db-app
|
|
||||||
attri = ms_db-t_attri ).
|
|
||||||
|
|
||||||
rv_viewmodel = lo_binder->main_set_frontend( ).
|
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD app_client_end_response.
|
|
||||||
|
|
||||||
DATA(lo_resp) = z2ui5_cl_util_tree_json=>factory( ).
|
|
||||||
|
|
||||||
lo_resp->add_attribute( n = `OVIEWMODEL`
|
|
||||||
v = iv_viewmodel
|
|
||||||
apos_active = abap_false ).
|
|
||||||
|
|
||||||
lo_resp->add_attribute( n = `PARAMS`
|
|
||||||
v = z2ui5_cl_util_func=>trans_json_by_any( ms_next-s_set )
|
|
||||||
apos_active = abap_false ).
|
|
||||||
|
|
||||||
lo_resp->add_attribute( n = `ID`
|
|
||||||
v = ms_db-id ).
|
|
||||||
|
|
||||||
r_result = lo_resp->mo_root->stringify( ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -354,32 +239,18 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD app_start_factory.
|
METHOD app_start_factory.
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
TRY.
|
||||||
TRY.
|
DATA(lv_classname) = to_upper( so_body_ajson->get( `/APP_START` ) ).
|
||||||
DATA(lv_classname) = to_upper( so_body->get_attribute( `APP_START` )->get_val( ) ).
|
lv_classname = z2ui5_cl_util_func=>c_trim( lv_classname ).
|
||||||
lv_classname = z2ui5_cl_util_func=>c_trim( lv_classname ).
|
CATCH cx_root.
|
||||||
CATCH cx_root.
|
ENDTRY.
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
IF lv_classname IS INITIAL.
|
|
||||||
lv_classname = z2ui5_cl_util_func=>url_param_get( val = `app_start`
|
|
||||||
url = ss_config-search ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lv_classname = to_upper( so_body_ajson->get( `/APP_START` ) ).
|
|
||||||
lv_classname = z2ui5_cl_util_func=>c_trim( lv_classname ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
IF lv_classname IS INITIAL.
|
|
||||||
lv_classname = z2ui5_cl_util_func=>url_param_get( val = `app_start`
|
|
||||||
url = ss_config-search ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
|
IF lv_classname IS INITIAL.
|
||||||
|
lv_classname = z2ui5_cl_util_func=>url_param_get( val = `app_start`
|
||||||
|
url = ss_config-search ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
IF lv_classname IS INITIAL.
|
IF lv_classname IS INITIAL.
|
||||||
result = app_system_factory( ).
|
result = app_system_factory( ).
|
||||||
RETURN.
|
RETURN.
|
||||||
|
@ -422,74 +293,16 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD body_read_location.
|
METHOD body_read_location.
|
||||||
|
TRY.
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
so_body_ajson->slice( `/OLOCATION` )->to_abap(
|
||||||
|
IMPORTING
|
||||||
|
ev_container = ss_config
|
||||||
|
).
|
||||||
|
|
||||||
FIELD-SYMBOLS <struc> TYPE any.
|
CATCH cx_root INTO DATA(x).
|
||||||
FIELD-SYMBOLS <val_ref> TYPE REF TO data.
|
ASSERT x IS NOT BOUND.
|
||||||
FIELD-SYMBOLS <tab> TYPE table.
|
ENDTRY.
|
||||||
FIELD-SYMBOLS <val2> TYPE data.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
DATA(location) = so_body->get_attribute( `OLOCATION` ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ss_config-search = location->get_attribute( `SEARCH` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ss_config-origin = location->get_attribute( `ORIGIN` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ss_config-pathname = location->get_attribute( `PATHNAME` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ss_config-version = location->get_attribute( `VERSION` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
ss_config-check_launchpad_active = location->get_attribute( `CHECK_LAUNCHPAD_ACTIVE` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
DATA(ls_params) = location->get_attribute( `STARTUP_PARAMETERS` )->get_val_ref( ).
|
|
||||||
ASSIGN ls_params->* TO <struc>.
|
|
||||||
|
|
||||||
DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( <struc> ).
|
|
||||||
|
|
||||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
|
||||||
|
|
||||||
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <struc> TO <val_ref>.
|
|
||||||
ASSIGN <val_ref>->* TO <tab>.
|
|
||||||
ASSIGN <tab>[ 1 ] TO <val_ref>.
|
|
||||||
ASSIGN <val_ref>->* TO <val2>.
|
|
||||||
|
|
||||||
INSERT VALUE #( n = ls_comp-name v = <val2> ) INTO TABLE ss_config-t_startup_params.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
TRY.
|
|
||||||
so_body_ajson->slice( `/OLOCATION` )->to_abap(
|
|
||||||
IMPORTING
|
|
||||||
ev_container = ss_config
|
|
||||||
).
|
|
||||||
CATCH cx_root INTO DATA(x).
|
|
||||||
ASSERT x IS NOT BOUND.
|
|
||||||
ENDTRY.
|
|
||||||
ENDIF.
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -534,21 +347,10 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
METHOD request_begin.
|
METHOD request_begin.
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
* ss_config-body = body.
|
so_body_ajson = z2ui5_cl_ajson=>parse( body ).
|
||||||
IF cv_check_ajson = abap_false.
|
|
||||||
so_body = z2ui5_cl_util_tree_json=>factory( body ).
|
|
||||||
ELSE.
|
|
||||||
so_body_ajson = z2ui5_cl_ajson=>parse( body ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
* ss_config-view_model_edit_name = z2ui5_cl_fw_binding=>cv_model_edit_name.
|
|
||||||
body_read_location( ).
|
body_read_location( ).
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
DATA(lv_id_prev) = so_body_ajson->get( `/ID` ).
|
||||||
DATA(lv_id_prev) = _get_id( ).
|
|
||||||
ELSE.
|
|
||||||
lv_id_prev = so_body_ajson->get( `/ID` ).
|
|
||||||
ENDIF.
|
|
||||||
IF lv_id_prev IS INITIAL.
|
IF lv_id_prev IS INITIAL.
|
||||||
result = app_start_factory( ).
|
result = app_start_factory( ).
|
||||||
result->ms_actual-check_on_navigated = abap_true.
|
result->ms_actual-check_on_navigated = abap_true.
|
||||||
|
@ -572,47 +374,28 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD request_end.
|
METHOD request_end.
|
||||||
|
|
||||||
IF cv_check_ajson = abap_false.
|
|
||||||
|
|
||||||
DATA(lv_viewmodel) = app_client_end_model( ).
|
|
||||||
result = app_client_end_response( lv_viewmodel ).
|
|
||||||
app_client_end_db( ).
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
"todo performance - write all data directly into the target ajson
|
|
||||||
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
|
|
||||||
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
|
||||||
|
|
||||||
ajson_result->set( iv_path = `/PARAMS` iv_val = ms_next-s_set ).
|
|
||||||
ajson_result->set( iv_path = `/ID` iv_val = ms_db-id ).
|
|
||||||
ajson_result = ajson_result->filter( NEW z2ui5_cl_fw_model_ajson( ) ).
|
|
||||||
|
|
||||||
DATA(lo_ajson) = z2ui5_cl_fw_model_ajson=>back_to_front(
|
|
||||||
app = ms_db-app
|
|
||||||
t_attri = ms_db-t_attri ).
|
|
||||||
|
|
||||||
ajson_result->set( iv_path = `/OVIEWMODEL` iv_val = lo_ajson ).
|
|
||||||
result = ajson_result->stringify( ).
|
|
||||||
|
|
||||||
z2ui5_cl_fw_db=>create( id = ms_db-id db = ms_db ).
|
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
|
||||||
ASSERT x IS NOT BOUND.
|
|
||||||
ENDTRY.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD _get_id.
|
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
result = so_body->get_attribute( `ID` )->get_val( ).
|
"todo performance - write all data directly into the target ajson
|
||||||
|
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
|
||||||
|
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
||||||
|
|
||||||
CATCH cx_root.
|
ajson_result->set( iv_path = `/PARAMS` iv_val = ms_next-s_set ).
|
||||||
|
ajson_result->set( iv_path = `/ID` iv_val = ms_db-id ).
|
||||||
|
ajson_result = ajson_result->filter( NEW z2ui5_cl_fw_model_ajson( ) ).
|
||||||
|
|
||||||
|
DATA(lo_ajson) = z2ui5_cl_fw_model_ajson=>back_to_front(
|
||||||
|
app = ms_db-app
|
||||||
|
t_attri = ms_db-t_attri ).
|
||||||
|
|
||||||
|
ajson_result->set( iv_path = `/OVIEWMODEL` iv_val = lo_ajson ).
|
||||||
|
result = ajson_result->stringify( ).
|
||||||
|
|
||||||
|
z2ui5_cl_fw_db=>create( id = ms_db-id db = ms_db ).
|
||||||
|
|
||||||
|
CATCH cx_root INTO DATA(x).
|
||||||
|
ASSERT x IS NOT BOUND.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -1,177 +0,0 @@
|
||||||
CLASS z2ui5_cl_fw_model DEFINITION
|
|
||||||
PUBLIC
|
|
||||||
FINAL
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
CLASS-METHODS factory
|
|
||||||
IMPORTING
|
|
||||||
app TYPE REF TO object
|
|
||||||
attri TYPE z2ui5_cl_fw_binding=>ty_t_attri
|
|
||||||
viewname TYPE string
|
|
||||||
RETURNING
|
|
||||||
VALUE(r_result) TYPE REF TO z2ui5_cl_fw_model.
|
|
||||||
|
|
||||||
METHODS main_set_backend
|
|
||||||
IMPORTING
|
|
||||||
model TYPE REF TO data ##NEEDED.
|
|
||||||
|
|
||||||
METHODS main_set_frontend
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
DATA mo_app TYPE REF TO object.
|
|
||||||
DATA mt_attri TYPE z2ui5_cl_fw_binding=>ty_t_attri.
|
|
||||||
DATA mv_viewname TYPE string.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_cl_fw_model IMPLEMENTATION.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD factory.
|
|
||||||
|
|
||||||
r_result = NEW #( ).
|
|
||||||
r_result->mo_app = app.
|
|
||||||
r_result->mt_attri = attri.
|
|
||||||
r_result->mv_viewname = viewname.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
METHOD main_set_backend.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <backend> TYPE any.
|
|
||||||
FIELD-SYMBOLS <frontend> TYPE any.
|
|
||||||
|
|
||||||
LOOP AT mt_attri REFERENCE INTO DATA(lr_attri)
|
|
||||||
WHERE bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way AND
|
|
||||||
viewname = mv_viewname.
|
|
||||||
TRY.
|
|
||||||
DATA(lv_name_back) = `MO_APP->` && lr_attri->name.
|
|
||||||
|
|
||||||
|
|
||||||
UNASSIGN <backend>.
|
|
||||||
ASSIGN (lv_name_back) TO <backend>.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
|
||||||
EXPORTING
|
|
||||||
val = `NO_BACKEND_VALUE_FOUND_WITH_NAME__` && lv_name_back.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
DATA(lv_name_front) = `MODEL->` && lr_attri->name_front.
|
|
||||||
|
|
||||||
UNASSIGN <frontend>.
|
|
||||||
ASSIGN (lv_name_front) TO <frontend>.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
|
||||||
EXPORTING
|
|
||||||
val = `NO_FRONTEND_VALUE_FOUND_WITH_NAME__` && lv_name_front.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CASE lr_attri->type_kind.
|
|
||||||
|
|
||||||
WHEN cl_abap_typedescr=>typekind_table.
|
|
||||||
z2ui5_cl_util_func=>trans_ref_tab_2_tab(
|
|
||||||
EXPORTING
|
|
||||||
ir_tab_from = <frontend>
|
|
||||||
pretty_name = lr_attri->pretty_name
|
|
||||||
IMPORTING
|
|
||||||
t_result = <backend> ).
|
|
||||||
|
|
||||||
WHEN cl_abap_typedescr=>typekind_struct1 OR cl_abap_typedescr=>typekind_struct2.
|
|
||||||
z2ui5_cl_util_func=>trans_ref_struc_2_struc(
|
|
||||||
EXPORTING
|
|
||||||
ir_struc_from = <frontend>
|
|
||||||
pretty_name = lr_attri->pretty_name
|
|
||||||
IMPORTING
|
|
||||||
r_result = <backend> ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
|
|
||||||
ASSIGN <frontend>->* TO <frontend>.
|
|
||||||
CASE lr_attri->type_kind.
|
|
||||||
WHEN cl_abap_typedescr=>typekind_date OR cl_abap_typedescr=>typekind_time.
|
|
||||||
z2ui5_cl_util_func=>trans_json_2_any(
|
|
||||||
EXPORTING
|
|
||||||
val = `"` && <frontend> && `"`
|
|
||||||
CHANGING
|
|
||||||
data = <backend> ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
<backend> = <frontend>.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD main_set_frontend.
|
|
||||||
|
|
||||||
DATA(lr_view_model) = z2ui5_cl_util_tree_json=>factory( ).
|
|
||||||
DATA(lo_update) = lr_view_model->add_attribute_object( z2ui5_cl_fw_binding=>cv_model_edit_name ).
|
|
||||||
FIELD-SYMBOLS <attribute> TYPE any.
|
|
||||||
|
|
||||||
LOOP AT mt_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
|
|
||||||
|
|
||||||
IF lr_attri->bind_type = z2ui5_cl_fw_binding=>cs_bind_type-one_time.
|
|
||||||
lr_view_model->add_attribute( n = lr_attri->name
|
|
||||||
v = lr_attri->data_stringify
|
|
||||||
apos_active = abap_false ).
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
DATA(lo_actual) = COND #( WHEN lr_attri->bind_type = z2ui5_cl_fw_binding=>cs_bind_type-one_way THEN lr_view_model
|
|
||||||
ELSE lo_update ).
|
|
||||||
|
|
||||||
DATA(lv_name_back) = `MO_APP->` && lr_attri->name.
|
|
||||||
|
|
||||||
ASSIGN (lv_name_back) TO <attribute>.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
|
||||||
EXPORTING
|
|
||||||
val = `Error while creating the response, seems that some app data is not available anymore. <p>BINDING_ERROR - No attribute found with name: ` && lr_attri->name && `</p>`.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CASE lr_attri->type_kind.
|
|
||||||
|
|
||||||
WHEN `h`.
|
|
||||||
lo_actual->add_attribute( n = lr_attri->name_front
|
|
||||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_mode = lr_attri->pretty_name compress_mode = lr_attri->compress )
|
|
||||||
apos_active = abap_false ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
|
|
||||||
IF z2ui5_cl_util_func=>boolean_check_by_name( lr_attri->type ).
|
|
||||||
|
|
||||||
lo_actual->add_attribute( n = lr_attri->name_front
|
|
||||||
v = SWITCH #( <attribute> WHEN abap_true THEN `true` ELSE `false` )
|
|
||||||
apos_active = abap_false ).
|
|
||||||
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
lo_actual->add_attribute( n = lr_attri->name_front
|
|
||||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_mode = lr_attri->pretty_name compress_mode = lr_attri->compress )
|
|
||||||
apos_active = abap_false ).
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
result = lr_view_model->stringify( ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
|
|
@ -1,69 +0,0 @@
|
||||||
*CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
|
||||||
* DURATION LONG
|
|
||||||
* RISK LEVEL DANGEROUS.
|
|
||||||
*
|
|
||||||
* PUBLIC SECTION.
|
|
||||||
* DATA quantity TYPE string.
|
|
||||||
*
|
|
||||||
* PRIVATE SECTION.
|
|
||||||
* METHODS test_model_set_frontend FOR TESTING RAISING cx_static_check.
|
|
||||||
* METHODS test_model_set_backend FOR TESTING RAISING cx_static_check.
|
|
||||||
*
|
|
||||||
*ENDCLASS.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*CLASS ltcl_unit_test IMPLEMENTATION.
|
|
||||||
*
|
|
||||||
* METHOD test_model_set_frontend.
|
|
||||||
*
|
|
||||||
* DATA(lt_attri) = VALUE z2ui5_cl_fw_binding=>ty_t_attri( ( name = `QUANTITY` bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way name_front = `QUANTITY` ) ).
|
|
||||||
* DATA(lo_app) = NEW ltcl_unit_test( ).
|
|
||||||
*
|
|
||||||
* lo_app->quantity = `600`.
|
|
||||||
*
|
|
||||||
* DATA(lo_model) = z2ui5_cl_fw_model=>factory(
|
|
||||||
* viewname = ``
|
|
||||||
* app = lo_app
|
|
||||||
* attri = lt_attri ).
|
|
||||||
*
|
|
||||||
* DATA(lv_frontend) = lo_model->main_set_frontend( ).
|
|
||||||
*
|
|
||||||
* cl_abap_unit_assert=>assert_equals(
|
|
||||||
* act = lv_frontend
|
|
||||||
* exp = `{"EDIT":{"QUANTITY":"600"}}` ).
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
* METHOD test_model_set_backend.
|
|
||||||
*
|
|
||||||
* DATA(lt_attri) = VALUE z2ui5_cl_fw_binding=>ty_t_attri( ( name = `QUANTITY` bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way name_front = `QUANTITY` ) ).
|
|
||||||
* DATA(lo_app) = NEW ltcl_unit_test( ).
|
|
||||||
*
|
|
||||||
* DATA(lv_model) = `{"EDIT":{"QUANTITY":"600"},"oScroll":[],"OMESSAGEMANAGER":[],"ID":"0242B09497911EDE90A60CD0D8519DD5","ARGUMENTS":[{"EVENT":"BUTTON_POST","METHOD":"UPDATE","CHECK_VIEW_DESTROY":false}],"OCURSOR":{"id":"__button1"},"OLOCATION":{`
|
|
||||||
* && `"SEARCH":"?sap-client=001&app_start=z2ui5_cl_app_hello_world","VERSION":"com.sap.ui5.dist:sapui5-sdk-dist:1.116.0:war"}}`.
|
|
||||||
*
|
|
||||||
* DATA lr_model TYPE REF TO data.
|
|
||||||
* FIELD-SYMBOLS <any> TYPE any.
|
|
||||||
* /ui2/cl_json=>deserialize(
|
|
||||||
* EXPORTING
|
|
||||||
* json = lv_model
|
|
||||||
* CHANGING
|
|
||||||
* data = lr_model ).
|
|
||||||
*
|
|
||||||
* DATA(lo_model) = z2ui5_cl_fw_model=>factory(
|
|
||||||
* viewname = ``
|
|
||||||
* app = lo_app
|
|
||||||
* attri = lt_attri ).
|
|
||||||
*
|
|
||||||
* DATA(lv_assign) = `LR_MODEL->` && z2ui5_cl_fw_binding=>cv_model_edit_name.
|
|
||||||
*
|
|
||||||
* ASSIGN (lv_assign) TO <any>.
|
|
||||||
* lo_model->main_set_backend( <any> ).
|
|
||||||
*
|
|
||||||
* cl_abap_unit_assert=>assert_equals(
|
|
||||||
* act = lo_app->quantity
|
|
||||||
* exp = `600` ).
|
|
||||||
*
|
|
||||||
* ENDMETHOD.
|
|
||||||
*
|
|
||||||
*ENDCLASS.
|
|
|
@ -1,17 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
|
||||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
|
||||||
<asx:values>
|
|
||||||
<VSEOCLASS>
|
|
||||||
<CLSNAME>Z2UI5_CL_FW_MODEL</CLSNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>abap2UI5 - model</DESCRIPT>
|
|
||||||
<STATE>1</STATE>
|
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
|
||||||
<FIXPT>X</FIXPT>
|
|
||||||
<UNICODE>X</UNICODE>
|
|
||||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
|
||||||
</VSEOCLASS>
|
|
||||||
</asx:values>
|
|
||||||
</asx:abap>
|
|
||||||
</abapGit>
|
|
|
@ -77,17 +77,6 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
ELSE.
|
ELSE.
|
||||||
ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
* CASE lr_attri->pretty_name.
|
|
||||||
*
|
|
||||||
* WHEN z2ui5_if_client=>cs_pretty_mode-none.
|
|
||||||
* DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
|
||||||
*
|
|
||||||
* WHEN z2ui5_if_client=>cs_pretty_mode-camel_case.
|
|
||||||
* ajson = z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_camel_case( iv_first_json_upper = abap_false ) ).
|
|
||||||
*
|
|
||||||
* WHEN OTHERS.
|
|
||||||
* ASSERT `` = `ERROR_UNKNOWN_PRETTY_MODE`.
|
|
||||||
* ENDCASE.
|
|
||||||
|
|
||||||
|
|
||||||
"(2) read attribute of end-user app
|
"(2) read attribute of end-user app
|
||||||
|
@ -127,34 +116,13 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
ELSE.
|
ELSE.
|
||||||
ajson = ajson->filter( z2ui5_cl_ajson_filter_lib=>create_empty_filter( ) ).
|
ajson = ajson->filter( z2ui5_cl_ajson_filter_lib=>create_empty_filter( ) ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
* IF lr_attri->compress_custom IS NOT INITIAL.
|
|
||||||
* DATA li_filter TYPE REF TO z2ui5_if_ajson_filter.
|
|
||||||
* CREATE OBJECT li_filter TYPE (lr_attri->compress_custom).
|
|
||||||
* ajson = ajson->filter( li_filter ).
|
|
||||||
*
|
|
||||||
* ELSEIF lr_attri->compress = z2ui5_if_client=>cs_compress_mode-full.
|
|
||||||
* "obsolete - is this still needed? use compress_custom instead
|
|
||||||
* ASSERT `` = `OBSOLET_COMPRESS_MODE_USE_CUSTOM_INSTEAD`.
|
|
||||||
*
|
|
||||||
* ELSEIF lr_attri->compress = z2ui5_if_client=>cs_compress_mode-standard.
|
|
||||||
* ajson = ajson->filter( z2ui5_cl_ajson_filter_lib=>create_empty_filter( ) ).
|
|
||||||
*
|
|
||||||
* ELSEIF lr_attri->compress = z2ui5_if_client=>cs_compress_mode-none.
|
|
||||||
* "obsolete - is this still needed? use compress_custom instead
|
|
||||||
* ASSERT `` = `OBSOLET_COMPRESS_MODE_USE_CUSTOM_INSTEAD`.
|
|
||||||
*
|
|
||||||
* ELSE.
|
|
||||||
* ASSERT `` = `ERROR_UNKNOW_COMPRESS_MODE`.
|
|
||||||
* ENDIF.
|
|
||||||
|
|
||||||
|
|
||||||
"(5) write into result
|
"(5) write into result
|
||||||
"todo performance - write directly into result
|
"todo performance - write directly into result
|
||||||
ajson_result->set( iv_path = `/` && lv_path iv_val = ajson ).
|
ajson_result->set( iv_path = `/` && lv_path iv_val = ajson ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
* result = ajson_result->stringify( ).
|
result = ajson_result.
|
||||||
result = ajson_result. "->stringify( ).
|
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
ASSERT x IS NOT BOUND.
|
ASSERT x IS NOT BOUND.
|
||||||
|
@ -164,7 +132,6 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD front_to_back.
|
METHOD front_to_back.
|
||||||
|
|
||||||
|
|
||||||
DATA(ajson) = ajson_in->slice( `/EDIT` ).
|
DATA(ajson) = ajson_in->slice( `/EDIT` ).
|
||||||
|
|
||||||
LOOP AT t_attri REFERENCE INTO DATA(lr_attri)
|
LOOP AT t_attri REFERENCE INTO DATA(lr_attri)
|
||||||
|
@ -180,27 +147,13 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
|
|
||||||
DATA(ajson_val) = ajson->slice( `/` && lr_attri->name_front ).
|
DATA(ajson_val) = ajson->slice( `/` && lr_attri->name_front ).
|
||||||
|
|
||||||
TRY.
|
IF lr_attri->custom_mapper IS BOUND.
|
||||||
|
ajson_val = ajson_val->map( lr_attri->custom_mapper ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
CASE lr_attri->pretty_name.
|
ajson_val->to_abap(
|
||||||
|
IMPORTING
|
||||||
WHEN z2ui5_if_client=>cs_pretty_mode-none.
|
ev_container = <backend> ).
|
||||||
|
|
||||||
|
|
||||||
WHEN z2ui5_if_client=>cs_pretty_mode-camel_case.
|
|
||||||
ajson_val = ajson_val->map( z2ui5_cl_ajson_mapping=>create_to_snake_case( ) ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
ASSERT `` = `ToDo -> UNKNOWN_PRETTY_MODE`.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ajson_val->to_abap(
|
|
||||||
IMPORTING
|
|
||||||
ev_container = <backend> ).
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
ASSERT x IS BOUND.
|
ASSERT x IS BOUND.
|
||||||
|
|
|
@ -431,8 +431,8 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
||||||
stack_weight TYPE i,
|
stack_weight TYPE i,
|
||||||
stack TYPE string,
|
stack TYPE string,
|
||||||
position TYPE string,
|
position TYPE string,
|
||||||
ticks TYPE ty_ticks,
|
ticks TYPE ty_ticks,
|
||||||
border TYPE ty_border,
|
border TYPE ty_border,
|
||||||
grid TYPE ty_grid,
|
grid TYPE ty_grid,
|
||||||
offset TYPE abap_bool,
|
offset TYPE abap_bool,
|
||||||
axis TYPE string,
|
axis TYPE string,
|
||||||
|
@ -545,8 +545,8 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_options,
|
BEGIN OF ty_options,
|
||||||
scales TYPE ty_scales,
|
scales TYPE ty_scales,
|
||||||
responsive TYPE abap_bool,
|
responsive TYPE abap_bool,
|
||||||
plugins TYPE ty_plugins,
|
plugins TYPE ty_plugins,
|
||||||
hover TYPE ty_hover,
|
hover TYPE ty_hover,
|
||||||
interaction TYPE ty_interaction,
|
interaction TYPE ty_interaction,
|
||||||
|
@ -554,7 +554,7 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
||||||
layout TYPE ty_layout,
|
layout TYPE ty_layout,
|
||||||
elements TYPE ty_elements,
|
elements TYPE ty_elements,
|
||||||
index_axis TYPE string,
|
index_axis TYPE string,
|
||||||
events TYPE string_table,
|
events TYPE string_table,
|
||||||
END OF ty_options .
|
END OF ty_options .
|
||||||
|
|
||||||
"ChartJS Configuration
|
"ChartJS Configuration
|
||||||
|
@ -617,9 +617,14 @@ CLASS z2ui5_cl_cc_chartjs IMPLEMENTATION.
|
||||||
|
|
||||||
rv_keep = abap_true.
|
rv_keep = abap_true.
|
||||||
|
|
||||||
|
|
||||||
CASE iv_visit.
|
CASE iv_visit.
|
||||||
|
|
||||||
|
WHEN z2ui5_if_ajson_filter=>visit_type-open.
|
||||||
|
|
||||||
|
IF is_node-children = 0.
|
||||||
|
rv_keep = abap_false.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
WHEN z2ui5_if_ajson_filter=>visit_type-value.
|
WHEN z2ui5_if_ajson_filter=>visit_type-value.
|
||||||
|
|
||||||
CASE is_node-type.
|
CASE is_node-type.
|
||||||
|
@ -628,7 +633,7 @@ CLASS z2ui5_cl_cc_chartjs IMPLEMENTATION.
|
||||||
rv_keep = abap_false.
|
rv_keep = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
WHEN z2ui5_if_ajson_types=>node_type-number.
|
WHEN z2ui5_if_ajson_types=>node_type-number.
|
||||||
IF is_node-value = `0`.
|
IF is_node-value = `0` or is_node-value = `0.00`.
|
||||||
rv_keep = abap_false.
|
rv_keep = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
WHEN z2ui5_if_ajson_types=>node_type-string.
|
WHEN z2ui5_if_ajson_types=>node_type-string.
|
||||||
|
|
|
@ -7,7 +7,6 @@ CLASS z2ui5_cl_fw_http_handler DEFINITION
|
||||||
CLASS-METHODS http_post
|
CLASS-METHODS http_post
|
||||||
IMPORTING
|
IMPORTING
|
||||||
body TYPE string
|
body TYPE string
|
||||||
check_old_json TYPE abap_bool DEFAULT abap_false
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
@ -45,8 +44,6 @@ CLASS z2ui5_cl_fw_http_handler IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD http_post.
|
METHOD http_post.
|
||||||
|
|
||||||
z2ui5_cl_fw_controller=>cv_check_ajson = xsdbool( check_old_json = abap_false ).
|
|
||||||
|
|
||||||
result = z2ui5_cl_fw_controller=>main( body ).
|
result = z2ui5_cl_fw_controller=>main( body ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -27,23 +27,6 @@ INTERFACE z2ui5_if_client
|
||||||
nested2 TYPE string VALUE `NEST2`,
|
nested2 TYPE string VALUE `NEST2`,
|
||||||
END OF cs_view.
|
END OF cs_view.
|
||||||
|
|
||||||
CONSTANTS:
|
|
||||||
BEGIN OF cs_pretty_mode,
|
|
||||||
none TYPE char1 VALUE ``,
|
|
||||||
low_case TYPE char1 VALUE `L`,
|
|
||||||
camel_case TYPE char1 VALUE `X`,
|
|
||||||
extended TYPE char1 VALUE `Y`,
|
|
||||||
user TYPE char1 VALUE `U`,
|
|
||||||
user_low_case TYPE char1 VALUE `C`,
|
|
||||||
END OF cs_pretty_mode .
|
|
||||||
|
|
||||||
CONSTANTS:
|
|
||||||
BEGIN OF cs_compress_mode,
|
|
||||||
standard TYPE string VALUE `STANDARD`,
|
|
||||||
full TYPE string VALUE `FULL`,
|
|
||||||
none TYPE string VALUE `NONE`,
|
|
||||||
END OF cs_compress_mode.
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_name_value,
|
BEGIN OF ty_s_name_value,
|
||||||
n TYPE string,
|
n TYPE string,
|
||||||
|
@ -179,11 +162,8 @@ INTERFACE z2ui5_if_client
|
||||||
IMPORTING
|
IMPORTING
|
||||||
val TYPE data
|
val TYPE data
|
||||||
path TYPE abap_bool DEFAULT abap_false
|
path TYPE abap_bool DEFAULT abap_false
|
||||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||||
* compress_custom TYPE clike OPTIONAL
|
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping optional
|
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter optional
|
|
||||||
tab TYPE STANDARD TABLE OPTIONAL
|
tab TYPE STANDARD TABLE OPTIONAL
|
||||||
tab_index TYPE i OPTIONAL
|
tab_index TYPE i OPTIONAL
|
||||||
struc TYPE data OPTIONAL
|
struc TYPE data OPTIONAL
|
||||||
|
@ -195,11 +175,8 @@ INTERFACE z2ui5_if_client
|
||||||
val TYPE data
|
val TYPE data
|
||||||
path TYPE abap_bool DEFAULT abap_false
|
path TYPE abap_bool DEFAULT abap_false
|
||||||
view TYPE string DEFAULT cs_view-main
|
view TYPE string DEFAULT cs_view-main
|
||||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||||
* compress_custom TYPE clike OPTIONAL
|
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping optional
|
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter optional
|
|
||||||
tab TYPE STANDARD TABLE OPTIONAL
|
tab TYPE STANDARD TABLE OPTIONAL
|
||||||
tab_index TYPE i OPTIONAL
|
tab_index TYPE i OPTIONAL
|
||||||
struc TYPE data OPTIONAL
|
struc TYPE data OPTIONAL
|
||||||
|
@ -210,11 +187,8 @@ INTERFACE z2ui5_if_client
|
||||||
IMPORTING
|
IMPORTING
|
||||||
val TYPE data
|
val TYPE data
|
||||||
path TYPE abap_bool DEFAULT abap_false
|
path TYPE abap_bool DEFAULT abap_false
|
||||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
* compress_custom TYPE clike OPTIONAL
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping optional
|
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter optional
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user