mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:04:38 +08:00
bugfixes and refactoring (#1323)
* bugfixes and refactoring * update * update package structure * update * update * update package assignment * update * update * update * update package structure
This commit is contained in:
parent
1b167d0f47
commit
bdb985af6c
1482
src/01/00/03/z2ui5_cl_util.clas.abap
Normal file
1482
src/01/00/03/z2ui5_cl_util.clas.abap
Normal file
File diff suppressed because it is too large
Load Diff
901
src/01/00/03/z2ui5_cl_util.clas.testclasses.abap
Normal file
901
src/01/00/03/z2ui5_cl_util.clas.testclasses.abap
Normal file
|
@ -0,0 +1,901 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_db_handle FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_db_handle_read_id FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_db_handle.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row(
|
||||
title = `test`
|
||||
value = `val`
|
||||
selected = abap_true ).
|
||||
DATA(ls_row_result) = VALUE ty_row( ).
|
||||
|
||||
DATA(lv_id) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
z2ui5_cl_util=>db_load_by_id(
|
||||
EXPORTING
|
||||
id = lv_id
|
||||
IMPORTING
|
||||
result = ls_row_result ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row_result
|
||||
exp = ls_row ).
|
||||
|
||||
CLEAR ls_row_result.
|
||||
z2ui5_cl_util=>db_load_by_handle(
|
||||
EXPORTING
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
IMPORTING
|
||||
result = ls_row_result ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row_result
|
||||
exp = ls_row ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_db_handle_read_id.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row(
|
||||
title = `test`
|
||||
value = `val`
|
||||
selected = abap_true ).
|
||||
|
||||
DATA(lv_id) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_id ).
|
||||
|
||||
DATA(lv_id2) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_id
|
||||
exp = lv_id2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app DEFINITION FOR TESTING.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES if_serializable_object.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
descr TYPE string,
|
||||
icon TYPE string,
|
||||
info TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
CONSTANTS sv_status TYPE string VALUE `test` ##NEEDED.
|
||||
|
||||
CLASS-DATA sv_var TYPE string.
|
||||
CLASS-DATA ss_tab TYPE ty_row.
|
||||
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
|
||||
CLASS-METHODS class_constructor.
|
||||
|
||||
DATA mv_val TYPE string ##NEEDED.
|
||||
DATA ms_tab TYPE ty_row ##NEEDED.
|
||||
DATA mt_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY ##NEEDED.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
|
||||
METHOD class_constructor.
|
||||
|
||||
sv_var = 1.
|
||||
ss_tab = VALUE #( ).
|
||||
st_tab = VALUE #( ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test_abap_api DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS check_input
|
||||
IMPORTING
|
||||
val TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
METHODS test_assign FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_eledescr_rel_name FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_classdescr FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_substring_after FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_substring_before FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_string_shift FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_string_replace FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_raise_error FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_xsdbool FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_xsdbool_nested FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION MEDIUM
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
METHODS test_create FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_boolean_abap_2_json FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_boolean_check FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_c_trim FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_c_trim_lower FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_c_trim_upper FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_c_trim_horizontal_tab FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_time_get_timestampl FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_time_substract_seconds FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_func_get_user_tech FOR TESTING RAISING cx_static_check.
|
||||
|
||||
|
||||
METHODS test_rtti_get_t_attri_by_incl FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_get_classname_by_ref FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_get_type_name FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_get_type_kind FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_check_type_kind FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_get_t_attri_by_obj FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_rtti_get_t_comp_by_struc FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_trans_json_any_2__w_struc FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_trans_xml_any_2__w_obj FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_trans_xml_any_2__w_data FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_trans_xml_2_any__w_obj FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_trans_xml_2_any__w_data FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_url_param_create_url FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_url_param_get FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_url_param_get_tab FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_url_param_set FOR TESTING RAISING cx_static_check.
|
||||
|
||||
METHODS test_x_check_raise FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_x_check_raise_not FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_x_raise FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_check_unassign_inital FOR TESTING RAISING cx_static_check.
|
||||
METHODS conv_copy_ref_data FOR TESTING RAISING cx_static_check.
|
||||
METHODS rtti_check_ref_data FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_check_bound_a_not_inital FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_sql_get_by_string FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD test_assign.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
lo_app->mv_val = `ABC`.
|
||||
|
||||
DATA(lv_assign) = `LO_APP->` && 'MV_VAL'.
|
||||
ASSIGN (lv_assign) TO <any>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = <any>
|
||||
exp = `ABC` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_classdescr.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
|
||||
DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes.
|
||||
|
||||
DATA(lv_test) = lt_attri[ name = `MS_TAB` ].
|
||||
lv_test = lt_attri[ name = `MT_TAB` ].
|
||||
lv_test = lt_attri[ name = `MV_VAL` ].
|
||||
lv_test = lt_attri[ name = `SS_TAB` ].
|
||||
lv_test = lt_attri[ name = `ST_TAB` ].
|
||||
lv_test = lt_attri[ name = `SV_STATUS` ].
|
||||
lv_test = lt_attri[ name = `SV_VAR` ].
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_eledescr_rel_name.
|
||||
|
||||
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( abap_true ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_ele->get_relative_name( )
|
||||
exp = `ABAP_BOOL` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_substring_after.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = substring_after( val = 'this is a string' sub = 'a' )
|
||||
exp = ` string` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_substring_before.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = substring_before( val = 'this is a string' sub = 'a' )
|
||||
exp = `this is ` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_string_shift.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = shift_left( shift_right( val = ` string ` sub = ` ` ) )
|
||||
exp = `string` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_string_replace.
|
||||
|
||||
DATA(lv_search) = replace( val = `one two three`
|
||||
sub = `two`
|
||||
with = 'ABC'
|
||||
occ = 0 ) ##NEEDED.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = replace( val = `one two three` sub = `two` with = 'ABC' occ = 0 )
|
||||
exp = `one ABC three` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_raise_error.
|
||||
|
||||
TRY.
|
||||
IF 1 = 1.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO DATA(lx).
|
||||
cl_abap_unit_assert=>assert_bound( lx ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_xsdbool.
|
||||
|
||||
DATA(lv_xsdbool) = xsdbool( 1 = 1 ).
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_xsdbool
|
||||
exp = abap_false ).
|
||||
ENDIF.
|
||||
|
||||
IF xsdbool( 1 = 1 ) = abap_false.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_xsdbool_nested.
|
||||
|
||||
DATA(lv_xsdbool) = check_input( xsdbool( 1 = 1 ) ).
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_xsdbool
|
||||
exp = abap_false ).
|
||||
ENDIF.
|
||||
|
||||
IF check_input( abap_false ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF check_input( xsdbool( 1 = 1 ) ) = abap_false.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD check_input.
|
||||
|
||||
result = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_boolean_check.
|
||||
|
||||
DATA(lv_bool) = xsdbool( 1 = 1 ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
|
||||
exp = abap_true ).
|
||||
|
||||
lv_bool = xsdbool( 1 = 2 ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( lv_bool )
|
||||
exp = abap_true ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( abap_true )
|
||||
exp = abap_true ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_check_by_data( abap_false )
|
||||
exp = abap_true ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_sql_get_by_string.
|
||||
|
||||
DATA(lv_test) = ``.
|
||||
DATA(ls_sql) = z2ui5_cl_util_api=>sql_get_by_string( lv_test ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_create.
|
||||
|
||||
DATA(lo_test) = NEW z2ui5_cl_util( ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_classname_by_ref.
|
||||
|
||||
DATA(lo_test) = NEW z2ui5_cl_util( ).
|
||||
DATA(lv_name) = z2ui5_cl_util=>rtti_get_classname_by_ref( lo_test ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `Z2UI5_CL_UTIL`
|
||||
act = lv_name ).
|
||||
|
||||
DATA(lo_test2) = NEW ltcl_test_app( ).
|
||||
DATA(lv_name2) = z2ui5_cl_util=>rtti_get_classname_by_ref( lo_test2 ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `LTCL_TEST_APP`
|
||||
act = lv_name2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_check_bound_a_not_inital.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA(lr_test) = REF #( lv_test ).
|
||||
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util_api=>check_bound_a_not_inital( lr_test ) ).
|
||||
CLEAR lv_test.
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util_api=>check_bound_a_not_inital( lr_test ) ).
|
||||
CLEAR lr_test.
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util_api=>check_bound_a_not_inital( lr_test ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_check_unassign_inital.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA(lr_test) = REF #( lv_test ).
|
||||
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util_api=>check_unassign_inital( lr_test ) ).
|
||||
|
||||
CLEAR lv_test.
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util_api=>check_unassign_inital( lr_test ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD rtti_check_ref_data.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
GET REFERENCE OF lv_test INTO lr_data.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util_api=>rtti_check_ref_data( lr_data )
|
||||
exp = abap_true ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util_api=>rtti_check_ref_data( lv_test )
|
||||
exp = abap_false ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD conv_copy_ref_data.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
GET REFERENCE OF lv_test INTO lr_data.
|
||||
|
||||
DATA(lr_test2) = z2ui5_cl_util_api=>conv_copy_ref_data( lr_data ).
|
||||
|
||||
FIELD-SYMBOLS <result> TYPE data.
|
||||
ASSIGN lr_test2->* TO <result>.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = <result>
|
||||
exp = lv_test ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_boolean_abap_2_json.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>boolean_abap_2_json( `{ABCD}` )
|
||||
exp = `{ABCD}` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_time_get_timestampl.
|
||||
|
||||
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds(
|
||||
time = lv_time
|
||||
seconds = 60 * 60 * 4 ).
|
||||
|
||||
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF lv_time < lv_time2.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_time_substract_seconds.
|
||||
|
||||
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF lv_time2 < lv_time.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_c_trim.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim( ` JsadfHHs ` )
|
||||
exp = `JsadfHHs` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_c_trim_lower.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim_lower( ` JsadfHHs ` )
|
||||
exp = `jsadfhhs` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_c_trim_upper.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>c_trim_upper( ` JsadfHHs ` )
|
||||
exp = `JSADFHHS` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_func_get_user_tech.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = sy-uname
|
||||
exp = z2ui5_cl_util=>user_get_tech( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( z2ui5_cl_util=>user_get_tech( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_x_raise.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_raise( ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_x_check_raise.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 1 ) ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 3 ) ).
|
||||
CATCH cx_root.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_trans_json_any_2__w_struc.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
DATA(ls_row) = VALUE ty_row( title = `test` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>json_stringify( ls_row )
|
||||
exp = `{"selected":false,"title":"test","value":""}` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_url_param_create_url.
|
||||
|
||||
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
DATA(lv_url) = z2ui5_cl_util=>url_param_create_url( lt_param ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_url
|
||||
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_get.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_get(
|
||||
val = `app_start`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_param
|
||||
exp = `z2ui5_cl_app_hello_world` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_get_tab.
|
||||
|
||||
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab( `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_param[ n = `sap-client` ]-v
|
||||
exp = `100` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_param[ n = `app_start` ]-v
|
||||
exp = `z2ui5_cl_app_hello_world` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_set.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_set(
|
||||
name = `app_start`
|
||||
value = `z2ui5_cl_app_hello_world2`
|
||||
url = `https://url.com/rvice_for_ui?sap-client=100&app_start=z2ui5_cl_app_hello_world` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_param
|
||||
exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world2` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_x_check_raise_not.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 2 ) ).
|
||||
CATCH z2ui5_cx_util_error.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_type_name.
|
||||
|
||||
DATA(lv_xsdbool) = VALUE xsdboolean( ).
|
||||
DATA(lv_name) = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_name
|
||||
exp = `XSDBOOLEAN` ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_type_kind.
|
||||
|
||||
DATA(lv_string) = VALUE string( ).
|
||||
|
||||
DATA(lv_type_kind) = z2ui5_cl_util=>rtti_get_type_kind( lv_string ).
|
||||
DATA lr_string TYPE REF TO string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_type_kind
|
||||
exp = cl_abap_typedescr=>typekind_string ).
|
||||
|
||||
|
||||
CREATE DATA lr_string.
|
||||
lv_type_kind = z2ui5_cl_util=>rtti_get_type_kind( lr_string ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_type_kind
|
||||
exp = cl_abap_typedescr=>typekind_dref ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_check_type_kind.
|
||||
|
||||
DATA(lv_string) = VALUE string( ).
|
||||
DATA lr_string TYPE REF TO string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string )
|
||||
exp = abap_false ).
|
||||
|
||||
|
||||
CREATE DATA lr_string.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = z2ui5_cl_util=>rtti_check_type_kind_dref( lr_string )
|
||||
exp = abap_true ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_t_attri_by_obj.
|
||||
|
||||
DATA(lo_obj) = NEW ltcl_test_app( ).
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lo_obj ).
|
||||
|
||||
IF lines( lt_attri ) <> 7.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `MS_TAB` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `SS_TAB` type_kind = `v` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `SV_VAR` type_kind = `g` is_class = abap_true ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `SV_STATUS` type_kind = `g` is_class = abap_true is_constant = `X` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_t_comp_by_struc.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
descr TYPE string,
|
||||
icon TYPE string,
|
||||
info TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( ls_row ).
|
||||
|
||||
IF lines( lt_comp ) <> 7.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `TITLE` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `VALUE` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `SELECTED` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `CHECKBOX` ] ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_title) = lt_comp[ 1 ].
|
||||
|
||||
IF ls_title-type->type_kind <> `g`.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_trans_xml_any_2__w_obj.
|
||||
|
||||
DATA(lo_obj) = NEW ltcl_test_app( ).
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( lo_obj ).
|
||||
|
||||
IF lv_xml IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_trans_xml_2_any__w_obj.
|
||||
|
||||
DATA(lo_obj) = NEW ltcl_test_app( ).
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( lo_obj ).
|
||||
|
||||
CLEAR lo_obj.
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = lv_xml
|
||||
IMPORTING
|
||||
any = lo_obj ).
|
||||
|
||||
IF lo_obj IS NOT BOUND.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_trans_xml_any_2__w_data.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
descr TYPE string,
|
||||
icon TYPE string,
|
||||
info TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
ls_row-value = `test`.
|
||||
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
IF lv_xml IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_trans_xml_2_any__w_data.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
descr TYPE string,
|
||||
icon TYPE string,
|
||||
info TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
DATA(ls_row2) = VALUE ty_row( ).
|
||||
ls_row-value = `test`.
|
||||
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
xml = lv_xml
|
||||
IMPORTING
|
||||
any = ls_row2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row
|
||||
exp = ls_row2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD test_c_trim_horizontal_tab.
|
||||
|
||||
IF z2ui5_cl_util=>c_trim( |{ cl_abap_char_utilities=>horizontal_tab }|
|
||||
&& |JsadfHHs|
|
||||
&& |{ cl_abap_char_utilities=>horizontal_tab }| ) <> `JsadfHHs`.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_t_attri_by_incl.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_struc_incl,
|
||||
incl_title TYPE string,
|
||||
incl_value TYPE string,
|
||||
incl_value2 TYPE string,
|
||||
END OF ty_struc_incl.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_struc,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
value2 TYPE string,
|
||||
END OF ty_struc.
|
||||
|
||||
DATA
|
||||
BEGIN OF ms_struc2.
|
||||
INCLUDE TYPE ty_struc.
|
||||
INCLUDE TYPE ty_struc_incl.
|
||||
DATA END OF ms_struc2.
|
||||
|
||||
DATA(lo_datadescr) = cl_abap_typedescr=>describe_by_data( ms_struc2 ).
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_include( CAST #( lo_datadescr ) ).
|
||||
|
||||
IF lines( lt_attri ) <> 2.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -1,190 +0,0 @@
|
|||
CLASS z2ui5_cl_util DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM z2ui5_cl_util_api
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS app_get_url_source_code
|
||||
IMPORTING
|
||||
!client TYPE REF TO z2ui5_if_client
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS app_get_url
|
||||
IMPORTING
|
||||
!client TYPE REF TO z2ui5_if_client
|
||||
VALUE(classname) TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS db_delete_by_handle
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
!check_commit TYPE abap_bool DEFAULT abap_true.
|
||||
|
||||
CLASS-METHODS db_save
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
!data TYPE any
|
||||
!check_commit TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS db_load_by_id
|
||||
IMPORTING
|
||||
!id TYPE clike OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(result) TYPE any.
|
||||
|
||||
CLASS-METHODS db_load_by_handle
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(result) TYPE any.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_UTIL IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
IF classname IS INITIAL.
|
||||
classname = rtti_get_classname_by_ref( client->get_app( ) ).
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_url) = to_lower( client->get( )-s_config-origin && client->get( )-s_config-pathname ) && `?`.
|
||||
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
|
||||
DELETE lt_param WHERE n = `app_start`.
|
||||
INSERT VALUE #( n = `app_start` v = to_lower( classname ) ) INTO TABLE lt_param.
|
||||
|
||||
result = lv_url && url_param_create_url( lt_param ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
DATA(ls_config) = client->get( )-s_config.
|
||||
result = ls_config-origin && `/sap/bc/adt/oo/classes/`
|
||||
&& rtti_get_classname_by_ref( client->get_app( ) ) && `/source/main`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_delete_by_handle.
|
||||
|
||||
DELETE FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load_by_handle.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `No entry for handle exists`.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load_by_id.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_02
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_save.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
SELECT id
|
||||
FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db ##SUBRC_OK.
|
||||
|
||||
DATA(ls_db) = VALUE z2ui5_t_02(
|
||||
uname = uname
|
||||
handle = handle
|
||||
handle2 = handle2
|
||||
handle3 = handle3
|
||||
data = xml_stringify( data ) ).
|
||||
|
||||
TRY.
|
||||
ls_db-id = lt_db[ 1 ]-id.
|
||||
CATCH cx_root.
|
||||
ls_db-id = uuid_get_c32( ).
|
||||
ENDTRY.
|
||||
|
||||
MODIFY z2ui5_t_02 FROM @ls_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
result = ls_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,105 +0,0 @@
|
|||
CLASS ltcl_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS test_db_handle FOR TESTING RAISING cx_static_check.
|
||||
METHODS test_db_handle_read_id FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_test IMPLEMENTATION.
|
||||
|
||||
METHOD test_db_handle.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row(
|
||||
title = `test`
|
||||
value = `val`
|
||||
selected = abap_true ).
|
||||
DATA(ls_row_result) = VALUE ty_row( ).
|
||||
|
||||
DATA(lv_id) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
z2ui5_cl_util=>db_load_by_id(
|
||||
EXPORTING
|
||||
id = lv_id
|
||||
IMPORTING
|
||||
result = ls_row_result ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row_result
|
||||
exp = ls_row ).
|
||||
|
||||
CLEAR ls_row_result.
|
||||
z2ui5_cl_util=>db_load_by_handle(
|
||||
EXPORTING
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
IMPORTING
|
||||
result = ls_row_result ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_row_result
|
||||
exp = ls_row ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_db_handle_read_id.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_row,
|
||||
title TYPE string,
|
||||
value TYPE string,
|
||||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row(
|
||||
title = `test`
|
||||
value = `val`
|
||||
selected = abap_true ).
|
||||
|
||||
DATA(lv_id) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_id ).
|
||||
|
||||
DATA(lv_id2) = z2ui5_cl_util=>db_save(
|
||||
uname = `name`
|
||||
handle = `handle1`
|
||||
handle2 = `handle2`
|
||||
handle3 = `handle3`
|
||||
data = ls_row ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_id
|
||||
exp = lv_id2 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
55
src/01/02/01/z2ui5_cl_core_util_srv.clas.abap
Normal file
55
src/01/02/01/z2ui5_cl_core_util_srv.clas.abap
Normal file
|
@ -0,0 +1,55 @@
|
|||
CLASS z2ui5_cl_core_util_srv DEFINITION
|
||||
PUBLIC
|
||||
INHERITING FROM z2ui5_cl_util
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS app_get_url_source_code
|
||||
IMPORTING
|
||||
!client TYPE REF TO z2ui5_if_client
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS app_get_url
|
||||
IMPORTING
|
||||
!client TYPE REF TO z2ui5_if_client
|
||||
VALUE(classname) TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_core_util_srv IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
IF classname IS INITIAL.
|
||||
classname = rtti_get_classname_by_ref( client->get_app( ) ).
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_url) = to_lower( client->get( )-s_config-origin && client->get( )-s_config-pathname ) && `?`.
|
||||
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
|
||||
DELETE lt_param WHERE n = `app_start`.
|
||||
INSERT VALUE #( n = `app_start` v = to_lower( classname ) ) INTO TABLE lt_param.
|
||||
|
||||
result = lv_url && url_param_create_url( lt_param ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
DATA(ls_config) = client->get( )-s_config.
|
||||
result = ls_config-origin && `/sap/bc/adt/oo/classes/`
|
||||
&& rtti_get_classname_by_ref( client->get_app( ) ) && `/source/main`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
|
@ -3,9 +3,9 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_UI5</CLSNAME>
|
||||
<CLSNAME>Z2UI5_CL_CORE_UTIL_SRV</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui5 api</DESCRIPT>
|
||||
<DESCRIPT>abap2UI5 - utility functions</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
|
@ -63,7 +63,7 @@ CLASS Z2UI5_CL_CORE_APP_STARTUP IMPLEMENTATION.
|
|||
ms_home-class_value_state = `Success`.
|
||||
ms_home-class_editable = abap_false.
|
||||
|
||||
ms_home-url = z2ui5_cl_util=>app_get_url(
|
||||
ms_home-url = z2ui5_cl_core_util_srv=>app_get_url(
|
||||
client = client
|
||||
classname = ms_home-classname ).
|
||||
|
||||
|
@ -152,21 +152,21 @@ CLASS Z2UI5_CL_CORE_APP_STARTUP IMPLEMENTATION.
|
|||
enabled = `{= $` && client->_bind( val = ms_home-class_editable ) && ` === false }` ).
|
||||
|
||||
|
||||
DATA(lv_url_samples2) = z2ui5_cl_util=>app_get_url(
|
||||
DATA(lv_url_samples2) = z2ui5_cl_core_util_srv=>app_get_url(
|
||||
client = client
|
||||
classname = 'z2ui5_cl_demo_app_000' ).
|
||||
|
||||
DATA(lv_url_samples3) = z2ui5_cl_util=>app_get_url(
|
||||
client = client
|
||||
classname = z2ui5_cl_util_api=>rtti_get_classname_by_ref( NEW z2ui5_cl_core_app_search( ) ) ).
|
||||
* DATA(lv_url_samples3) = z2ui5_cl_core_util_srv=>app_get_url(
|
||||
* client = client
|
||||
* classname = z2ui5_cl_util=>rtti_get_classname_by_ref( NEW z2ui5_cl_core_app_search( ) ) ).
|
||||
|
||||
simple_form2->toolbar( )->title( `What's next?` ).
|
||||
|
||||
simple_form2->label( `App Finder` ).
|
||||
simple_form2->button(
|
||||
text = `Start & Install Apps`
|
||||
press = client->_event_client( val = client->cs_event-open_new_tab t_arg = VALUE #( ( lv_url_samples3 ) ) )
|
||||
width = `70%` ).
|
||||
* simple_form2->label( `App Finder` ).
|
||||
* simple_form2->button(
|
||||
* text = `Start & Install Apps`
|
||||
* press = client->_event_client( val = client->cs_event-open_new_tab t_arg = VALUE #( ( lv_url_samples3 ) ) )
|
||||
* width = `70%` ).
|
||||
|
||||
IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_cl_demo_app_000` ).
|
||||
simple_form2->label( `Start Developing` ).
|
||||
|
@ -183,20 +183,21 @@ CLASS Z2UI5_CL_CORE_APP_STARTUP IMPLEMENTATION.
|
|||
href = `https://github.com/abap2UI5/abap2UI5-samples` ).
|
||||
ENDIF.
|
||||
|
||||
simple_form2->label( `` ).
|
||||
simple_form2->text( `` ).
|
||||
* simple_form2->label( `` ).
|
||||
* simple_form2->text( `` ).
|
||||
|
||||
simple_form2->toolbar( )->title( `Contribution` ).
|
||||
|
||||
simple_form2->label( `Open an issue` ).
|
||||
simple_form2->link( text = `You have problems, comments or wishes?`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/issues` ).
|
||||
|
||||
simple_form2->label( `Open a Pull Request` ).
|
||||
simple_form2->link( text = `You added a new feature or fixed a bug?`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/pulls` ).
|
||||
|
||||
simple_form2->label( `Open an issue` ).
|
||||
simple_form2->link( text = `You have problems, comments or wishes?`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/issues` ).
|
||||
|
||||
simple_form2->toolbar( )->title( `Social Media` ).
|
||||
|
||||
|
@ -299,7 +300,7 @@ CLASS Z2UI5_CL_CORE_APP_STARTUP IMPLEMENTATION.
|
|||
ms_home-btn_event_id = `BUTTON_CHECK`.
|
||||
ms_home-class_editable = abap_true.
|
||||
ms_home-btn_icon = `sap-icon://validate`.
|
||||
ms_home-classname = z2ui5_cl_util_api=>rtti_get_classname_by_ref( NEW z2ui5_cl_app_hello_world( ) ).
|
||||
ms_home-classname = z2ui5_cl_util=>rtti_get_classname_by_ref( NEW z2ui5_cl_app_hello_world( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>test webc renderer</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,267 +0,0 @@
|
|||
CLASS z2ui5_cl_ui5 DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS _factory
|
||||
IMPORTING check_popup TYPE abap_bool DEFAULT abap_false
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _go_up
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _go_root
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _go_new
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _add
|
||||
IMPORTING n TYPE clike
|
||||
ns TYPE clike
|
||||
t_p TYPE z2ui5_if_types=>ty_t_name_value OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _add_p
|
||||
IMPORTING n TYPE clike
|
||||
v TYPE clike
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _add_c
|
||||
IMPORTING val TYPE clike
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _ns
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
|
||||
|
||||
METHODS _ns_z2ui5
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_z2ui5.
|
||||
|
||||
METHODS _ns_html
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
|
||||
|
||||
METHODS _ns_webc
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING node TYPE REF TO z2ui5_cl_ui5__tree OPTIONAL.
|
||||
|
||||
METHODS _stringify
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA _node TYPE REF TO z2ui5_cl_ui5__tree.
|
||||
|
||||
CLASS-METHODS _2xml
|
||||
IMPORTING obj TYPE REF TO z2ui5_cl_ui5
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS _2bool
|
||||
IMPORTING val TYPE any
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_ui5 IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
IF node IS NOT BOUND.
|
||||
_node = NEW #( ).
|
||||
_node->mo_root = _node.
|
||||
ELSE.
|
||||
_node = node.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _2bool.
|
||||
result = z2ui5_cl_util=>boolean_abap_2_json( val ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _2xml.
|
||||
|
||||
DATA lt_prop TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
lt_prop = VALUE #( ( n = `` v = `sap.m` )
|
||||
( n = `f` v = `sap.f` )
|
||||
( n = `ndc` v = `sap.ndc` )
|
||||
( n = `tnt` v = `sap.tnt` )
|
||||
( n = `mvc` v = `sap.ui.core.mvc` )
|
||||
( n = `core` v = `sap.ui.core` )
|
||||
( n = `form` v = `sap.ui.layout.form` )
|
||||
( n = `l` v = `sap.ui.layout` )
|
||||
( n = `t` v = `sap.ui.table` )
|
||||
( n = `webc` v = `sap.ui.webc.main` )
|
||||
( n = `fl` v = `sap.ui.fl` )
|
||||
( n = `vk` v = `sap.ui.vk` )
|
||||
( n = `vbm` v = `sap.ui.vbm` )
|
||||
( n = `z2ui5` v = `z2ui5` )
|
||||
( n = `mchart` v = `sap.suite.ui.microchart` )
|
||||
( n = `editor` v = `sap.ui.codeeditor` )
|
||||
( n = `wf` v = `sap.ui.webc.fiori` )
|
||||
( n = `wm` v = `sap.ui.webc.main` )
|
||||
( n = `html` v = `http://www.w3.org/1999/xhtml` )
|
||||
* ( n = `core:require` v = `{ MessageToast: 'sap/m/MessageToast' }` )
|
||||
* ( n = `core:require` v = `{ URLHelper: 'sap/m/library/URLHelper' }` )
|
||||
* ( n = `xmlns:webc` v = `sap.ui.webc.main` )
|
||||
( n = `xmlns:uxap` v = `sap.uxap` )
|
||||
( n = `xmlns:text` v = `sap.ui.richtexteditor` )
|
||||
( n = `xmlns:fb` v = `sap.ui.comp.filterbar` )
|
||||
( n = `xmlns:u` v = `sap.ui.unified` )
|
||||
( n = `xmlns:gantt` v = `sap.gantt.simple` )
|
||||
( n = `xmlns:axistime` v = `sap.gantt.axistime` )
|
||||
( n = `xmlns:config` v = `sap.gantt.config` )
|
||||
( n = `xmlns:shapes` v = `sap.gantt.simple.shapes` )
|
||||
( n = `xmlns:commons` v = `sap.suite.ui.commons` )
|
||||
( n = `xmlns:vm` v = `sap.ui.comp.variants` )
|
||||
( n = `xmlns:viz` v = `sap.viz.ui5.controls` )
|
||||
( n = `xmlns:svm` v = `sap.ui.comp.smartvariants` )
|
||||
( n = `xmlns:flvm` v = `sap.ui.fl.variants` )
|
||||
( n = `xmlns:p13n` v = `sap.m.p13n` )
|
||||
( n = `xmlns:upload` v = `sap.m.upload` ) ).
|
||||
|
||||
IF obj->_node = obj->_node->mo_root.
|
||||
|
||||
LOOP AT obj->_node->mt_ns INTO DATA(lv_ns_tmp).
|
||||
TRY.
|
||||
DATA(ls_prop) = lt_prop[ v = lv_ns_tmp ].
|
||||
ls_prop-n = `xmlns` && COND #( WHEN ls_prop-n IS NOT INITIAL THEN `:` && ls_prop-n ).
|
||||
INSERT ls_prop INTO TABLE obj->_node->mt_prop.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
DATA(lv_text) = COND #( WHEN lv_ns_tmp IS INITIAL THEN `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
|
||||
ELSE `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = lv_text.
|
||||
ENDTRY.
|
||||
ENDLOOP.
|
||||
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_ns) = lt_prop[ v = obj->_node->mv_ns ]-n.
|
||||
lv_ns = COND #( WHEN lv_ns <> `` THEN |{ lv_ns }:| ).
|
||||
|
||||
DATA(lv_element) = obj->_node->mv_name.
|
||||
DATA(lv_prop) = REDUCE #( INIT val = `` FOR row IN obj->_node->mt_prop
|
||||
NEXT val = |{ val } { row-n }="{ escape(
|
||||
val = COND #( WHEN row-v = abap_true
|
||||
THEN `true`
|
||||
ELSE row-v )
|
||||
format = cl_abap_format=>e_xml_attr ) }"| ).
|
||||
|
||||
result = |{ result }<{ lv_ns }{ lv_element }{ lv_prop }|.
|
||||
|
||||
IF obj->_node->mt_child IS INITIAL AND obj->_node->mv_content IS INITIAL.
|
||||
result = |{ result }/>|.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
result = |{ result }>|.
|
||||
|
||||
IF obj->_node->mv_content IS NOT INITIAL.
|
||||
result = result && obj->_node->mv_content.
|
||||
result = |{ result }</{ lv_ns }{ lv_element }>|.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT obj->_node->mt_child INTO DATA(lr_child).
|
||||
DATA(lo_child) = NEW z2ui5_cl_ui5( lr_child ).
|
||||
result = result && _2xml( lo_child ).
|
||||
ENDLOOP.
|
||||
|
||||
result = |{ result }</{ lv_ns }{ lv_element }>|.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _add.
|
||||
TRY.
|
||||
INSERT CONV #( ns ) INTO TABLE _node->mo_root->mt_ns.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
DATA(lo_node) = NEW z2ui5_cl_ui5__tree( ).
|
||||
DATA(result2) = NEW z2ui5_cl_ui5( lo_node ).
|
||||
result2->_node->mv_name = n.
|
||||
result2->_node->mv_ns = ns.
|
||||
result2->_node->mt_prop = t_p.
|
||||
DELETE result2->_node->mt_prop WHERE v = ``.
|
||||
result2->_node->mo_parent = _node.
|
||||
result2->_node->mo_root = _node->mo_root.
|
||||
INSERT result2->_node INTO TABLE _node->mt_child.
|
||||
|
||||
_node->mo_root->mo_previous = result2->_node.
|
||||
result = result2.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _add_p.
|
||||
INSERT VALUE #( n = n v = v ) INTO TABLE _node->mt_prop.
|
||||
result = me.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _factory.
|
||||
result = NEW #( ).
|
||||
|
||||
DATA(lv_n) = COND #( WHEN check_popup = abap_true THEN `FragmentDefinition` ELSE `View` ).
|
||||
DATA(lv_ns) = COND #( WHEN check_popup = abap_true THEN `sap.ui.core` ELSE `sap.ui.core.mvc` ).
|
||||
|
||||
result->_node->mv_name = lv_n.
|
||||
result->_node->mv_ns = lv_ns.
|
||||
INSERT lv_ns INTO TABLE result->_node->mo_root->mt_ns.
|
||||
"( n = lv_n ns = lv_ns ).
|
||||
|
||||
IF check_popup = abap_false.
|
||||
result->_add_p( n = `displayBlock`
|
||||
v = `true` ).
|
||||
result->_add_p( n = `height`
|
||||
v = `100%` ).
|
||||
ENDIF.
|
||||
|
||||
result->_node->mt_ns = result->_node->mo_root->mt_ns.
|
||||
result->_node->mo_root = result->_node.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _go_new.
|
||||
result = NEW #( _node->mo_root->mo_previous ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _go_root.
|
||||
result = NEW #( _node->mo_root ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _go_up.
|
||||
IF _node = _node->mo_root.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `XML_VIEW_PARSER_ERROR - go_up on root element not possible`.
|
||||
ENDIF.
|
||||
result = NEW #( _node->mo_parent ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _ns.
|
||||
result = NEW #( _node ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _ns_html.
|
||||
result = NEW #( _node ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _ns_webc.
|
||||
result = NEW #( _node ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _ns_z2ui5.
|
||||
result = NEW #( _node ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _stringify.
|
||||
DATA(lo_node) = NEW z2ui5_cl_ui5( _node->mo_root ).
|
||||
result = _2xml( lo_node ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _add_c.
|
||||
_node->mv_content = val.
|
||||
result = me.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -1,21 +0,0 @@
|
|||
CLASS z2ui5_cl_ui5__tree DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
DATA mt_prop TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
|
||||
DATA mv_name TYPE string.
|
||||
DATA mv_content TYPE string.
|
||||
DATA mv_ns TYPE string.
|
||||
DATA mo_root TYPE REF TO z2ui5_cl_ui5__tree.
|
||||
DATA mo_previous TYPE REF TO z2ui5_cl_ui5__tree.
|
||||
DATA mo_parent TYPE REF TO z2ui5_cl_ui5__tree.
|
||||
DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_ui5__tree WITH EMPTY KEY.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_UI5__TREE IMPLEMENTATION.
|
||||
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_UI5__TREE</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui5 - utility tree</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,46 +0,0 @@
|
|||
CLASS z2ui5_cl_ui5_html DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS script
|
||||
IMPORTING src TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
|
||||
|
||||
METHODS style
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
|
||||
|
||||
METHODS zz_plain
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_ui5_html IMPLEMENTATION.
|
||||
|
||||
METHOD zz_plain.
|
||||
result = me.
|
||||
_add( n = `script`
|
||||
ns = `http://www.w3.org/1999/xhtml`
|
||||
t_p = VALUE #( ( n = `src` v = val ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD script.
|
||||
result = _add( n = `script`
|
||||
ns = `http://www.w3.org/1999/xhtml`
|
||||
t_p = VALUE #( ( n = `src` v = src ) ) )->_ns_html( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD style.
|
||||
result = me.
|
||||
_add( n = `style`
|
||||
ns = `http://www.w3.org/1999/xhtml` ).
|
||||
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_UI5_HTML</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ns - html</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,142 +0,0 @@
|
|||
CLASS z2ui5_cl_ui5_webc DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
|
||||
|
||||
PUBLIC SECTION.
|
||||
METHODS button
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
icon TYPE clike OPTIONAL
|
||||
text TYPE clike OPTIONAL
|
||||
tooltip TYPE clike OPTIONAL
|
||||
design TYPE clike OPTIONAL
|
||||
click TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS bar
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
design TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS label
|
||||
IMPORTING
|
||||
id TYPE clike OPTIONAL
|
||||
text TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS panel
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS header
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS input
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
text TYPE clike OPTIONAL
|
||||
click TYPE clike OPTIONAL
|
||||
value TYPE clike OPTIONAL
|
||||
width TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
METHODS toast
|
||||
IMPORTING id TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_webc.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_UI5_WEBC IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD bar.
|
||||
|
||||
result = _add( n = `Bar`
|
||||
ns = 'sap.ui.webc.fiori'
|
||||
t_p = VALUE #( ( n = `id` v = id )
|
||||
( n = `design` v = design )
|
||||
) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD button.
|
||||
|
||||
result = me.
|
||||
_add( n = `Button`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #( ( n = `id` v = id )
|
||||
( n = `icon` v = icon )
|
||||
( n = `tooltip` v = tooltip )
|
||||
( n = `text` v = text )
|
||||
( n = `click` v = click )
|
||||
( n = `design` v = design ) ) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD header.
|
||||
|
||||
result = _add( n = `header`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #( ( n = `id` v = id ) ) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD input.
|
||||
|
||||
result = me.
|
||||
_add( n = `Input`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #(
|
||||
( n = `id` v = id )
|
||||
( n = `text` v = text )
|
||||
( n = `click` v = click )
|
||||
( n = `width` v = width )
|
||||
( n = `value` v = value )
|
||||
) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD label.
|
||||
|
||||
result = me.
|
||||
_add( n = `Label`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #(
|
||||
( n = `id` v = id )
|
||||
( n = `text` v = text )
|
||||
) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD panel.
|
||||
|
||||
result = _add( n = `Panel`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #(
|
||||
( n = `id` v = id )
|
||||
) )->_ns_webc( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD toast.
|
||||
|
||||
result = me.
|
||||
_add( n = `Toast`
|
||||
ns = 'sap.ui.webc.main'
|
||||
t_p = VALUE #(
|
||||
( n = `id` v = id )
|
||||
) )->_ns_webc( ).
|
||||
|
||||
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_UI5_WEBC</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ns - sap.ui.webc</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,70 +0,0 @@
|
|||
CLASS z2ui5_cl_ui5_z2ui5 DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS file_uploader
|
||||
IMPORTING
|
||||
!value TYPE clike OPTIONAL
|
||||
!path TYPE clike OPTIONAL
|
||||
!placeholder TYPE clike OPTIONAL
|
||||
!upload TYPE clike OPTIONAL
|
||||
!icononly TYPE clike OPTIONAL
|
||||
!buttononly TYPE clike OPTIONAL
|
||||
!buttontext TYPE clike OPTIONAL
|
||||
!uploadbuttontext TYPE clike OPTIONAL
|
||||
!checkdirectupload TYPE clike OPTIONAL
|
||||
!filetype TYPE clike OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_ui5_z2ui5.
|
||||
|
||||
METHODS timer
|
||||
IMPORTING
|
||||
finished TYPE clike OPTIONAL
|
||||
delayms TYPE clike OPTIONAL
|
||||
checkrepeat TYPE clike OPTIONAL
|
||||
PREFERRED PARAMETER finished
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_ui5_z2ui5.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_ui5_z2ui5 IMPLEMENTATION.
|
||||
|
||||
METHOD timer.
|
||||
|
||||
result = me.
|
||||
_add( n = `Timer`
|
||||
ns = `z2ui5`
|
||||
t_p = VALUE #( ( n = `delayMS` v = delayms )
|
||||
( n = `finished` v = finished )
|
||||
( n = `checkRepeat` v = _2bool( checkrepeat ) )
|
||||
) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD file_uploader.
|
||||
|
||||
result = me.
|
||||
_add( n = `FileUploader`
|
||||
ns = `z2ui5`
|
||||
t_p = VALUE #( ( n = `placeholder` v = placeholder )
|
||||
( n = `upload` v = upload )
|
||||
( n = `path` v = path )
|
||||
( n = `value` v = value )
|
||||
( n = `iconOnly` v = _2bool( icononly ) )
|
||||
( n = `buttonOnly` v = _2bool( buttononly ) )
|
||||
( n = `buttonText` v = buttontext )
|
||||
( n = `uploadButtonText` v = uploadbuttontext )
|
||||
( n = `fileType` v = filetype )
|
||||
( n = `checkDirectUpload` v = _2bool( checkdirectupload ) ) ) ).
|
||||
|
||||
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_UI5_Z2UI5</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ns - z2ui5 (custom)</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>abap2UI5 - test</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,62 +0,0 @@
|
|||
CLASS z2ui5_cl_test_app_131 DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app .
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_test_app_131 IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
DATA(lo_view) = z2ui5_cl_ui5=>_factory( )->_ns_webc(
|
||||
)->bar( design = 'header'
|
||||
)->label( id = 'basic-label'
|
||||
)->button(
|
||||
icon = 'home'
|
||||
tooltip = 'Go home'
|
||||
design = 'Transparent'
|
||||
)->button(
|
||||
icon = 'action-settings'
|
||||
tooltip = 'Go to settings'
|
||||
design = 'Transparent'
|
||||
)->_go_up( )->_ns_webc(
|
||||
)->panel(
|
||||
)->header(
|
||||
)->label( text = 'UI5 Web Components Enablement'
|
||||
)->_go_up( )->_ns_webc(
|
||||
)->input(
|
||||
id = `myInput`
|
||||
value = `Enter your text here!`
|
||||
width = `100%`
|
||||
)->button(
|
||||
id = 'btn-9'
|
||||
text = `Don't click me!`
|
||||
icon = 'action-settings'
|
||||
click = 'onClick'
|
||||
design = 'Transparent'
|
||||
)->_go_up( )->_ns_webc(
|
||||
)->toast( 'myToast'
|
||||
)->_ns_html(
|
||||
)->script( )->_add_c(
|
||||
` var toastOpener9 = sap.z2ui5.oView.byId("btn-9");` && |\n| &&
|
||||
` var toast9 = sap.z2ui5.oView.byId("myToast"); ` && |\n| &&
|
||||
` toastOpener9.getDomRef().addEventListener("click", () => {` && |\n| &&
|
||||
` toast9.setText("MyText");` && |\n| &&
|
||||
` toast9.show();` && |\n| &&
|
||||
` });`
|
||||
).
|
||||
|
||||
client->view_display( lo_view->_stringify( ) ).
|
||||
|
||||
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_TEST_APP_131</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui with webcomponents</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,53 +0,0 @@
|
|||
CLASS z2ui5_cl_test_app_132 DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app .
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_test_app_132 IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
* DATA(lo_view) = z2ui5_cl_ui5=>_factory( )->_ns_m(
|
||||
* )->bar( )->content_middle(
|
||||
* )->label( id = 'basic-label'
|
||||
* )->button(
|
||||
* icon = 'home'
|
||||
* tooltip = 'Go home'
|
||||
* )->button(
|
||||
* icon = 'action-settings'
|
||||
* tooltip = 'Go to settings'
|
||||
* )->_go_up( )->_go_up( )->_ns_m(
|
||||
* )->panel(
|
||||
* )->label( text = 'UI5 Web Components Enablement build with sap.m'
|
||||
* )->_go_up( )->_ns_m(
|
||||
* )->input(
|
||||
* id = `myInput`
|
||||
* value = `Enter your text here!`
|
||||
* width = `100%`
|
||||
* )->button(
|
||||
* id = 'btn-9'
|
||||
* text = `Don't click me!`
|
||||
* icon = 'action-settings'
|
||||
* press = 'onClick'
|
||||
* )->_ns_html(
|
||||
* )->script( )->_add_c(
|
||||
* ` debugger; var toastOpener9 = sap.z2ui5.oView.byId("btn-9");` && |\n| &&
|
||||
* ` toastOpener9.getDomRef().addEventListener("click", () => {` && |\n| &&
|
||||
* ` alert("MyText");` && |\n| &&
|
||||
* ` });`
|
||||
* ).
|
||||
|
||||
* client->view_display( lo_view->_stringify( ) ).
|
||||
|
||||
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_TEST_APP_132</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui with sap.m</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,50 +0,0 @@
|
|||
CLASS z2ui5_cl_test_hello_wor DEFINITION PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA product TYPE string.
|
||||
DATA quantity TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_cl_test_hello_wor IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
product = 'products'.
|
||||
quantity = '500'.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
WHEN 'BUTTON_POST'.
|
||||
client->message_toast_display( |{ product } { quantity } - send to the server| ).
|
||||
WHEN OTHERS.
|
||||
ENDCASE.
|
||||
*
|
||||
* client->view_display( z2ui5_cl_ui5=>_factory( )->_ns_m(
|
||||
* )->shell(
|
||||
* )->page( title = 'abap2UI5 - z2ui5_cl_app_hello_world' )->_ns_ui(
|
||||
* )->simpleform( title = 'Hello World'
|
||||
* editable = abap_true
|
||||
* )->content( )->_ns_m(
|
||||
* )->title( 'Make an input here and send it to the server...'
|
||||
* )->label( 'quantity'
|
||||
* )->input( client->_bind_edit( quantity )
|
||||
* )->label( 'product'
|
||||
* )->input( value = product
|
||||
* enabled = abap_false
|
||||
* )->button( text = 'post'
|
||||
* press = client->_event( 'BUTTON_POST' )
|
||||
* )->_stringify( ) ).
|
||||
|
||||
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_TEST_HELLO_WOR</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>test app</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,123 +0,0 @@
|
|||
CLASS z2ui5_cl_test_int_test DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
DATA product TYPE string.
|
||||
DATA quantity TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
|
||||
CLASS-DATA sv_state TYPE string.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_TEST_INT_TEST IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
product = 'tomato'.
|
||||
quantity = '500'.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
WHEN 'BUTTON_POST'.
|
||||
client->message_toast_display( |{ product } { quantity } - send to the server| ).
|
||||
WHEN 'BACK'.
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
||||
IF sv_state = 'TEST_MESSAGE_BOX'.
|
||||
client->message_box_display( 'test message box' ).
|
||||
ENDIF.
|
||||
|
||||
IF sv_state = 'TEST_MESSAGE_TOAST'.
|
||||
client->message_toast_display( 'test message toast' ).
|
||||
ENDIF.
|
||||
|
||||
CASE sv_state.
|
||||
|
||||
WHEN `ERROR`.
|
||||
DATA(lv_test) = 1 / 0 ##NEEDED.
|
||||
|
||||
WHEN 'TEST_ONE_WAY'.
|
||||
client->view_display( z2ui5_cl_xml_view=>factory( )->shell(
|
||||
)->page( title = 'abap2UI5 - First Example'
|
||||
navbuttonpress = client->_event( 'BACK' )
|
||||
shownavbutton = abap_true
|
||||
)->simple_form( title = 'Form Title'
|
||||
editable = abap_true
|
||||
)->content( 'form'
|
||||
)->title( 'Input'
|
||||
)->label( 'quantity'
|
||||
)->input( client->_bind( quantity )
|
||||
)->label( 'product'
|
||||
)->input( value = product
|
||||
enabled = abap_false
|
||||
)->button( text = 'post'
|
||||
press = client->_event( 'BUTTON_POST' )
|
||||
)->get_root( )->xml_get( ) ).
|
||||
|
||||
WHEN 'TEST_POPUP'.
|
||||
|
||||
client->popup_display( z2ui5_cl_xml_view=>factory(
|
||||
)->dialog( title = 'abap2UI5 - First Example'
|
||||
)->simple_form( title = 'Form Title'
|
||||
editable = abap_true
|
||||
)->content( 'form'
|
||||
)->title( 'Input'
|
||||
)->label( 'quantity'
|
||||
)->input( client->_bind_edit( quantity )
|
||||
)->label( 'product'
|
||||
)->input( value = product
|
||||
enabled = abap_false
|
||||
)->button( text = 'post'
|
||||
press = client->_event( 'BUTTON_POST' )
|
||||
)->get_root( )->xml_get( ) ).
|
||||
|
||||
|
||||
|
||||
WHEN OTHERS.
|
||||
client->view_display( z2ui5_cl_xml_view=>factory( )->shell(
|
||||
)->page( title = 'abap2UI5 - First Example'
|
||||
navbuttonpress = client->_event( 'BACK' )
|
||||
shownavbutton = abap_true
|
||||
)->simple_form( title = 'Form Title'
|
||||
editable = abap_true
|
||||
)->content( 'form'
|
||||
)->title( 'Input'
|
||||
)->label( 'quantity'
|
||||
)->input( client->_bind_edit( quantity )
|
||||
)->label( 'product'
|
||||
)->input( value = product
|
||||
enabled = abap_false
|
||||
)->button( text = 'post'
|
||||
press = client->_event( 'BUTTON_POST' )
|
||||
)->get_root( )->xml_get( ) ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
|
||||
|
||||
IF sv_state = 'TEST_NAVIGATE'.
|
||||
DATA(lo_app) = NEW z2ui5_cl_test_int_test( ).
|
||||
sv_state = 'LEAVE_APP'.
|
||||
client->nav_app_call( lo_app ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF sv_state = 'LEAVE_APP'.
|
||||
CLEAR sv_state.
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
|
@ -1,315 +0,0 @@
|
|||
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS
|
||||
first_test FOR TESTING RAISING cx_static_check.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
|
||||
METHOD first_test.
|
||||
|
||||
* DATA test TYPE /ui2/cl_json=>bool ##NEEDED.
|
||||
* DATA test_const TYPE string VALUE /ui2/cl_json=>pretty_mode-extended ##NEEDED.
|
||||
|
||||
* DATA text TYPE char10.
|
||||
* DATA text2 TYPE text100.
|
||||
* DATA text3 TYPE text10.
|
||||
* DATA text4 TYPE text10.
|
||||
*
|
||||
* DATA stringtab TYPE stringtab.
|
||||
*
|
||||
* DATA test1 TYPE text1.
|
||||
* DATA test2 TYPE text10.
|
||||
* DATA test3 TYPE text11.
|
||||
* DATA test4 TYPE text12.
|
||||
* DATA test5 TYPE text120.
|
||||
* DATA test6 TYPE text128.
|
||||
* DATA test7 TYPE text132.
|
||||
* DATA test8 TYPE text140.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
*CLASS ltcl_integration_test DEFINITION FINAL FOR TESTING
|
||||
* DURATION LONG
|
||||
* RISK LEVEL HARMLESS.
|
||||
*
|
||||
* PUBLIC SECTION.
|
||||
*
|
||||
*
|
||||
* PRIVATE SECTION.
|
||||
* METHODS test_index_html FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_xml_view FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_id FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_xml_popup FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_bind_one_way FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_bind_two_way FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_message_toast FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_message_box FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_landing_page FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_scroll_cursor FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_navigate FOR TESTING RAISING cx_static_check.
|
||||
* METHODS test_startup_path FOR TESTING RAISING cx_static_check.
|
||||
*
|
||||
* METHODS test_app_dump FOR TESTING RAISING cx_static_check.
|
||||
*
|
||||
*ENDCLASS.
|
||||
*
|
||||
*
|
||||
*CLASS ltcl_integration_test IMPLEMENTATION.
|
||||
*
|
||||
* METHOD test_xml_view.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
* "test
|
||||
* z2ui5_cl_test_integration_test=>sv_state = ``.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `PARAMS->S_VIEW->XML->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* <val> = shift_left( <val> ).
|
||||
* IF <val>(9) <> `<mvc:View`.
|
||||
* cl_abap_unit_assert=>fail( 'xml view - intital view wrong' ).
|
||||
* ENDIF.
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_index_html.
|
||||
*
|
||||
* DATA(lv_index_html) = z2ui5_cl_fw_http_handler=>http_get( ).
|
||||
* IF lv_index_html IS INITIAL.
|
||||
* cl_abap_unit_assert=>fail( 'HTTP GET - index html initial' ).
|
||||
* ENDIF.
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
*
|
||||
* METHOD test_id.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = ``.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `ID->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> IS INITIAL.
|
||||
* cl_abap_unit_assert=>fail( msg = 'id - initial value is initial'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_bind_one_way.
|
||||
*
|
||||
* DATA(lo_test) = NEW z2ui5_cl_test_integration_test( ) ##NEEDED.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_ONE_WAY`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `OVIEWMODEL->QUANTITY->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> <> `500`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'data binding - initial set EDIT wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_bind_two_way.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = ``.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `OVIEWMODEL->EDIT->QUANTITY->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> <> `500`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'data binding - initial set EDIT wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_message_box.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_MESSAGE_BOX`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `PARAMS->S_MSG_BOX->TEXT->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> <> `test message box`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'message box - text wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* lv_assign = `PARAMS->S_MSG_BOX->TYPE->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> <> `information`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'message box - type wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_message_toast.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_MESSAGE_TOAST`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `PARAMS->S_MSG_TOAST->TEXT->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* IF <val> <> `test message toast`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'message toast - text wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
*
|
||||
* METHOD test_xml_popup.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_POPUP`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* DATA(lv_assign) = `PARAMS->S_POPUP->XML->*`.
|
||||
* ASSIGN lo_data->(lv_assign) TO <val>.
|
||||
* <val> = shift_left( <val> ).
|
||||
* IF <val>(9) <> `<mvc:View`.
|
||||
* cl_abap_unit_assert=>fail( msg = 'xml popup - intital popup wrong'
|
||||
* quit = 5 ).
|
||||
* ENDIF.
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_landing_page.
|
||||
*
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_scroll_cursor.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_SCROLL_CURSOR`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_startup_path.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_NAVIGATE`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
* METHOD test_navigate.
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `TEST_NAVIGATE`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
|
||||
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
|
||||
* CHANGING data = lo_data ).
|
||||
*
|
||||
* ENDMETHOD.
|
||||
*
|
||||
*
|
||||
* METHOD test_app_dump.
|
||||
*
|
||||
* DATA lo_data TYPE REF TO data.
|
||||
* FIELD-SYMBOLS <val> TYPE any.
|
||||
*
|
||||
* z2ui5_cl_test_integration_test=>sv_state = `ERROR`.
|
||||
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post( `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_test_integration_test"}}` ).
|
||||
*
|
||||
*
|
||||
* /ui2/cl_json=>deserialize(
|
||||
* EXPORTING
|
||||
* json = lv_response
|
||||
* CHANGING
|
||||
* data = lo_data ).
|
||||
*
|
||||
* UNASSIGN <val>.
|
||||
* ASSIGN (`LO_DATA->PARAMS->S_VIEW->XML->*`) TO <val>.
|
||||
* cl_abap_unit_assert=>assert_not_initial( <val> ).
|
||||
*
|
||||
* 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_TEST_INT_TEST</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abap2UI5 - integration test</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>
|
|
@ -5,7 +5,6 @@ CLASS z2ui5_cl_util_api DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_token,
|
||||
key TYPE string,
|
||||
|
@ -40,6 +39,8 @@ CLASS z2ui5_cl_util_api DEFINITION
|
|||
END OF ty_s_fix_val.
|
||||
TYPES ty_t_fix_val TYPE STANDARD TABLE OF ty_s_fix_val WITH EMPTY KEY.
|
||||
|
||||
|
||||
|
||||
CLASS-METHODS rtti_get_t_attri_by_include
|
||||
IMPORTING
|
||||
type TYPE REF TO cl_abap_datadescr
|
||||
|
@ -382,6 +383,40 @@ CLASS z2ui5_cl_util_api DEFINITION
|
|||
IMPORTING !type TYPE REF TO cl_abap_datadescr
|
||||
RETURNING VALUE(result) TYPE abap_component_tab ##NEEDED.
|
||||
|
||||
CLASS-METHODS db_delete_by_handle
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
!check_commit TYPE abap_bool DEFAULT abap_true.
|
||||
|
||||
CLASS-METHODS db_save
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
!data TYPE any
|
||||
!check_commit TYPE abap_bool DEFAULT abap_true
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS db_load_by_id
|
||||
IMPORTING
|
||||
!id TYPE clike OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(result) TYPE any.
|
||||
|
||||
CLASS-METHODS db_load_by_handle
|
||||
IMPORTING
|
||||
!uname TYPE clike OPTIONAL
|
||||
!handle TYPE clike OPTIONAL
|
||||
!handle2 TYPE clike OPTIONAL
|
||||
!handle3 TYPE clike OPTIONAL
|
||||
EXPORTING
|
||||
VALUE(result) TYPE any.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
@ -394,6 +429,108 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_util_api IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD db_delete_by_handle.
|
||||
|
||||
DELETE FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load_by_handle.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = `No entry for handle exists`.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_load_by_id.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_02
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
xml_parse(
|
||||
EXPORTING
|
||||
xml = ls_db-data
|
||||
IMPORTING
|
||||
any = result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD db_save.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY.
|
||||
SELECT id
|
||||
FROM z2ui5_t_02
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db ##SUBRC_OK.
|
||||
|
||||
DATA(ls_db) = VALUE z2ui5_t_02(
|
||||
uname = uname
|
||||
handle = handle
|
||||
handle2 = handle2
|
||||
handle3 = handle3
|
||||
data = xml_stringify( data ) ).
|
||||
|
||||
TRY.
|
||||
ls_db-id = lt_db[ 1 ]-id.
|
||||
CATCH cx_root.
|
||||
ls_db-id = uuid_get_c32( ).
|
||||
ENDTRY.
|
||||
|
||||
MODIFY z2ui5_t_02 FROM @ls_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
result = ls_db-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_abap_2_json.
|
||||
|
||||
IF boolean_check_by_data( val ).
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>abap2UI5 - classic (xml)</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -3,7 +3,7 @@
|
|||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>abap2UI5 - apps & popups</CTEXT>
|
||||
<CTEXT>abap2UI5 - popups</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -196,12 +196,12 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
|||
type = `Transparent`
|
||||
press = client->_event( val = `POPUP_DELETE_ALL` )
|
||||
* )->toolbar_spacer(
|
||||
)->button( text = 'DB Read'
|
||||
press = client->_event( 'BUTTON_DB_READ' )
|
||||
icon = 'sap-icon://download-from-cloud'
|
||||
)->button( text = 'DB Save'
|
||||
press = client->_event( 'BUTTON_DB_SAVE' )
|
||||
icon = 'sap-icon://save'
|
||||
* )->button( text = 'DB Read'
|
||||
* press = client->_event( 'BUTTON_DB_READ' )
|
||||
* icon = 'sap-icon://download-from-cloud'
|
||||
* )->button( text = 'DB Save'
|
||||
* press = client->_event( 'BUTTON_DB_SAVE' )
|
||||
* icon = 'sap-icon://save'
|
||||
* )->toolbar_spacer(
|
||||
)->button( text = 'Cancel'
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
|
@ -237,9 +237,20 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
|||
)->text( '{DESCR}'
|
||||
)->text( '{DEF}' ).
|
||||
|
||||
dialog->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
* dialog->footer( )->overflow_toolbar(
|
||||
* )->toolbar_spacer(
|
||||
* )->button(
|
||||
* text = 'Back'
|
||||
* icon = 'sap-icon://nav-back'
|
||||
* press = client->_event( 'DB_READ_CLOSE' )
|
||||
* )->button(
|
||||
* text = 'Open'
|
||||
* icon = 'sap-icon://accept'
|
||||
* press = client->_event( 'OPEN_SELECT' )
|
||||
* type = 'Emphasized' ).
|
||||
|
||||
dialog->buttons(
|
||||
)->button(
|
||||
text = 'Back'
|
||||
icon = 'sap-icon://nav-back'
|
||||
press = client->_event( 'DB_READ_CLOSE' )
|
||||
|
@ -289,9 +300,20 @@ CLASS Z2UI5_CL_POP_GET_RANGE_M IMPLEMENTATION.
|
|||
)->switch( type = 'AcceptReject' state = client->_bind_edit( ms_variant_save-check_user )
|
||||
).
|
||||
|
||||
dialog->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
* dialog->footer( )->overflow_toolbar(
|
||||
* )->toolbar_spacer(
|
||||
* )->button(
|
||||
* text = 'Back'
|
||||
* icon = 'sap-icon://nav-back'
|
||||
* press = client->_event( 'DB_SAVE_CLOSE' )
|
||||
* )->button(
|
||||
* text = 'Save'
|
||||
* press = client->_event( 'DB_SAVE' )
|
||||
* type = 'Success'
|
||||
* icon = 'sap-icon://save' ).
|
||||
|
||||
dialog->buttons(
|
||||
)->button(
|
||||
text = 'Back'
|
||||
icon = 'sap-icon://nav-back'
|
||||
press = client->_event( 'DB_SAVE_CLOSE' )
|
||||
|
|
|
@ -1,405 +0,0 @@
|
|||
CLASS z2ui5_cl_pop_to_sel_w_l DEFINITION
|
||||
PUBLIC FINAL
|
||||
CREATE PROTECTED.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES if_serializable_object.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_result,
|
||||
row TYPE REF TO data,
|
||||
check_confirmed TYPE abap_bool,
|
||||
END OF ty_s_result.
|
||||
|
||||
DATA ms_result TYPE ty_s_result.
|
||||
DATA mr_tab TYPE REF TO data.
|
||||
DATA mr_out TYPE REF TO data.
|
||||
DATA mr_out_tmp TYPE REF TO data.
|
||||
|
||||
DATA ms_layout TYPE z2ui5_cl_pop_layout_v2=>ty_s_layout.
|
||||
DATA mv_search_value TYPE string.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_tab TYPE STANDARD TABLE
|
||||
i_title TYPE clike OPTIONAL
|
||||
i_sort_field TYPE clike OPTIONAL
|
||||
i_descending TYPE abap_bool OPTIONAL
|
||||
i_contentwidth TYPE clike OPTIONAL
|
||||
i_contentheight TYPE clike OPTIONAL
|
||||
i_growingthreshold TYPE clike OPTIONAL
|
||||
i_handle01 TYPE z2ui5_cl_pop_layout_v2=>handle OPTIONAL
|
||||
i_handle02 TYPE z2ui5_cl_pop_layout_v2=>handle OPTIONAL
|
||||
i_handle03 TYPE z2ui5_cl_pop_layout_v2=>handle OPTIONAL
|
||||
i_handle04 TYPE z2ui5_cl_pop_layout_v2=>handle OPTIONAL
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_pop_to_sel_w_l.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_s_result.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA sort_field TYPE string.
|
||||
DATA content_width TYPE string.
|
||||
DATA content_height TYPE string.
|
||||
DATA growing_threshold TYPE string.
|
||||
DATA descending TYPE abap_bool.
|
||||
|
||||
METHODS on_event.
|
||||
METHODS display.
|
||||
METHODS set_output_table.
|
||||
|
||||
METHODS on_event_search.
|
||||
|
||||
METHODS get_comp
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_component_tab.
|
||||
|
||||
PRIVATE SECTION.
|
||||
METHODS set_row_id.
|
||||
METHODS confirm.
|
||||
METHODS on_after_layout.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_to_sel_w_l IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
r_result->sort_field = i_sort_field.
|
||||
r_result->descending = i_descending.
|
||||
r_result->content_height = i_contentheight.
|
||||
r_result->content_width = i_contentwidth.
|
||||
r_result->growing_threshold = i_growingthreshold.
|
||||
|
||||
r_result->mr_tab = z2ui5_cl_util=>conv_copy_ref_data( i_tab ).
|
||||
|
||||
CREATE DATA r_result->ms_result-row LIKE LINE OF i_tab.
|
||||
|
||||
r_result->ms_layout = z2ui5_cl_pop_layout_v2=>init_layout( data = r_result->mr_tab
|
||||
control = z2ui5_cl_pop_layout_v2=>m_table
|
||||
handle01 = i_handle01
|
||||
handle02 = i_handle02
|
||||
handle03 = i_handle03
|
||||
handle04 = i_handle04 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
afterclose = client->_event( 'CANCEL' ) ).
|
||||
|
||||
DATA(table) = popup->table( growing = 'true'
|
||||
growingthreshold = '100'
|
||||
width = 'auto'
|
||||
autopopinmode = abap_true
|
||||
items = client->_bind_edit( val = mr_out->* )
|
||||
headertext = title ).
|
||||
|
||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
||||
DATA(headder) = table->header_toolbar(
|
||||
)->overflow_toolbar(
|
||||
)->title( title
|
||||
)->search_field( value = client->_bind_edit( mv_search_value )
|
||||
search = client->_event( 'SEARCH' )
|
||||
change = client->_event( 'SEARCH' )
|
||||
id = `SEARCH`
|
||||
width = '17.5rem' ).
|
||||
|
||||
headder = z2ui5_cl_pop_layout_v2=>render_layout_function( xml = headder
|
||||
client = client ).
|
||||
|
||||
DATA(columns) = table->columns( ).
|
||||
|
||||
LOOP AT ms_layout-t_layout REFERENCE INTO DATA(layout).
|
||||
DATA(lv_index) = sy-tabix.
|
||||
|
||||
columns->column( visible = client->_bind( val = layout->visible
|
||||
tab = ms_layout-t_layout
|
||||
tab_index = lv_index )
|
||||
halign = client->_bind( val = layout->halign
|
||||
tab = ms_layout-t_layout
|
||||
tab_index = lv_index )
|
||||
importance = client->_bind( val = layout->importance
|
||||
tab = ms_layout-t_layout
|
||||
tab_index = lv_index )
|
||||
mergeduplicates = client->_bind( val = layout->merge
|
||||
tab = ms_layout-t_layout
|
||||
tab_index = lv_index )
|
||||
width = client->_bind( val = layout->width
|
||||
tab = ms_layout-t_layout
|
||||
tab_index = lv_index )
|
||||
)->text( layout->tlabel ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
DATA(cells) = columns->get_parent( )->items(
|
||||
)->column_list_item(
|
||||
valign = 'Middle'
|
||||
type = 'Navigation'
|
||||
press = client->_event( val = 'CONFIRM'
|
||||
t_arg = VALUE #( ( `${ZZROW_ID}` ) ) )
|
||||
)->cells( ).
|
||||
|
||||
LOOP AT ms_layout-t_layout REFERENCE INTO layout.
|
||||
|
||||
IF layout->t_sub_col IS NOT INITIAL.
|
||||
|
||||
DATA(sub_col) = ``.
|
||||
DATA(index) = 0.
|
||||
|
||||
LOOP AT layout->t_sub_col INTO DATA(subcol).
|
||||
|
||||
index = index + 1.
|
||||
|
||||
READ TABLE ms_layout-t_layout INTO DATA(line) WITH KEY fname = subcol-fname.
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
IF line-reference_field IS INITIAL.
|
||||
DATA(column) = |{ line-tlabel }: \{{ subcol-fname }\}|.
|
||||
ELSE.
|
||||
column = |{ line-tlabel }: \{{ subcol-fname }\} \{{ line-reference_field }\}|.
|
||||
ENDIF.
|
||||
|
||||
IF index = 1.
|
||||
sub_col = column.
|
||||
ELSE.
|
||||
sub_col = |{ sub_col }{ cl_abap_char_utilities=>cr_lf }{ column }|.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
IF layout->reference_field IS NOT INITIAL.
|
||||
cells->object_identifier( title = |\{{ layout->fname }\} \{{ layout->reference_field }\}|
|
||||
text = sub_col ).
|
||||
ELSE.
|
||||
cells->object_identifier( title = |\{{ layout->fname }\}|
|
||||
text = sub_col ).
|
||||
ENDIF.
|
||||
|
||||
ELSE.
|
||||
" IF layout->reference_field IS NOT INITIAL.
|
||||
cells->object_identifier( text = |\{{ layout->fname }\} \{{ layout->reference_field }\}| ).
|
||||
" ELSE.
|
||||
cells->object_identifier( text = |\{{ layout->fname }\}| ).
|
||||
" ENDIF.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
|
||||
set_output_table( ).
|
||||
|
||||
display( ).
|
||||
|
||||
RETURN.
|
||||
|
||||
ENDIF.
|
||||
|
||||
on_event( ).
|
||||
|
||||
on_after_layout( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'CONFIRM'.
|
||||
|
||||
confirm( ).
|
||||
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN 'CANCEL'.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN 'SEARCH'.
|
||||
on_event_search( ).
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
client = z2ui5_cl_pop_layout_v2=>on_event_layout( client = client
|
||||
layout = ms_layout ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_after_layout.
|
||||
|
||||
IF client->get( )-check_on_navigated = abap_false.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(app) = CAST z2ui5_cl_pop_layout_v2( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
|
||||
ms_layout = app->ms_layout.
|
||||
|
||||
display( ).
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD confirm.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
|
||||
ASSIGN mr_out->* TO <tab>.
|
||||
DATA(t_arg) = client->get( )-t_event_arg.
|
||||
DATA(row_clicked) = t_arg[ 1 ].
|
||||
|
||||
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<line>).
|
||||
|
||||
ASSIGN COMPONENT 'ZZROW_ID' OF STRUCTURE <line> TO FIELD-SYMBOL(<row_id>).
|
||||
|
||||
IF <row_id> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
IF <row_id> = row_clicked.
|
||||
ms_result-row->* = CORRESPONDING #( <line> ).
|
||||
EXIT.
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ms_result-check_confirmed = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = ms_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_output_table.
|
||||
|
||||
DATA(t_comp) = get_comp( ).
|
||||
TRY.
|
||||
|
||||
DATA(new_struct_desc) = cl_abap_structdescr=>create( t_comp ).
|
||||
|
||||
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA mr_out TYPE HANDLE new_table_desc.
|
||||
CREATE DATA mr_out_tmp TYPE HANDLE new_table_desc.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
mr_out->* = CORRESPONDING #( mr_tab->* ).
|
||||
|
||||
set_row_id( ).
|
||||
|
||||
mr_out_tmp->* = mr_out->*.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_row_id.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <line> TYPE any.
|
||||
|
||||
ASSIGN mr_out->* TO <tab>.
|
||||
|
||||
LOOP AT <tab> ASSIGNING <line>.
|
||||
|
||||
ASSIGN COMPONENT 'ZZROW_ID' OF STRUCTURE <line> TO FIELD-SYMBOL(<row>).
|
||||
IF <row> IS ASSIGNED.
|
||||
<row> = sy-tabix.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_comp.
|
||||
DATA index TYPE int4.
|
||||
|
||||
* DATA selkz TYPE abap_bool.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(comp) = z2ui5_cl_util_api=>rtti_get_t_attri_by_any( mr_tab ).
|
||||
|
||||
IF xsdbool( line_exists( comp[ name = 'ZZROW_ID' ] ) ) = abap_false.
|
||||
APPEND LINES OF VALUE cl_abap_structdescr=>component_table(
|
||||
( name = 'ZZROW_ID'
|
||||
type = CAST #( cl_abap_datadescr=>describe_by_data( index ) ) ) ) TO result.
|
||||
ENDIF.
|
||||
* IF xsdbool( line_exists( comp[ name = 'SELKZ' ] ) ) = abap_false.
|
||||
* APPEND LINES OF VALUE cl_abap_structdescr=>component_table(
|
||||
* ( name = 'SELKZ'
|
||||
* type = CAST #( cl_abap_datadescr=>describe_by_data( selkz ) ) ) ) TO result.
|
||||
*
|
||||
* ENDIF.
|
||||
|
||||
APPEND LINES OF comp TO result.
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event_search.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <tab_tmp> TYPE STANDARD TABLE.
|
||||
|
||||
ASSIGN mr_out->* TO <tab>.
|
||||
ASSIGN mr_out_tmp->* TO <tab_tmp>.
|
||||
|
||||
IF <tab_tmp> IS NOT INITIAL.
|
||||
<tab> = <tab_tmp>.
|
||||
ENDIF.
|
||||
|
||||
IF mv_search_value IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<f_row>).
|
||||
DATA(lv_row) = ``.
|
||||
DATA(lv_index) = 1.
|
||||
DO.
|
||||
ASSIGN COMPONENT lv_index OF STRUCTURE <f_row> TO FIELD-SYMBOL(<field>).
|
||||
IF sy-subrc <> 0.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
lv_row = lv_row && <field>.
|
||||
lv_index = lv_index + 1.
|
||||
ENDDO.
|
||||
|
||||
IF lv_row NS mv_search_value.
|
||||
DELETE <tab>.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
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_POP_TO_SEL_W_L</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Test</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user