mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 07:46:15 +08:00
payload with ajson (#837)
* ajson * ajson logic * update abaplint fixes
This commit is contained in:
parent
144a95e987
commit
463fbf561f
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -414,7 +414,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_util_func IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD app_get_url.
|
||||
|
@ -857,7 +857,7 @@ CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
|
|||
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
|
||||
data lr_row type ref to data.
|
||||
DATA lr_row TYPE REF TO data.
|
||||
LOOP AT <tab> REFERENCE INTO lr_row.
|
||||
|
||||
DATA(lv_index) = 1.
|
||||
|
@ -1244,6 +1244,10 @@ CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
|
|||
|
||||
METHOD trans_json_2_any.
|
||||
|
||||
* IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
||||
* ASSERT 1 = 0.
|
||||
* ENDIF.
|
||||
|
||||
/ui2/cl_json=>deserialize(
|
||||
EXPORTING
|
||||
json = CONV string( val )
|
||||
|
@ -1256,6 +1260,10 @@ CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
|
|||
|
||||
METHOD trans_json_by_any.
|
||||
|
||||
* IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_true.
|
||||
* ASSERT 1 = 0.
|
||||
* ENDIF.
|
||||
|
||||
CASE compress_mode.
|
||||
|
||||
WHEN z2ui5_if_client=>cs_compress_mode-full.
|
||||
|
@ -1440,14 +1448,14 @@ CLASS Z2UI5_CL_UTIL_FUNC IMPLEMENTATION.
|
|||
|
||||
" 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
|
||||
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
|
||||
REPLACEMENT LENGTH match. "#EC NOTEXT
|
||||
<comp> = <ls_data_ui5>.
|
||||
|
||||
WHEN OTHERS.
|
||||
|
|
|
@ -29,7 +29,9 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
|||
viewname TYPE string,
|
||||
pretty_name TYPE abap_bool,
|
||||
compress TYPE string,
|
||||
compress_custom TYPE string,
|
||||
depth TYPE i,
|
||||
ajson_local TYPE REF TO z2ui5_if_ajson,
|
||||
END OF ty_s_attri.
|
||||
TYPES ty_t_attri TYPE SORTED TABLE OF ty_s_attri WITH UNIQUE KEY name.
|
||||
|
||||
|
@ -43,6 +45,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
|||
view TYPE clike OPTIONAL
|
||||
pretty_name TYPE clike OPTIONAL
|
||||
compress TYPE clike OPTIONAL
|
||||
compress_custom TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_fw_binding.
|
||||
|
||||
|
@ -58,6 +61,7 @@ CLASS z2ui5_cl_fw_binding DEFINITION
|
|||
DATA mv_view TYPE string.
|
||||
DATA mv_pretty_name TYPE string.
|
||||
DATA mv_compress TYPE string.
|
||||
DATA mv_compress_custom TYPE string.
|
||||
|
||||
CLASS-METHODS update_attri
|
||||
IMPORTING
|
||||
|
@ -147,7 +151,6 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
|
||||
GET REFERENCE OF <attri> INTO lr_ref.
|
||||
|
||||
IF mr_data <> lr_ref.
|
||||
|
@ -174,31 +177,74 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
|||
bind->bind_type = mv_type.
|
||||
bind->pretty_name = mv_pretty_name.
|
||||
bind->compress = mv_compress.
|
||||
bind->name_front = name_front_create( bind->name ).
|
||||
bind->viewname = mv_view.
|
||||
bind->compress_custom = mv_compress_custom.
|
||||
|
||||
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( ).
|
||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_false.
|
||||
|
||||
bind->name_front = name_front_create( bind->name ).
|
||||
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.
|
||||
|
||||
|
||||
METHOD bind_local.
|
||||
TRY.
|
||||
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
ASSIGN mr_data->* TO <any>.
|
||||
DATA(lv_id) = z2ui5_cl_util_func=>uuid_get_c22( ).
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
ASSIGN mr_data->* TO <any>.
|
||||
DATA(lv_id) = to_upper( z2ui5_cl_util_func=>uuid_get_c22( ) ).
|
||||
|
||||
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.
|
||||
result = |/{ lv_id }|.
|
||||
IF z2ui5_cl_fw_controller=>cv_check_ajson = abap_false.
|
||||
|
||||
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.
|
||||
|
||||
"(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.
|
||||
|
||||
result = |/{ lv_id }|.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -275,6 +321,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
|||
r_result->mv_view = view.
|
||||
r_result->mv_pretty_name = pretty_name.
|
||||
r_result->mv_compress = compress.
|
||||
r_result->mv_compress_custom = to_upper( compress_custom ).
|
||||
|
||||
|
||||
IF z2ui5_cl_util_func=>rtti_check_type_kind_dref( data ).
|
||||
|
|
|
@ -334,7 +334,9 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
|
||||
data = val
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode ).
|
||||
compress = compress_mode
|
||||
compress_custom = compress_custom
|
||||
).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
mo_handler->ms_db-t_attri = lo_binder->mt_attri.
|
||||
|
@ -407,7 +409,8 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
data = val
|
||||
view = view
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode ).
|
||||
compress = compress_mode
|
||||
compress_custom = compress_custom ).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
mo_handler->ms_db-t_attri = lo_binder->mt_attri.
|
||||
|
@ -429,7 +432,8 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
|
||||
data = val
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode ).
|
||||
compress = compress_mode
|
||||
compress_custom = compress_custom ).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
mo_handler->ms_db-t_attri = lo_binder->mt_attri.
|
||||
|
|
|
@ -4,8 +4,7 @@ CLASS z2ui5_cl_fw_controller DEFINITION
|
|||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CONSTANTS cv_check_ajson TYPE abap_bool VALUE abap_false.
|
||||
class-data cv_check_ajson TYPE abap_bool VALUE abap_true.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_next2,
|
||||
|
@ -146,63 +145,21 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
||||
CLASS Z2UI5_CL_FW_CONTROLLER IMPLEMENTATION.
|
||||
|
||||
METHOD main.
|
||||
|
||||
TRY.
|
||||
DATA(lo_handler) = request_begin( body ).
|
||||
CATCH cx_root INTO DATA(x).
|
||||
lo_handler = app_system_factory( x ).
|
||||
ENDTRY.
|
||||
METHOD app_call_factory.
|
||||
|
||||
DO.
|
||||
TRY.
|
||||
result = app_next_factory( ms_next-o_app_call ).
|
||||
result->ms_db-id_prev_app_stack = ms_db-id.
|
||||
|
||||
ROLLBACK WORK.
|
||||
CAST z2ui5_if_app( lo_handler->ms_db-app )->main( NEW z2ui5_cl_fw_client( lo_handler ) ).
|
||||
ROLLBACK WORK.
|
||||
CLEAR ms_next.
|
||||
IF check_no_db_save = abap_false.
|
||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
||||
db = ms_db ).
|
||||
ENDIF.
|
||||
|
||||
IF lo_handler->ms_next-o_app_leave IS NOT INITIAL.
|
||||
lo_handler = lo_handler->app_leave_factory( ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF lo_handler->ms_next-o_app_call IS NOT INITIAL.
|
||||
lo_handler = lo_handler->app_call_factory( ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
result = lo_handler->request_end( ).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
lo_handler = app_system_factory( x ).
|
||||
CONTINUE.
|
||||
ENDTRY.
|
||||
|
||||
EXIT.
|
||||
ENDDO.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_next_factory.
|
||||
|
||||
app->id_draft = COND #( WHEN app->id_draft IS INITIAL THEN z2ui5_cl_util_func=>uuid_get_c32( ) ELSE app->id_draft ).
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_db-app = app.
|
||||
r_result->ms_db-id = app->id_draft.
|
||||
r_result->ms_db-id_prev = ms_db-id.
|
||||
r_result->ms_db-id_prev_app = ms_db-id.
|
||||
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
|
||||
r_result->ms_actual-check_on_navigated = abap_true.
|
||||
r_result->ms_next-s_set = ms_next-s_set.
|
||||
|
||||
TRY.
|
||||
DATA(ls_db_next) = z2ui5_cl_fw_db=>load_app( app->id_draft ).
|
||||
r_result->ms_db-t_attri = ls_db_next-t_attri.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
CLEAR result->ms_db-t_attri.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -249,6 +206,199 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
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.
|
||||
result->ms_actual-viewname = so_body->get_attribute( `VIEWNAME` )->get_val( ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_client_begin_model.
|
||||
|
||||
IF cv_check_ajson = abap_false.
|
||||
|
||||
TRY.
|
||||
DATA(lo_model) = z2ui5_cl_fw_model=>factory(
|
||||
viewname = ms_actual-viewname
|
||||
app = ms_db-app
|
||||
attri = ms_db-t_attri ).
|
||||
|
||||
lo_model->main_set_backend(
|
||||
so_body->get_attribute( ss_config-view_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
|
||||
json_string = ss_config-body
|
||||
).
|
||||
|
||||
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.
|
||||
|
||||
IF cv_check_ajson = abap_false.
|
||||
|
||||
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( ).
|
||||
|
||||
ELSE.
|
||||
|
||||
rv_viewmodel = z2ui5_cl_fw_model_ajson=>back_to_front(
|
||||
app = ms_db-app
|
||||
t_attri = ms_db-t_attri
|
||||
).
|
||||
|
||||
ENDIF.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
METHOD app_leave_factory.
|
||||
|
||||
result = app_next_factory( ms_next-o_app_leave ).
|
||||
|
||||
TRY.
|
||||
DATA(ls_draft) = z2ui5_cl_fw_db=>read( id = result->ms_db-id
|
||||
check_load_app = abap_false ).
|
||||
result->ms_db-id_prev_app_stack = ls_draft-id_prev_app_stack.
|
||||
CATCH cx_root.
|
||||
result->ms_db-id_prev_app_stack = ms_db-id_prev_app_stack.
|
||||
ENDTRY.
|
||||
|
||||
CLEAR ms_next.
|
||||
IF check_no_db_save = abap_false.
|
||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
||||
db = ms_db ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_next_factory.
|
||||
|
||||
app->id_draft = COND #( WHEN app->id_draft IS INITIAL THEN z2ui5_cl_util_func=>uuid_get_c32( ) ELSE app->id_draft ).
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->ms_db-app = app.
|
||||
r_result->ms_db-id = app->id_draft.
|
||||
r_result->ms_db-id_prev = ms_db-id.
|
||||
r_result->ms_db-id_prev_app = ms_db-id.
|
||||
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
|
||||
r_result->ms_actual-check_on_navigated = abap_true.
|
||||
r_result->ms_next-s_set = ms_next-s_set.
|
||||
|
||||
TRY.
|
||||
DATA(ls_db_next) = z2ui5_cl_fw_db=>load_app( app->id_draft ).
|
||||
r_result->ms_db-t_attri = ls_db_next-t_attri.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_start_factory.
|
||||
|
||||
TRY.
|
||||
DATA(lv_classname) = to_upper( so_body->get_attribute( `APP_START` )->get_val( ) ).
|
||||
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.
|
||||
result = app_system_factory( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
result = NEW #( ).
|
||||
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
||||
|
||||
lv_classname = z2ui5_cl_util_func=>c_trim_upper( lv_classname ).
|
||||
CREATE OBJECT result->ms_db-app TYPE (lv_classname).
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
CATCH cx_root.
|
||||
result = app_system_factory( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_system_factory.
|
||||
|
||||
result = NEW #( ).
|
||||
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
||||
|
||||
IF ix IS NOT BOUND AND error_text IS NOT INITIAL.
|
||||
ix = NEW z2ui5_cx_util_error( val = error_text ).
|
||||
ENDIF.
|
||||
|
||||
IF ix IS BOUND.
|
||||
result->ms_next-o_app_call = z2ui5_cl_fw_app_error=>factory( ix ).
|
||||
result = result->app_call_factory( abap_true ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
result->ms_db-app = z2ui5_cl_fw_app_startup=>factory( ).
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD body_read_location.
|
||||
FIELD-SYMBOLS <struc> TYPE any.
|
||||
|
||||
|
@ -313,6 +463,44 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD main.
|
||||
|
||||
TRY.
|
||||
DATA(lo_handler) = request_begin( body ).
|
||||
CATCH cx_root INTO DATA(x).
|
||||
lo_handler = app_system_factory( x ).
|
||||
ENDTRY.
|
||||
|
||||
DO.
|
||||
TRY.
|
||||
|
||||
ROLLBACK WORK.
|
||||
CAST z2ui5_if_app( lo_handler->ms_db-app )->main( NEW z2ui5_cl_fw_client( lo_handler ) ).
|
||||
ROLLBACK WORK.
|
||||
|
||||
IF lo_handler->ms_next-o_app_leave IS NOT INITIAL.
|
||||
lo_handler = lo_handler->app_leave_factory( ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF lo_handler->ms_next-o_app_call IS NOT INITIAL.
|
||||
lo_handler = lo_handler->app_call_factory( ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
result = lo_handler->request_end( ).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
lo_handler = app_system_factory( x ).
|
||||
CONTINUE.
|
||||
ENDTRY.
|
||||
|
||||
EXIT.
|
||||
ENDDO.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD request_begin.
|
||||
|
||||
ss_config-body = body.
|
||||
|
@ -349,141 +537,6 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_call_factory.
|
||||
|
||||
result = app_next_factory( ms_next-o_app_call ).
|
||||
result->ms_db-id_prev_app_stack = ms_db-id.
|
||||
|
||||
CLEAR ms_next.
|
||||
IF check_no_db_save = abap_false.
|
||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
||||
db = ms_db ).
|
||||
ENDIF.
|
||||
|
||||
CLEAR result->ms_db-t_attri.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
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.
|
||||
result->ms_actual-viewname = so_body->get_attribute( `VIEWNAME` )->get_val( ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_leave_factory.
|
||||
|
||||
result = app_next_factory( ms_next-o_app_leave ).
|
||||
|
||||
TRY.
|
||||
DATA(ls_draft) = z2ui5_cl_fw_db=>read( id = result->ms_db-id
|
||||
check_load_app = abap_false ).
|
||||
result->ms_db-id_prev_app_stack = ls_draft-id_prev_app_stack.
|
||||
CATCH cx_root.
|
||||
result->ms_db-id_prev_app_stack = ms_db-id_prev_app_stack.
|
||||
ENDTRY.
|
||||
|
||||
CLEAR ms_next.
|
||||
IF check_no_db_save = abap_false.
|
||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
||||
db = ms_db ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_start_factory.
|
||||
|
||||
TRY.
|
||||
DATA(lv_classname) = to_upper( so_body->get_attribute( `APP_START` )->get_val( ) ).
|
||||
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.
|
||||
result = app_system_factory( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
result = NEW #( ).
|
||||
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
||||
|
||||
lv_classname = z2ui5_cl_util_func=>c_trim_upper( lv_classname ).
|
||||
CREATE OBJECT result->ms_db-app TYPE (lv_classname).
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
CATCH cx_root.
|
||||
result = app_system_factory( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_system_factory.
|
||||
|
||||
result = NEW #( ).
|
||||
result->ms_db-id = z2ui5_cl_util_func=>uuid_get_c32( ).
|
||||
|
||||
IF ix IS NOT BOUND AND error_text IS NOT INITIAL.
|
||||
ix = NEW z2ui5_cx_util_error( val = error_text ).
|
||||
ENDIF.
|
||||
|
||||
IF ix IS BOUND.
|
||||
result->ms_next-o_app_call = z2ui5_cl_fw_app_error=>factory( ix ).
|
||||
result = result->app_call_factory( abap_true ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
result->ms_db-app = z2ui5_cl_fw_app_startup=>factory( ).
|
||||
result->ms_db-app->id_draft = result->ms_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_client_begin_model.
|
||||
|
||||
IF cv_check_ajson = abap_false.
|
||||
|
||||
TRY.
|
||||
DATA(lo_model) = z2ui5_cl_fw_model=>factory(
|
||||
viewname = ms_actual-viewname
|
||||
app = ms_db-app
|
||||
attri = ms_db-t_attri ).
|
||||
|
||||
lo_model->main_set_backend(
|
||||
so_body->get_attribute( ss_config-view_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
|
||||
json_string = ss_config-body
|
||||
).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD _get_id.
|
||||
|
||||
TRY.
|
||||
|
@ -492,56 +545,4 @@ CLASS z2ui5_cl_fw_controller IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_client_end_model.
|
||||
|
||||
IF cv_check_ajson = abap_false.
|
||||
|
||||
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( ).
|
||||
|
||||
ELSE.
|
||||
|
||||
rv_viewmodel = z2ui5_cl_fw_model_ajson=>back_to_front(
|
||||
app = ms_db-app
|
||||
t_attri = ms_db-t_attri
|
||||
).
|
||||
|
||||
ENDIF.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
METHOD app_client_end_db.
|
||||
|
||||
z2ui5_cl_fw_db=>create( id = ms_db-id
|
||||
db = ms_db ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -51,8 +51,8 @@ CLASS Z2UI5_CL_FW_INDEX_HTML IMPLEMENTATION.
|
|||
IF lt_config IS INITIAL.
|
||||
lt_config = VALUE #(
|
||||
* ( n = `src` v = `https://sdk.openui5.org/nightly/2/resources/sap-ui-core.js` )
|
||||
( n = `src` v = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` )
|
||||
* ( n = `src` v = `https://ui5.sap.com/1.120.0/resources/sap-ui-core.js` )
|
||||
* ( n = `src` v = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` )
|
||||
( n = `src` v = `https://ui5.sap.com/1.120.0/resources/sap-ui-core.js` )
|
||||
( n = `data-sap-ui-theme` v = `sap_horizon` )
|
||||
( n = `data-sap-ui-async` v = `true` )
|
||||
( n = `data-sap-ui-bindingSyntax` v = `complex` )
|
||||
|
@ -177,7 +177,6 @@ CLASS Z2UI5_CL_FW_INDEX_HTML IMPLEMENTATION.
|
|||
` const oFragment = await Fragment.load({` && |\n| &&
|
||||
` definition: xml,` && |\n| &&
|
||||
` controller: sap.z2ui5.oControllerPopup,` && |\n| &&
|
||||
` id: "popupId"` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` let oview_model = new JSONModel(sap.z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
|
||||
` oview_model.setSizeLimit(sap.z2ui5.JSON_MODEL_LIMIT);` && |\n| &&
|
||||
|
@ -194,7 +193,6 @@ CLASS Z2UI5_CL_FW_INDEX_HTML IMPLEMENTATION.
|
|||
` const oFragment = await Fragment.load({` && |\n| &&
|
||||
` definition: xml,` && |\n| &&
|
||||
` controller: sap.z2ui5.oControllerPopover,` && |\n| &&
|
||||
` id: "popoverId"` && |\n| &&
|
||||
` });` && |\n| &&
|
||||
` let oview_model = new JSONModel(sap.z2ui5.oResponse.OVIEWMODEL);` && |\n| &&
|
||||
` oview_model.setSizeLimit(sap.z2ui5.JSON_MODEL_LIMIT);` && |\n| &&
|
||||
|
@ -354,11 +352,6 @@ CLASS Z2UI5_CL_FW_INDEX_HTML IMPLEMENTATION.
|
|||
` navConTo = sap.z2ui5.oViewNest2.byId(args[2]);` && |\n| &&
|
||||
` navCon.to(navConTo);` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` case 'POPUP_NAV_CONTAINER_TO':` && |\n| &&
|
||||
` navCon = Fragment.byId("popupId",args[1]);` && |\n| &&
|
||||
` navConTo = Fragment.byId("popupId",args[2]);` && |\n| &&
|
||||
` navCon.to(navConTo);` && |\n| &&
|
||||
` break;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` onEvent(...args) {` && |\n| &&
|
||||
|
|
|
@ -24,10 +24,97 @@ CLASS z2ui5_cl_fw_model_ajson DEFINITION
|
|||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD back_to_front.
|
||||
TRY.
|
||||
|
||||
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ).
|
||||
|
||||
LOOP AT t_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
|
||||
|
||||
|
||||
"(1) set pretty mode
|
||||
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
|
||||
IF lr_attri->bind_type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
|
||||
OR lr_attri->bind_type = z2ui5_cl_fw_binding=>cs_bind_type-two_way.
|
||||
DATA(lv_name_back) = `APP->` && lr_attri->name.
|
||||
FIELD-SYMBOLS <attribute> TYPE any.
|
||||
ASSIGN (lv_name_back) TO <attribute>.
|
||||
ASSERT sy-subrc = 0.
|
||||
ENDIF.
|
||||
|
||||
|
||||
"(3) write into json
|
||||
CASE lr_attri->bind_type.
|
||||
|
||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_time.
|
||||
DATA(lv_path) = lr_attri->name_front.
|
||||
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = lr_attri->ajson_local ).
|
||||
|
||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_way.
|
||||
lv_path = lr_attri->name_front.
|
||||
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = <attribute> ).
|
||||
|
||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-two_way.
|
||||
lv_path = z2ui5_cl_fw_binding=>cv_model_edit_name && `/` && lr_attri->name_front.
|
||||
ajson->set( iv_ignore_empty = abap_false iv_path = `/` iv_val = <attribute> ).
|
||||
|
||||
WHEN OTHERS.
|
||||
ASSERT `` = `ERROR_UNKNOWN_BIND_MODE`.
|
||||
ENDCASE.
|
||||
|
||||
|
||||
"(4) set compress mode
|
||||
"todo performance - add and filter in a single loop
|
||||
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( ) ).
|
||||
|
||||
ELSE.
|
||||
ASSERT `` = `ERROR_UNKNOW_COMPRESS_MODE`.
|
||||
ENDIF.
|
||||
|
||||
|
||||
"(5) write into result
|
||||
"todo performance - write directly into result
|
||||
ajson_result->set( iv_path = `/` && lv_path iv_val = ajson ).
|
||||
ENDLOOP.
|
||||
|
||||
result = ajson_result->stringify( ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD front_to_back.
|
||||
TRY.
|
||||
|
||||
DATA(ajson) = z2ui5_cl_ajson=>parse( json_string )->slice( `/EDIT` ).
|
||||
|
||||
LOOP AT t_attri REFERENCE INTO DATA(lr_attri)
|
||||
|
@ -42,6 +129,19 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
|||
DATA(ajson_val) = ajson->slice( `/` && lr_attri->name_front ).
|
||||
|
||||
TRY.
|
||||
|
||||
CASE lr_attri->pretty_name.
|
||||
|
||||
WHEN z2ui5_if_client=>cs_pretty_mode-none.
|
||||
|
||||
|
||||
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> ).
|
||||
|
@ -51,40 +151,8 @@ CLASS z2ui5_cl_fw_model_ajson IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD back_to_front.
|
||||
TRY.
|
||||
|
||||
DATA(ajson) = z2ui5_cl_ajson=>create_empty( ).
|
||||
|
||||
LOOP AT t_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
|
||||
|
||||
IF lr_attri->bind_type = z2ui5_cl_fw_binding=>cs_bind_type-one_time.
|
||||
ajson->set( iv_path = `/` iv_val = z2ui5_cl_ajson=>parse( lr_attri->data_stringify ) ).
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_name_back) = `APP->` && lr_attri->name.
|
||||
FIELD-SYMBOLS <attribute> TYPE any.
|
||||
ASSIGN (lv_name_back) TO <attribute>.
|
||||
ASSERT 1 = 0.
|
||||
|
||||
CASE lr_attri->bind_type.
|
||||
WHEN z2ui5_cl_fw_binding=>cs_bind_type-one_way.
|
||||
ajson->set( iv_path = `/` iv_val = <attribute> ).
|
||||
WHEN OTHERS.
|
||||
ajson->set( iv_path = `/` && z2ui5_cl_fw_binding=>cv_model_edit_name iv_val = <attribute> ).
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
result = ajson->stringify( ).
|
||||
|
||||
CATCH cx_root.
|
||||
CATCH cx_root INTO DATA(x).
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -4,6 +4,9 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
|||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_ajson_filter.
|
||||
|
||||
" Data
|
||||
TYPES:
|
||||
BEGIN OF ty_x_y_r_data,
|
||||
|
@ -428,8 +431,8 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
|||
stack_weight TYPE i,
|
||||
stack TYPE string,
|
||||
position TYPE string,
|
||||
ticks TYPE ty_ticks,
|
||||
border TYPE ty_border,
|
||||
ticks TYPE ty_ticks,
|
||||
border TYPE ty_border,
|
||||
grid TYPE ty_grid,
|
||||
offset TYPE abap_bool,
|
||||
axis TYPE string,
|
||||
|
@ -542,8 +545,8 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
|||
|
||||
TYPES:
|
||||
BEGIN OF ty_options,
|
||||
scales TYPE ty_scales,
|
||||
responsive TYPE abap_bool,
|
||||
scales TYPE ty_scales,
|
||||
responsive TYPE abap_bool,
|
||||
plugins TYPE ty_plugins,
|
||||
hover TYPE ty_hover,
|
||||
interaction TYPE ty_interaction,
|
||||
|
@ -551,14 +554,13 @@ CLASS z2ui5_cl_cc_chartjs DEFINITION
|
|||
layout TYPE ty_layout,
|
||||
elements TYPE ty_elements,
|
||||
index_axis TYPE string,
|
||||
events TYPE string_table,
|
||||
events TYPE string_table,
|
||||
END OF ty_options .
|
||||
|
||||
"ChartJS Configuration
|
||||
TYPES:
|
||||
BEGIN OF ty_chart ##NEEDED,
|
||||
type TYPE string,
|
||||
* plugins TYPE string_table,
|
||||
data TYPE ty_data,
|
||||
options TYPE ty_options,
|
||||
END OF ty_chart.
|
||||
|
@ -609,8 +611,41 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_CC_CHARTJS IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_cc_chartjs IMPLEMENTATION.
|
||||
|
||||
METHOD z2ui5_if_ajson_filter~keep_node.
|
||||
|
||||
rv_keep = abap_true.
|
||||
|
||||
|
||||
CASE iv_visit.
|
||||
|
||||
WHEN z2ui5_if_ajson_filter=>visit_type-value.
|
||||
|
||||
CASE is_node-type.
|
||||
WHEN z2ui5_if_ajson_types=>node_type-boolean.
|
||||
IF is_node-value = `false`.
|
||||
rv_keep = abap_false.
|
||||
ENDIF.
|
||||
WHEN z2ui5_if_ajson_types=>node_type-number.
|
||||
IF is_node-value = `0`.
|
||||
rv_keep = abap_false.
|
||||
ENDIF.
|
||||
WHEN z2ui5_if_ajson_types=>node_type-string.
|
||||
IF is_node-value = ``.
|
||||
rv_keep = abap_false.
|
||||
ENDIF.
|
||||
ENDCASE.
|
||||
|
||||
WHEN z2ui5_if_ajson_filter=>visit_type-close.
|
||||
|
||||
IF is_node-children = 0.
|
||||
rv_keep = abap_false.
|
||||
ENDIF.
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_chartjs_local.
|
||||
result = ``.
|
||||
|
|
|
@ -6,9 +6,10 @@ CLASS z2ui5_cl_fw_http_handler DEFINITION
|
|||
|
||||
CLASS-METHODS http_post
|
||||
IMPORTING
|
||||
body TYPE string
|
||||
body TYPE string
|
||||
check_old_json TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS http_get
|
||||
IMPORTING
|
||||
|
@ -44,6 +45,8 @@ CLASS z2ui5_cl_fw_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD http_post.
|
||||
|
||||
z2ui5_cl_fw_controller=>cv_check_ajson = xsdbool( check_old_json = abap_false ).
|
||||
|
||||
result = z2ui5_cl_fw_controller=>main( body ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -176,15 +176,16 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS _bind
|
||||
IMPORTING
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
tab TYPE STANDARD TABLE OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
struc TYPE data OPTIONAL
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
compress_custom TYPE clike OPTIONAL
|
||||
tab TYPE STANDARD TABLE OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
struc TYPE data OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS _bind_edit
|
||||
IMPORTING
|
||||
|
@ -193,6 +194,7 @@ INTERFACE z2ui5_if_client
|
|||
view TYPE string DEFAULT cs_view-main
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
compress_custom TYPE clike OPTIONAL
|
||||
tab TYPE STANDARD TABLE OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
struc TYPE data OPTIONAL
|
||||
|
@ -201,10 +203,11 @@ INTERFACE z2ui5_if_client
|
|||
|
||||
METHODS _bind_local
|
||||
IMPORTING
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_custom TYPE clike OPTIONAL
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user