mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 09:06:16 +08:00
mapper for front to back direction (#847)
* mapper for front to back direction * lint fixes
This commit is contained in:
parent
0c7130cfc2
commit
a11d447aeb
|
@ -201,20 +201,6 @@ CLASS z2ui5_cl_util_func DEFINITION
|
||||||
CHANGING
|
CHANGING
|
||||||
!data TYPE any.
|
!data TYPE any.
|
||||||
|
|
||||||
CLASS-METHODS trans_ref_tab_2_tab
|
|
||||||
IMPORTING
|
|
||||||
!ir_tab_from TYPE REF TO data
|
|
||||||
pretty_name TYPE abap_bool DEFAULT abap_false
|
|
||||||
EXPORTING
|
|
||||||
!t_result TYPE STANDARD TABLE.
|
|
||||||
|
|
||||||
CLASS-METHODS trans_ref_struc_2_struc
|
|
||||||
IMPORTING
|
|
||||||
!ir_struc_from TYPE REF TO data
|
|
||||||
pretty_name TYPE abap_bool DEFAULT abap_false
|
|
||||||
EXPORTING
|
|
||||||
!r_result TYPE data.
|
|
||||||
|
|
||||||
CLASS-METHODS c_trim_upper
|
CLASS-METHODS c_trim_upper
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!val TYPE clike
|
!val TYPE clike
|
||||||
|
@ -1264,197 +1250,12 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD trans_ref_struc_2_struc.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <ls_from> TYPE any.
|
|
||||||
FIELD-SYMBOLS <comp_from_deref> TYPE any.
|
|
||||||
|
|
||||||
ASSIGN ir_struc_from->* TO <ls_from>.
|
|
||||||
x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
CLEAR r_result.
|
|
||||||
|
|
||||||
DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_datadescr=>describe_by_data( r_result ) ).
|
|
||||||
DATA(lt_components) = lo_struc->get_components( ).
|
|
||||||
LOOP AT lt_components INTO DATA(ls_comp).
|
|
||||||
|
|
||||||
DATA(lv_from) = ls_comp-name.
|
|
||||||
IF pretty_name = abap_true.
|
|
||||||
REPLACE ALL OCCURRENCES OF `_` IN lv_from WITH ``.
|
|
||||||
ENDIF.
|
|
||||||
ASSIGN COMPONENT lv_from OF STRUCTURE <ls_from> TO FIELD-SYMBOL(<comp_from>).
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
ASSIGN COMPONENT ls_comp-name OF STRUCTURE r_result TO FIELD-SYMBOL(<comp_to>).
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ASSIGN <comp_from>->* TO <comp_from_deref>.
|
|
||||||
DATA(lv_type_kind) = rtti_get_type_kind( <comp_to> ).
|
|
||||||
|
|
||||||
IF <comp_from_deref> IS INITIAL.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CASE lv_type_kind.
|
|
||||||
|
|
||||||
WHEN cl_abap_typedescr=>typekind_table.
|
|
||||||
trans_ref_tab_2_tab(
|
|
||||||
EXPORTING
|
|
||||||
ir_tab_from = <comp_from>
|
|
||||||
pretty_name = pretty_name
|
|
||||||
IMPORTING
|
|
||||||
t_result = <comp_to> ).
|
|
||||||
|
|
||||||
WHEN cl_abap_typedescr=>typekind_struct1 OR cl_abap_typedescr=>typekind_struct2.
|
|
||||||
trans_ref_struc_2_struc(
|
|
||||||
EXPORTING
|
|
||||||
ir_struc_from = <comp_from>
|
|
||||||
pretty_name = pretty_name
|
|
||||||
IMPORTING
|
|
||||||
r_result = <comp_to> ).
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
<comp_to> = <comp_from_deref>.
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD trans_ref_tab_2_tab.
|
|
||||||
|
|
||||||
TYPES ty_t_ref TYPE STANDARD TABLE OF REF TO data.
|
|
||||||
FIELD-SYMBOLS <lt_from> TYPE ty_t_ref.
|
|
||||||
DATA lr_row TYPE REF TO data.
|
|
||||||
FIELD-SYMBOLS <comp> TYPE data.
|
|
||||||
FIELD-SYMBOLS <comp_ui5> TYPE data.
|
|
||||||
DATA match TYPE i.
|
|
||||||
|
|
||||||
ASSIGN ir_tab_from->* TO <lt_from>.
|
|
||||||
x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
CLEAR t_result.
|
|
||||||
|
|
||||||
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( t_result ) ).
|
|
||||||
IF lo_tab->absolute_name = `\TYPE=STRING_TABLE`.
|
|
||||||
LOOP AT <lt_from> INTO DATA(lr_string).
|
|
||||||
ASSIGN lr_string->* TO FIELD-SYMBOL(<row_string>).
|
|
||||||
INSERT <row_string> INTO TABLE t_result.
|
|
||||||
ENDLOOP.
|
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
|
||||||
DATA(lt_components) = lo_struc->get_components( ).
|
|
||||||
|
|
||||||
LOOP AT <lt_from> INTO DATA(lr_from).
|
|
||||||
|
|
||||||
|
|
||||||
CREATE DATA lr_row TYPE HANDLE lo_struc.
|
|
||||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
EXIT.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ASSIGN lr_from->* TO FIELD-SYMBOL(<row_ui5>).
|
|
||||||
x_check_raise( xsdbool( sy-subrc <> 0 ) ).
|
|
||||||
|
|
||||||
DATA(lt_components_dissolved) = lt_components.
|
|
||||||
CLEAR lt_components_dissolved.
|
|
||||||
|
|
||||||
LOOP AT lt_components INTO DATA(ls_comp).
|
|
||||||
|
|
||||||
IF ls_comp-as_include = abap_false.
|
|
||||||
APPEND ls_comp TO lt_components_dissolved.
|
|
||||||
ELSE.
|
|
||||||
DATA(struct) = CAST cl_abap_structdescr( ls_comp-type ).
|
|
||||||
APPEND LINES OF struct->get_components( ) TO lt_components_dissolved.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
LOOP AT lt_components_dissolved INTO ls_comp.
|
|
||||||
TRY.
|
|
||||||
|
|
||||||
|
|
||||||
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <row> TO <comp>.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
|
|
||||||
IF pretty_name = abap_true.
|
|
||||||
REPLACE ALL OCCURRENCES OF `_` IN ls_comp-name WITH ``.
|
|
||||||
ENDIF.
|
|
||||||
ASSIGN COMPONENT ls_comp-name OF STRUCTURE <row_ui5> TO <comp_ui5>.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
CONTINUE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ASSIGN <comp_ui5>->* TO FIELD-SYMBOL(<ls_data_ui5>).
|
|
||||||
|
|
||||||
IF sy-subrc = 0.
|
|
||||||
CASE ls_comp-type->kind.
|
|
||||||
WHEN cl_abap_typedescr=>kind_table.
|
|
||||||
trans_ref_tab_2_tab(
|
|
||||||
EXPORTING
|
|
||||||
ir_tab_from = <comp_ui5>
|
|
||||||
pretty_name = pretty_name
|
|
||||||
IMPORTING
|
|
||||||
t_result = <comp> ).
|
|
||||||
WHEN cl_abap_typedescr=>kind_struct.
|
|
||||||
trans_ref_struc_2_struc(
|
|
||||||
EXPORTING
|
|
||||||
ir_struc_from = <comp_ui5>
|
|
||||||
pretty_name = pretty_name
|
|
||||||
IMPORTING
|
|
||||||
r_result = <comp> ).
|
|
||||||
WHEN cl_abap_typedescr=>kind_elem.
|
|
||||||
CASE ls_comp-type->absolute_name.
|
|
||||||
WHEN `\TYPE=D`.
|
|
||||||
|
|
||||||
" support for ISO8601 => https://en.wikipedia.org/wiki/ISO_8601
|
|
||||||
REPLACE FIRST OCCURRENCE OF REGEX `^(\d{4})-(\d{2})-(\d{2})` IN <ls_data_ui5> WITH `$1$2$3`
|
|
||||||
REPLACEMENT LENGTH match. "#EC NOTEXT
|
|
||||||
<comp> = <ls_data_ui5>.
|
|
||||||
|
|
||||||
WHEN `\TYPE=T`.
|
|
||||||
|
|
||||||
" support for ISO8601 => https://en.wikipedia.org/wiki/ISO_8601
|
|
||||||
REPLACE FIRST OCCURRENCE OF REGEX `^(\d{2}):(\d{2}):(\d{2})` IN <ls_data_ui5> WITH `$1$2$3`
|
|
||||||
REPLACEMENT LENGTH match. "#EC NOTEXT
|
|
||||||
<comp> = <ls_data_ui5>.
|
|
||||||
|
|
||||||
WHEN OTHERS.
|
|
||||||
<comp> = <ls_data_ui5>.
|
|
||||||
ENDCASE.
|
|
||||||
WHEN OTHERS.
|
|
||||||
<comp> = <ls_data_ui5>.
|
|
||||||
ENDCASE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
INSERT <row> INTO TABLE t_result.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD trans_srtti_xml_2_data.
|
METHOD trans_srtti_xml_2_data.
|
||||||
|
|
||||||
DATA srtti TYPE REF TO object.
|
DATA srtti TYPE REF TO object.
|
||||||
DATA rtti_type TYPE REF TO cl_abap_typedescr.
|
DATA rtti_type TYPE REF TO cl_abap_typedescr.
|
||||||
DATA lo_datadescr TYPE REF TO cl_abap_datadescr.
|
DATA lo_datadescr TYPE REF TO cl_abap_datadescr.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF rtti_check_class_exists( 'ZCL_SRTTI_TYPEDESCR' ) = abap_false.
|
IF rtti_check_class_exists( 'ZCL_SRTTI_TYPEDESCR' ) = abap_false.
|
||||||
|
|
||||||
DATA(lv_link) = `https://github.com/sandraros/S-RTTI`.
|
DATA(lv_link) = `https://github.com/sandraros/S-RTTI`.
|
||||||
|
@ -1467,23 +1268,18 @@ CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
CALL TRANSFORMATION id SOURCE XML rtti_data RESULT srtti = srtti.
|
CALL TRANSFORMATION id SOURCE XML rtti_data RESULT srtti = srtti.
|
||||||
|
|
||||||
|
|
||||||
CALL METHOD srtti->('GET_RTTI')
|
CALL METHOD srtti->('GET_RTTI')
|
||||||
RECEIVING
|
RECEIVING
|
||||||
rtti = rtti_type.
|
rtti = rtti_type.
|
||||||
|
|
||||||
|
|
||||||
lo_datadescr ?= rtti_type.
|
lo_datadescr ?= rtti_type.
|
||||||
|
|
||||||
CREATE DATA e_data TYPE HANDLE lo_datadescr.
|
CREATE DATA e_data TYPE HANDLE lo_datadescr.
|
||||||
ASSIGN e_data->* TO FIELD-SYMBOL(<variable>).
|
ASSIGN e_data->* TO FIELD-SYMBOL(<variable>).
|
||||||
CALL TRANSFORMATION id SOURCE XML rtti_data RESULT dobj = <variable>.
|
CALL TRANSFORMATION id SOURCE XML rtti_data RESULT dobj = <variable>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,39 +16,38 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_attri,
|
BEGIN OF ty_s_attri,
|
||||||
name TYPE string,
|
name TYPE string,
|
||||||
name_front TYPE string,
|
name_front TYPE string,
|
||||||
type_kind TYPE string,
|
type_kind TYPE string,
|
||||||
type TYPE string,
|
type TYPE string,
|
||||||
bind_type TYPE string,
|
bind_type TYPE string,
|
||||||
data_stringify TYPE string,
|
data_stringify TYPE string,
|
||||||
data_rtti TYPE string,
|
data_rtti TYPE string,
|
||||||
check_ready TYPE abap_bool,
|
check_ready TYPE abap_bool,
|
||||||
check_dissolved TYPE abap_bool,
|
check_dissolved TYPE abap_bool,
|
||||||
check_temp TYPE abap_bool,
|
check_temp TYPE abap_bool,
|
||||||
viewname TYPE string,
|
viewname TYPE string,
|
||||||
pretty_name TYPE abap_bool,
|
depth TYPE i,
|
||||||
compress TYPE string,
|
json_bind_local TYPE REF TO z2ui5_if_ajson,
|
||||||
* compress_custom TYPE string,
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter,
|
||||||
depth TYPE i,
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping,
|
||||||
ajson_local TYPE REF TO z2ui5_if_ajson,
|
custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping,
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter,
|
|
||||||
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.
|
||||||
|
|
||||||
CLASS-METHODS factory
|
CLASS-METHODS factory
|
||||||
IMPORTING
|
IMPORTING
|
||||||
app TYPE REF TO object OPTIONAL
|
app TYPE REF TO object OPTIONAL
|
||||||
attri TYPE ty_t_attri OPTIONAL
|
attri TYPE ty_t_attri OPTIONAL
|
||||||
type TYPE clike OPTIONAL
|
type TYPE clike OPTIONAL
|
||||||
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
|
||||||
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
|
||||||
|
custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_result) TYPE REF TO z2ui5_cl_fw_binding.
|
VALUE(r_result) TYPE REF TO z2ui5_cl_fw_binding.
|
||||||
|
|
||||||
METHODS main
|
METHODS main
|
||||||
RETURNING
|
RETURNING
|
||||||
|
@ -60,11 +59,9 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
||||||
DATA mr_data TYPE REF TO data.
|
DATA mr_data TYPE REF TO data.
|
||||||
DATA mv_check_attri TYPE abap_bool.
|
DATA mv_check_attri TYPE abap_bool.
|
||||||
DATA mv_view TYPE string.
|
DATA mv_view TYPE string.
|
||||||
DATA mv_pretty_name TYPE string.
|
|
||||||
DATA mv_compress TYPE string.
|
|
||||||
* DATA mv_compress_custom TYPE string.
|
|
||||||
DATA mo_custom_filter TYPE REF TO z2ui5_if_ajson_filter.
|
DATA mo_custom_filter TYPE REF TO z2ui5_if_ajson_filter.
|
||||||
DATA mo_custom_mapper TYPE REF TO z2ui5_if_ajson_mapping.
|
DATA mo_custom_mapper TYPE REF TO z2ui5_if_ajson_mapping.
|
||||||
|
DATA mo_custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping.
|
||||||
|
|
||||||
CLASS-METHODS update_attri
|
CLASS-METHODS update_attri
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -135,7 +132,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
CLASS Z2UI5_CL_FW_BINDING IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD bind.
|
METHOD bind.
|
||||||
|
@ -160,10 +157,22 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
val = `<p>Binding Error - Two different binding types for same attribute used (` && bind->name && `).`.
|
val = `<p>Binding Error - Two different binding types for same attribute used (` && bind->name && `).`.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF bind->bind_type IS NOT INITIAL AND bind->pretty_name <> mv_pretty_name.
|
IF bind->custom_mapper IS BOUND AND bind->custom_mapper <> mo_custom_mapper.
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||||
EXPORTING
|
EXPORTING
|
||||||
val = `<p>Binding Error - Two different pretty types for same attribute used (` && bind->name && `).`.
|
val = `<p>Binding Error - Two different mapper for same attribute used (` && bind->name && `).`.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF bind->custom_mapper_back IS BOUND AND bind->custom_mapper_back <> mo_custom_mapper_back.
|
||||||
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||||
|
EXPORTING
|
||||||
|
val = `<p>Binding Error - Two different mapper back for same attribute used (` && bind->name && `).`.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF bind->custom_filter IS BOUND AND bind->custom_filter <> mo_custom_filter.
|
||||||
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||||
|
EXPORTING
|
||||||
|
val = `<p>Binding Error - Two different filter for same attribute used (` && bind->name && `).`.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF bind->bind_type IS NOT INITIAL.
|
IF bind->bind_type IS NOT INITIAL.
|
||||||
|
@ -172,11 +181,10 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
bind->bind_type = mv_type.
|
bind->bind_type = mv_type.
|
||||||
bind->pretty_name = mv_pretty_name.
|
|
||||||
bind->compress = mv_compress.
|
|
||||||
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->custom_mapper_back = mo_custom_mapper_back.
|
||||||
|
|
||||||
bind->name_front = replace( val = bind->name sub = `-` with = `/` ).
|
bind->name_front = replace( val = bind->name sub = `-` with = `/` ).
|
||||||
bind->name_front = replace( val = bind->name_front sub = `>` with = `` ).
|
bind->name_front = replace( val = bind->name_front sub = `>` with = `` ).
|
||||||
|
@ -206,10 +214,8 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
|
|
||||||
INSERT VALUE #( name_front = lv_id
|
INSERT VALUE #( name_front = lv_id
|
||||||
name = lv_id
|
name = lv_id
|
||||||
ajson_local = ajson->set( iv_path = `/` iv_val = <any> )
|
json_bind_local = ajson->set( iv_path = `/` iv_val = <any> )
|
||||||
bind_type = cs_bind_type-one_time
|
bind_type = cs_bind_type-one_time
|
||||||
pretty_name = mv_pretty_name
|
|
||||||
compress = mv_compress
|
|
||||||
)
|
)
|
||||||
INTO TABLE mt_attri.
|
INTO TABLE mt_attri.
|
||||||
|
|
||||||
|
@ -294,6 +300,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
r_result->mv_view = view.
|
r_result->mv_view = view.
|
||||||
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.
|
||||||
|
r_result->mo_custom_mapper_back = custom_mapper_back.
|
||||||
|
|
||||||
IF z2ui5_cl_util_func=>rtti_check_type_kind_dref( data ).
|
IF z2ui5_cl_util_func=>rtti_check_type_kind_dref( data ).
|
||||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||||
|
@ -465,6 +472,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD search_binding.
|
METHOD search_binding.
|
||||||
|
|
||||||
set_attri_ready( REF #( mt_attri ) ).
|
set_attri_ready( REF #( mt_attri ) ).
|
||||||
|
|
|
@ -405,6 +405,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
||||||
data = val
|
data = val
|
||||||
view = view
|
view = view
|
||||||
custom_mapper = custom_mapper
|
custom_mapper = custom_mapper
|
||||||
|
custom_mapper_back = custom_mapper_back
|
||||||
custom_filter = custom_filter
|
custom_filter = custom_filter
|
||||||
).
|
).
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
|
|
||||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_time.
|
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_time.
|
||||||
DATA(lv_path) = lr_attri->name_front.
|
DATA(lv_path) = lr_attri->name_front.
|
||||||
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = lr_attri->ajson_local ).
|
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = lr_attri->json_bind_local ).
|
||||||
|
|
||||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_way.
|
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_way.
|
||||||
lv_path = lr_attri->name_front.
|
lv_path = lr_attri->name_front.
|
||||||
|
@ -135,9 +135,8 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||||
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)
|
||||||
WHERE bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way
|
WHERE bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way
|
||||||
AND viewname = viewname.
|
AND viewname = viewname.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
DATA(lv_name_back) = `APP->` && lr_attri->name.
|
DATA(lv_name_back) = `APP->` && lr_attri->name.
|
||||||
|
@ -147,13 +146,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 ).
|
||||||
|
|
||||||
IF lr_attri->custom_mapper IS BOUND.
|
IF lr_attri->custom_mapper_back IS BOUND.
|
||||||
ajson_val = ajson_val->map( lr_attri->custom_mapper ).
|
ajson_val = ajson_val->map( lr_attri->custom_mapper_back ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ajson_val->to_abap(
|
ajson_val->to_abap(
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ev_container = <backend> ).
|
ev_container = <backend> ).
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
ASSERT x IS BOUND.
|
ASSERT x IS BOUND.
|
||||||
|
|
|
@ -172,16 +172,17 @@ INTERFACE z2ui5_if_client
|
||||||
|
|
||||||
METHODS _bind_edit
|
METHODS _bind_edit
|
||||||
IMPORTING
|
IMPORTING
|
||||||
val TYPE data
|
val TYPE data
|
||||||
path TYPE abap_bool DEFAULT abap_false
|
path TYPE abap_bool DEFAULT abap_false
|
||||||
view TYPE string DEFAULT cs_view-main
|
view TYPE string DEFAULT cs_view-main
|
||||||
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
custom_mapper_back TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL
|
||||||
tab TYPE STANDARD TABLE OPTIONAL
|
custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL
|
||||||
tab_index TYPE i OPTIONAL
|
tab TYPE STANDARD TABLE OPTIONAL
|
||||||
struc TYPE data OPTIONAL
|
tab_index TYPE i OPTIONAL
|
||||||
|
struc TYPE data OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
METHODS _bind_local
|
METHODS _bind_local
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
|
Loading…
Reference in New Issue
Block a user