mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
Downport changes
This commit is contained in:
parent
f23c1e6bbb
commit
1dbed16f7f
340
abaplint.jsonc
340
abaplint.jsonc
|
@ -1,359 +1,31 @@
|
|||
{
|
||||
"global": {
|
||||
"files": "/src/**/*.*",
|
||||
"noIssues": [ "/src/00" ]
|
||||
"files": "/src/**/*.*"
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"url": "https://github.com/abapedia/steampunk-2305-api-intersect-702",
|
||||
"url": "https://github.com/open-abap/open-abap-core",
|
||||
"folder": "/deps",
|
||||
"files": "/src/**/*.*"
|
||||
}
|
||||
],
|
||||
"syntax": {
|
||||
"version": "v750",
|
||||
"version": "v702",
|
||||
"errorNamespace": "."
|
||||
},
|
||||
"rules": {
|
||||
"7bit_ascii": true,
|
||||
"abapdoc": false,
|
||||
"sql_value_conversion" : true,
|
||||
"select_single_full_key" : true,
|
||||
"strict_sql" : true,
|
||||
"easy_to_find_messages" : true,
|
||||
"fully_type_itabs" : true,
|
||||
"align_parameters": false,
|
||||
"smim_consistency": true,
|
||||
"allowed_object_naming": true,
|
||||
"allowed_object_types": {
|
||||
"allowed": [
|
||||
"CLAS",
|
||||
"DEVC",
|
||||
"INTF",
|
||||
"TABL",
|
||||
]
|
||||
},
|
||||
"ambiguous_statement": true,
|
||||
"avoid_use": {
|
||||
"severity": "Error",
|
||||
"skipQuickFix": false,
|
||||
"define": true,
|
||||
"statics": true,
|
||||
"defaultKey": true,
|
||||
"break": true,
|
||||
"testSeams": true,
|
||||
"describeLines": true,
|
||||
"exportToMemory": true,
|
||||
"exportToDatabase": true
|
||||
},
|
||||
"downport": true,
|
||||
"begin_end_names": true,
|
||||
"align_pseudo_comments" : true,
|
||||
"dynpro_checks" : true,
|
||||
"empty_event" : true,
|
||||
"invalid_table_index" : true,
|
||||
"macro_naming" : true,
|
||||
"prefer_pragmas" : true,
|
||||
"add_test_attributes" : true,
|
||||
"implicit_start_of_selection" : true,
|
||||
"reduce_procedural_code" : true,
|
||||
"tables_declared_locally" : true,
|
||||
"unused_macros" : true,
|
||||
"align_type_expressions" : true,
|
||||
"no_prefixes" : false,
|
||||
"begin_single_include": true,
|
||||
"call_transaction_authority_check": true,
|
||||
"cds_comment_style": true,
|
||||
"cds_legacy_view": true,
|
||||
"cds_parser_error": true,
|
||||
"chain_mainly_declarations": true,
|
||||
"change_if_to_case": true,
|
||||
"check_abstract": true,
|
||||
"check_comments": true,
|
||||
"check_ddic": true,
|
||||
"check_include": true,
|
||||
"check_subrc": true,
|
||||
"check_syntax": true,
|
||||
"check_text_elements": true,
|
||||
"check_transformation_exists": true,
|
||||
"class_attribute_names": false,
|
||||
"classic_exceptions_overlap": true,
|
||||
"cloud_types": true,
|
||||
"colon_missing_space": true,
|
||||
"commented_code": false,
|
||||
"constant_classes": true,
|
||||
"constructor_visibility_public": true,
|
||||
"contains_tab": false,
|
||||
"cyclic_oo": false,
|
||||
"cyclomatic_complexity": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"max": 8
|
||||
},
|
||||
"dangerous_statement": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"execSQL": true,
|
||||
"kernelCall": true,
|
||||
"systemCall": true,
|
||||
"insertReport": true,
|
||||
"generateDynpro": true,
|
||||
"generateReport": true,
|
||||
"generateSubroutine": true,
|
||||
"deleteReport": true,
|
||||
"deleteTextpool": true,
|
||||
"deleteDynpro": true,
|
||||
"exportDynpro": true,
|
||||
"dynamicSQL": true
|
||||
},
|
||||
"db_operation_in_loop": true,
|
||||
"definitions_top": false,
|
||||
"description_empty": true,
|
||||
"double_space": false,
|
||||
"downport": true,
|
||||
"empty_line_in_statement": true,
|
||||
"empty_statement": true,
|
||||
"empty_structure": {
|
||||
"loop": false,
|
||||
"if": true,
|
||||
"while": true,
|
||||
"case": true,
|
||||
"select": true,
|
||||
"do": true,
|
||||
"at": true,
|
||||
"try": true,
|
||||
"when": false
|
||||
},
|
||||
"exit_or_check": true,
|
||||
"expand_macros": true,
|
||||
"exporting": true,
|
||||
"forbidden_identifier": true,
|
||||
"forbidden_pseudo_and_pragma": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"pseudo": [],
|
||||
"pragmas": [],
|
||||
"ignoreGlobalClassDefinition": false,
|
||||
"ignoreGlobalInterface": false
|
||||
},
|
||||
"form_tables_obsolete": true,
|
||||
"fully_type_constants": {
|
||||
"checkData": true
|
||||
},
|
||||
"function_module_recommendations": true,
|
||||
"functional_writing": {
|
||||
"ignoreExceptions": true
|
||||
},
|
||||
"global_class": true,
|
||||
"identical_conditions": true,
|
||||
"identical_contents": true,
|
||||
"identical_descriptions": true,
|
||||
"identical_form_names": true,
|
||||
"if_in_if": true,
|
||||
"definitions_top": true,
|
||||
"implement_methods": true,
|
||||
"in_statement_indentation": false,
|
||||
"indentation": true,
|
||||
"inline_data_old_versions": true,
|
||||
"intf_referencing_clas": false,
|
||||
"keep_single_parameter_on_one_line": false,
|
||||
"keyword_case": false,
|
||||
"line_break_multiple_parameters": false,
|
||||
"line_break_style": true,
|
||||
"line_length": false,
|
||||
"line_only_punc": false,
|
||||
"local_class_naming": false,
|
||||
"local_testclass_consistency": true,
|
||||
"local_variable_names": false,
|
||||
"main_file_contents": true,
|
||||
"many_parentheses": true,
|
||||
"max_one_method_parameter_per_line": true,
|
||||
"max_one_statement": true,
|
||||
"message_exists": true,
|
||||
"method_implemented_twice": true,
|
||||
"method_length": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"statements": 100,
|
||||
"errorWhenEmpty": false,
|
||||
"ignoreTestClasses": true,
|
||||
"checkForms": true
|
||||
},
|
||||
"method_overwrites_builtin": {
|
||||
"exclude": [ "z2ui5_cl_xml_view" ],
|
||||
"severity": "Error"
|
||||
},
|
||||
"method_parameter_names": false,
|
||||
"mix_returning": false,
|
||||
"modify_only_own_db_tables": {
|
||||
"reportDynamic": true,
|
||||
"ownTables": "^[yz]"
|
||||
},
|
||||
"msag_consistency": true,
|
||||
"names_no_dash": true,
|
||||
"nesting": {
|
||||
"depth": 5
|
||||
},
|
||||
"newline_between_methods": true,
|
||||
"no_aliases": true,
|
||||
"no_chained_assignment": true,
|
||||
"no_external_form_calls": true,
|
||||
"no_inline_in_optional_branches": false,
|
||||
"no_public_attributes": false,
|
||||
"no_yoda_conditions": true,
|
||||
"nrob_consistency": true,
|
||||
"object_naming": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"patternKind": "required",
|
||||
"ignoreNames": [],
|
||||
"ignorePatterns": [],
|
||||
"clas": "^Z2UI5_C(L|X)",
|
||||
"intf": "^Z2UI5_IF",
|
||||
"prog": "^Z",
|
||||
"fugr": "^Z",
|
||||
"tabl": "^Z",
|
||||
"ttyp": "^Z",
|
||||
"dtel": "^Z",
|
||||
"doma": "^Z",
|
||||
"msag": "^Z",
|
||||
"tran": "^Z",
|
||||
"enqu": "^EZ",
|
||||
"auth": "^Z",
|
||||
"pinf": "^Z",
|
||||
"idoc": "^Z",
|
||||
"xslt": "^Z",
|
||||
"ssfo": "^Z",
|
||||
"ssst": "^Z",
|
||||
"shlp": "^Z"
|
||||
},
|
||||
"obsolete_statement": true,
|
||||
"omit_parameter_name": true,
|
||||
"omit_preceding_zeros": true,
|
||||
"omit_receiving": true,
|
||||
"parser_702_chaining": true,
|
||||
"parser_error": true,
|
||||
"parser_missing_space": true,
|
||||
"pragma_style": true,
|
||||
"prefer_corresponding": true,
|
||||
"prefer_inline": true,
|
||||
"prefer_is_not": true,
|
||||
"prefer_raise_exception_new": true,
|
||||
"prefer_returning_to_exporting": true,
|
||||
"prefer_xsdbool": true,
|
||||
"preferred_compare_operator": true,
|
||||
"prefix_is_current_class": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"reduce_string_templates": true,
|
||||
"release_idoc": true,
|
||||
"remove_descriptions": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
"ignoreExceptions": false,
|
||||
"ignoreWorkflow": false
|
||||
},
|
||||
"rfc_error_handling": true,
|
||||
"select_add_order_by": false,
|
||||
"select_performance": true,
|
||||
"selection_screen_naming": true,
|
||||
"sequential_blank": {
|
||||
"severity": "Warning"
|
||||
},
|
||||
"short_case": true,
|
||||
"sicf_consistency": true,
|
||||
"slow_parameter_passing": true,
|
||||
"space_before_colon": true,
|
||||
"space_before_dot": true,
|
||||
"sql_escape_host_variables": true,
|
||||
"start_at_tab": false,
|
||||
"static_call_via_instance": {
|
||||
"allowInTestclassIncludes": false
|
||||
},
|
||||
"superclass_final": true,
|
||||
"superfluous_value": true,
|
||||
"sy_modification": true,
|
||||
"tabl_enhancement_category": true,
|
||||
"try_without_catch": true,
|
||||
"type_form_parameters": true,
|
||||
"types_naming": false,
|
||||
"uncaught_exception": true,
|
||||
"unknown_types": true,
|
||||
"unnecessary_chaining": true,
|
||||
"unnecessary_pragma": true,
|
||||
"unnecessary_return": true,
|
||||
"unreachable_code": true,
|
||||
"unsecure_fae": true,
|
||||
"unused_ddic": true,
|
||||
"unused_methods": true,
|
||||
"unused_types": true,
|
||||
"unused_variables": {
|
||||
"severity": "Error",
|
||||
"skipNames": ["lv_dummy"]
|
||||
},
|
||||
"use_bool_expression": true,
|
||||
"use_class_based_exceptions": true,
|
||||
"use_line_exists": true,
|
||||
"use_new": true,
|
||||
"when_others_last": true,
|
||||
"whitespace_end": false,
|
||||
"xml_consistency": true,
|
||||
"forbidden_void_type": {
|
||||
"check": [
|
||||
"^boole_d$",
|
||||
"^char10$",
|
||||
"^char12$",
|
||||
"^char2$",
|
||||
"^char20$",
|
||||
"^char30$",
|
||||
"^char4$",
|
||||
"^char50$",
|
||||
"^char70$",
|
||||
"^cl_abap_syst",
|
||||
"^cl_aff_",
|
||||
"^cl_aucv_test_runner_abstract$",
|
||||
"^cl_aucv_test_runner_standard$",
|
||||
"^cl_aunit_assert$",
|
||||
"^cl_axt_dbtable$",
|
||||
"^cl_blue_wb_utility$",
|
||||
"^cl_oo_source$",
|
||||
"^/ui2/cl_$",
|
||||
"^/ui2/cl_",
|
||||
"^cl_saunit_internal_result$",
|
||||
"^cl_srvd_wb_object_data$",
|
||||
"^cl_wb_object_operator_factory$",
|
||||
"^cl_wer_const$",
|
||||
"^cl_xco_",
|
||||
"^cx_aff_",
|
||||
"^cx_wb_object_operation_error$",
|
||||
"^cx_xco_",
|
||||
"^flag$",
|
||||
"^i18_a_langiso2$",
|
||||
"^if_adt_lock_handle$",
|
||||
"^if_aff_",
|
||||
"^if_satc_ci_variant_access$",
|
||||
"^if_saunit_internal_result$",
|
||||
"^if_saunit_internal_result_type$",
|
||||
"^if_srvd_types$",
|
||||
"^if_wb_adt_plugin_resource_co$",
|
||||
"^if_wb_object_data_selection_co$",
|
||||
"^if_wb_object_operator$",
|
||||
"^if_xco_",
|
||||
"^int4$",
|
||||
"^numc2$",
|
||||
"^sabp_t_tadir_keys$",
|
||||
"^sap_bool$",
|
||||
"^srcsystem$",
|
||||
"^stringtab$",
|
||||
"^sychar01$",
|
||||
"^sychar10$",
|
||||
"^sychar70$",
|
||||
"^sydatum$",
|
||||
"^sylangu$",
|
||||
"^syst_title$",
|
||||
"^syuzeit$",
|
||||
"^xubname$",
|
||||
"^feld$",
|
||||
"^abap_boolean$",
|
||||
]
|
||||
},
|
||||
"xml_consistency": true
|
||||
}
|
||||
}
|
|
@ -315,6 +315,7 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
DATA lv_normalized_path TYPE string.
|
||||
DATA lr_node TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
FIELD-SYMBOLS <item> LIKE LINE OF mt_json_tree.
|
||||
DATA lv_tmp TYPE string.
|
||||
|
||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||
lr_node = get_item( iv_path ).
|
||||
|
@ -333,7 +334,7 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
WHEN z2ui5_if_ajson_types=>node_type-null.
|
||||
APPEND '' TO rt_string_table.
|
||||
WHEN z2ui5_if_ajson_types=>node_type-boolean.
|
||||
DATA lv_tmp TYPE string.
|
||||
|
||||
IF <item>-value = 'true'.
|
||||
lv_tmp = abap_true.
|
||||
ELSE.
|
||||
|
@ -363,10 +364,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~delete.
|
||||
DATA ls_split_path TYPE z2ui5_if_ajson_types=>ty_path_name.
|
||||
|
||||
read_only_watchdog( ).
|
||||
|
||||
DATA ls_split_path TYPE z2ui5_if_ajson_types=>ty_path_name.
|
||||
|
||||
ls_split_path = lcl_utils=>split_path( iv_path ).
|
||||
|
||||
delete_subtree(
|
||||
|
@ -553,6 +555,9 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
DATA lr_parent TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
DATA lr_new_node TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
DATA lt_new_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA ls_new_path TYPE z2ui5_if_ajson_types=>ty_path_name.
|
||||
DATA lv_new_index TYPE i.
|
||||
|
||||
read_only_watchdog( ).
|
||||
|
||||
|
@ -566,9 +571,9 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
z2ui5_cx_ajson_error=>raise( |Path [{ iv_path }] is not array| ).
|
||||
ENDIF.
|
||||
|
||||
DATA lt_new_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA ls_new_path TYPE z2ui5_if_ajson_types=>ty_path_name.
|
||||
DATA lv_new_index TYPE i.
|
||||
|
||||
|
||||
|
||||
|
||||
lv_new_index = lr_parent->children + 1.
|
||||
ls_new_path-path = lcl_utils=>normalize_path( iv_path ).
|
||||
|
@ -597,6 +602,8 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
DATA lr_parent TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
DATA ls_deleted_node TYPE z2ui5_if_ajson_types=>ty_node.
|
||||
DATA lv_item_order TYPE z2ui5_if_ajson_types=>ty_node-order.
|
||||
DATA lt_new_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_array_index TYPE i.
|
||||
|
||||
read_only_watchdog( ).
|
||||
|
||||
|
@ -643,8 +650,8 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
lv_item_order = ls_deleted_node-order.
|
||||
|
||||
" convert to json
|
||||
DATA lt_new_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_array_index TYPE i.
|
||||
|
||||
|
||||
|
||||
IF lr_parent->type = z2ui5_if_ajson_types=>node_type-array.
|
||||
lv_array_index = lcl_utils=>validate_array_index(
|
||||
|
@ -756,10 +763,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~set_boolean.
|
||||
DATA lv_bool TYPE abap_bool.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
DATA lv_bool TYPE abap_bool.
|
||||
|
||||
lv_bool = boolc( iv_val IS NOT INITIAL ).
|
||||
z2ui5_if_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
|
@ -770,10 +778,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~set_date.
|
||||
DATA lv_val TYPE string.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
DATA lv_val TYPE string.
|
||||
|
||||
lv_val = lcl_abap_to_json=>format_date( iv_val ).
|
||||
|
||||
z2ui5_if_ajson~set(
|
||||
|
@ -797,10 +806,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~set_null.
|
||||
DATA lv_null_ref TYPE REF TO data.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
DATA lv_null_ref TYPE REF TO data.
|
||||
|
||||
z2ui5_if_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
|
@ -810,10 +820,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~set_string.
|
||||
DATA lv_val TYPE string.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
DATA lv_val TYPE string.
|
||||
|
||||
lv_val = iv_val.
|
||||
z2ui5_if_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
|
@ -824,10 +835,11 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD z2ui5_if_ajson~set_timestamp.
|
||||
DATA lv_timestamp_iso TYPE string.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
DATA lv_timestamp_iso TYPE string.
|
||||
|
||||
lv_timestamp_iso = lcl_abap_to_json=>format_timestamp( iv_val ).
|
||||
|
||||
z2ui5_if_ajson~set(
|
||||
|
@ -894,6 +906,7 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
DATA ls_deleted_node TYPE z2ui5_if_ajson_types=>ty_node.
|
||||
DATA ls_new_node LIKE LINE OF mt_json_tree.
|
||||
DATA ls_split_path TYPE z2ui5_if_ajson_types=>ty_path_name.
|
||||
DATA lr_parent TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
|
||||
read_only_watchdog( ).
|
||||
|
||||
|
@ -916,7 +929,7 @@ CLASS z2ui5_cl_ajson IMPLEMENTATION.
|
|||
|
||||
IF lr_node IS INITIAL. " Or node was cleared
|
||||
|
||||
DATA lr_parent TYPE REF TO z2ui5_if_ajson_types=>ty_node.
|
||||
|
||||
lr_parent = prove_path_exists( ls_split_path-path ).
|
||||
ASSERT lr_parent IS NOT INITIAL.
|
||||
|
||||
|
|
|
@ -420,6 +420,11 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
|||
DATA lr_stack_top LIKE LINE OF mt_stack.
|
||||
DATA lo_node TYPE REF TO if_sxml_node.
|
||||
FIELD-SYMBOLS <item> LIKE LINE OF rt_json_tree.
|
||||
DATA lt_attributes TYPE if_sxml_attribute=>attributes.
|
||||
DATA lo_attr LIKE LINE OF lt_attributes.
|
||||
DATA lo_open TYPE REF TO if_sxml_open_element.
|
||||
DATA lo_close TYPE REF TO if_sxml_close_element.
|
||||
DATA lo_value TYPE REF TO if_sxml_value_node.
|
||||
|
||||
CLEAR mt_stack.
|
||||
CLEAR mv_stack_path.
|
||||
|
@ -439,9 +444,9 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
|||
|
||||
CASE lo_node->type.
|
||||
WHEN if_sxml_node=>co_nt_element_open.
|
||||
DATA lt_attributes TYPE if_sxml_attribute=>attributes.
|
||||
DATA lo_attr LIKE LINE OF lt_attributes.
|
||||
DATA lo_open TYPE REF TO if_sxml_open_element.
|
||||
|
||||
|
||||
|
||||
lo_open ?= lo_node.
|
||||
|
||||
APPEND INITIAL LINE TO rt_json_tree ASSIGNING <item>.
|
||||
|
@ -479,7 +484,7 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
|||
mv_stack_path = mv_stack_path && <item>-name && '/'.
|
||||
|
||||
WHEN if_sxml_node=>co_nt_element_close.
|
||||
DATA lo_close TYPE REF TO if_sxml_close_element.
|
||||
|
||||
lo_close ?= lo_node.
|
||||
|
||||
READ TABLE mt_stack INDEX 1 INTO lr_stack_top.
|
||||
|
@ -492,7 +497,7 @@ CLASS lcl_json_parser IMPLEMENTATION.
|
|||
mv_stack_path = substring( val = mv_stack_path
|
||||
len = find( val = mv_stack_path sub = '/' occ = -2 ) + 1 ).
|
||||
WHEN if_sxml_node=>co_nt_value.
|
||||
DATA lo_value TYPE REF TO if_sxml_value_node.
|
||||
|
||||
lo_value ?= lo_node.
|
||||
|
||||
<item>-value = lo_value->get_value( ).
|
||||
|
@ -612,6 +617,8 @@ CLASS lcl_json_serializer IMPLEMENTATION.
|
|||
|
||||
DATA lv_item TYPE string.
|
||||
DATA lv_indent_prefix TYPE string.
|
||||
DATA lv_children_path TYPE string.
|
||||
DATA lv_tail TYPE string.
|
||||
|
||||
IF mv_indent_step > 0.
|
||||
lv_indent_prefix = repeat( val = ` `
|
||||
|
@ -656,8 +663,8 @@ CLASS lcl_json_serializer IMPLEMENTATION.
|
|||
" finish complex item
|
||||
|
||||
IF is_node-type = z2ui5_if_ajson_types=>node_type-array OR is_node-type = z2ui5_if_ajson_types=>node_type-object.
|
||||
DATA lv_children_path TYPE string.
|
||||
DATA lv_tail TYPE string.
|
||||
|
||||
|
||||
|
||||
lv_children_path = is_node-path && is_node-name && '/'. " for root: path = '' and name = '', so result is '/'
|
||||
|
||||
|
@ -958,6 +965,7 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <parent_anytab> TYPE ANY TABLE.
|
||||
FIELD-SYMBOLS <parent_struc> TYPE any.
|
||||
FIELD-SYMBOLS <tab_item> TYPE any.
|
||||
FIELD-SYMBOLS <field> TYPE any.
|
||||
|
||||
" Assign container
|
||||
CASE is_parent_type-type_kind.
|
||||
|
@ -1022,7 +1030,7 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
WHEN lif_kind=>struct_flat OR lif_kind=>struct_deep.
|
||||
FIELD-SYMBOLS <field> TYPE any.
|
||||
|
||||
ASSIGN COMPONENT ls_node_type-target_field_name OF STRUCTURE <parent_struc> TO <field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
GET REFERENCE OF <field> INTO lr_target_field.
|
||||
|
|
|
@ -175,10 +175,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_string.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"string": "abc"}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -186,10 +187,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_number.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |number |num |123 | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"number": 123}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -197,10 +199,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_float.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |float |num |123.45 | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
CREATE OBJECT mo_cut.
|
||||
lt_act = mo_cut->parse( '{"float": 123.45}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -209,10 +212,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_boolean.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |boolean |bool |true | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"boolean": true}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -220,10 +224,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_false.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |false |bool |false | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"false": false}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -231,10 +236,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_null.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |null |null | | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"null": null}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -242,10 +248,11 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_date.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |date |str |2020-03-15 | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_act = mo_cut->parse( '{"date": "2020-03-15"}' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
|
@ -253,11 +260,13 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_input_xstring.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_xstr TYPE xstring.
|
||||
|
||||
|
||||
|
||||
lv_xstr = '7B22737472696E67223A2022616263227D0A'.
|
||||
lt_act = mo_cut->parse( lv_xstr ).
|
||||
|
@ -267,11 +276,13 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_input_string.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_str TYPE string.
|
||||
mo_nodes->add( ' | |object | | |1' ).
|
||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lv_str TYPE string.
|
||||
|
||||
|
||||
|
||||
lv_str = `{"string": "abc"}`.
|
||||
lt_act = mo_cut->parse( lv_str ).
|
||||
|
@ -281,12 +292,14 @@ CLASS ltcl_parser_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD parse_input_string_table.
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lt_json TYPE string_table.
|
||||
mo_nodes->add( ' | |object | | |2' ).
|
||||
mo_nodes->add( '/ |string |str |abc | |0' ).
|
||||
mo_nodes->add( '/ |number |num |123 | |0' ).
|
||||
|
||||
DATA lt_act TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
DATA lt_json TYPE string_table.
|
||||
|
||||
|
||||
|
||||
INSERT `{` INTO TABLE lt_json.
|
||||
INSERT `"string": "abc",` INTO TABLE lt_json.
|
||||
|
@ -1371,6 +1384,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lt_act TYPE string_table.
|
||||
DATA lt_exp TYPE string_table.
|
||||
DATA lx TYPE REF TO z2ui5_cx_ajson_error.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |array | | |6' ).
|
||||
|
@ -1397,7 +1411,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
exp = lt_exp ).
|
||||
|
||||
" negative
|
||||
DATA lx TYPE REF TO z2ui5_cx_ajson_error.
|
||||
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |object | | |1' ).
|
||||
|
@ -1640,6 +1654,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
DATA lo_cut TYPE REF TO lcl_json_to_abap.
|
||||
DATA lv_mock TYPE t.
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lv_mock_init TYPE t.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |str |11:11:11| ' ).
|
||||
|
@ -1655,7 +1670,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
act = lv_mock
|
||||
exp = '111111' ).
|
||||
|
||||
DATA lv_mock_init TYPE t.
|
||||
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |str || ' ).
|
||||
|
@ -1823,6 +1838,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
DATA ls_mock TYPE ty_complex.
|
||||
DATA ls_exp TYPE ty_complex.
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA ls_elem LIKE LINE OF ls_exp-tab.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |object | | ' ).
|
||||
|
@ -1839,7 +1855,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
CHANGING
|
||||
c_container = ls_mock ).
|
||||
|
||||
DATA ls_elem LIKE LINE OF ls_exp-tab.
|
||||
|
||||
ls_elem-a = 'One'.
|
||||
APPEND ls_elem TO ls_exp-tab.
|
||||
ls_elem-a = 'Two'.
|
||||
|
@ -1915,6 +1931,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
DATA lt_exp TYPE tty_struc_hashed.
|
||||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA ls_elem LIKE LINE OF lt_exp.
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |array | | ' ).
|
||||
lo_nodes->add( '/ |1 |object | |1' ).
|
||||
|
@ -1931,7 +1948,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
CHANGING
|
||||
c_container = lt_mock ).
|
||||
|
||||
DATA ls_elem LIKE LINE OF lt_exp.
|
||||
|
||||
ls_elem-a = 'One'.
|
||||
ls_elem-b = 1.
|
||||
INSERT ls_elem INTO TABLE lt_exp.
|
||||
|
@ -1952,6 +1969,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
DATA lt_exp TYPE tty_struc_sorted.
|
||||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA ls_elem LIKE LINE OF lt_exp.
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |array | | ' ).
|
||||
lo_nodes->add( '/ |1 |object | |1' ).
|
||||
|
@ -1968,7 +1986,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
CHANGING
|
||||
c_container = lt_mock ).
|
||||
|
||||
DATA ls_elem LIKE LINE OF lt_exp.
|
||||
|
||||
ls_elem-a = 'One'.
|
||||
ls_elem-b = 1.
|
||||
INSERT ls_elem INTO TABLE lt_exp.
|
||||
|
@ -1987,10 +2005,15 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
DATA lo_cut TYPE REF TO lcl_json_to_abap.
|
||||
DATA lx TYPE REF TO z2ui5_cx_ajson_error.
|
||||
DATA ls_mock TYPE ty_complex.
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lt_str TYPE string_table.
|
||||
DATA lr_obj TYPE REF TO object.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
DATA lt_hashed TYPE HASHED TABLE OF string WITH UNIQUE KEY table_line.
|
||||
|
||||
CREATE OBJECT lo_cut.
|
||||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
|
||||
|
||||
TRY.
|
||||
CREATE OBJECT lo_nodes.
|
||||
|
@ -2078,7 +2101,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
DATA lt_str TYPE string_table.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |array | | ' ).
|
||||
lo_nodes->add( '/ |a |str |hello |1' ).
|
||||
|
@ -2096,7 +2119,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
DATA lr_obj TYPE REF TO object.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |str |hello | ' ).
|
||||
|
||||
|
@ -2113,7 +2136,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |str |hello | ' ).
|
||||
|
||||
|
@ -2130,7 +2153,7 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
DATA lt_hashed TYPE HASHED TABLE OF string WITH UNIQUE KEY table_line.
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |array | | ' ).
|
||||
lo_nodes->add( '/ |1 |str |One |1' ).
|
||||
|
@ -2933,6 +2956,9 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
DATA lo_cut TYPE REF TO z2ui5_cl_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO z2ui5_if_ajson.
|
||||
DATA BEGIN OF ls_dummy.
|
||||
DATA x TYPE string VALUE 'world'.
|
||||
DATA END OF ls_dummy.
|
||||
|
||||
lo_cut = z2ui5_cl_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -2970,10 +2996,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
lo_nodes_exp->add( '/a/ |2 |object | |2|1' ).
|
||||
lo_nodes_exp->add( '/a/2/ |x |str |world| |0' ).
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_dummy,
|
||||
x TYPE string VALUE 'world',
|
||||
END OF ls_dummy.
|
||||
|
||||
|
||||
li_writer->push(
|
||||
iv_path = '/a'
|
||||
|
@ -3028,6 +3051,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO z2ui5_cl_ajson.
|
||||
DATA li_writer TYPE REF TO z2ui5_if_ajson.
|
||||
DATA lx TYPE REF TO z2ui5_cx_ajson_error.
|
||||
|
||||
lo_cut = z2ui5_cl_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -3038,7 +3062,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
iv_val = 123 ).
|
||||
|
||||
" touch another node
|
||||
DATA lx TYPE REF TO z2ui5_cx_ajson_error.
|
||||
|
||||
TRY.
|
||||
li_writer->touch_array( iv_path = '/a/1' ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -3860,6 +3884,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
DATA lv_exp TYPE string.
|
||||
|
||||
DATA lv_src TYPE string.
|
||||
DATA li_reader TYPE REF TO z2ui5_if_ajson.
|
||||
lv_src = '['.
|
||||
DO 10 TIMES.
|
||||
IF sy-index <> 1.
|
||||
|
@ -3871,7 +3896,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
ENDDO.
|
||||
lv_src = lv_src && ']'.
|
||||
|
||||
DATA li_reader TYPE REF TO z2ui5_if_ajson.
|
||||
|
||||
li_reader = z2ui5_cl_ajson=>parse( lv_src ).
|
||||
li_reader->to_abap( IMPORTING ev_container = lt_act ).
|
||||
|
||||
|
@ -3888,6 +3913,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
DATA ls_exp TYPE ty_loc.
|
||||
|
||||
DATA lv_src TYPE string.
|
||||
DATA li_reader TYPE REF TO z2ui5_if_ajson.
|
||||
lv_src = '['.
|
||||
DO 10 TIMES.
|
||||
IF sy-index <> 1.
|
||||
|
@ -3899,7 +3925,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
ENDDO.
|
||||
lv_src = lv_src && ']'.
|
||||
|
||||
DATA li_reader TYPE REF TO z2ui5_if_ajson.
|
||||
|
||||
li_reader = z2ui5_cl_ajson=>parse( lv_src ).
|
||||
li_reader->to_abap( IMPORTING ev_container = lt_act ).
|
||||
|
||||
|
@ -3913,6 +3939,9 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
|
||||
DATA lv_source TYPE string.
|
||||
DATA li_reader TYPE REF TO z2ui5_if_ajson.
|
||||
DATA ls_act TYPE ty_target.
|
||||
DATA ls_exp TYPE ty_target.
|
||||
FIELD-SYMBOLS <i> LIKE LINE OF ls_exp-issues.
|
||||
|
||||
lv_source = ltcl_parser_test=>sample_json( ).
|
||||
li_reader = z2ui5_cl_ajson=>parse( lv_source ).
|
||||
|
@ -3921,9 +3950,9 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
act = li_reader->get( '/string' )
|
||||
exp = 'abc' ).
|
||||
|
||||
DATA ls_act TYPE ty_target.
|
||||
DATA ls_exp TYPE ty_target.
|
||||
FIELD-SYMBOLS <i> LIKE LINE OF ls_exp-issues.
|
||||
|
||||
|
||||
|
||||
|
||||
ls_exp-string = 'abc'.
|
||||
ls_exp-number = 123.
|
||||
|
@ -4235,6 +4264,7 @@ CLASS ltcl_abap_to_json IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_src TYPE REF TO z2ui5_cl_ajson.
|
||||
DATA lt_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
lo_src = z2ui5_cl_ajson=>create_empty( ).
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
|
@ -4244,7 +4274,7 @@ CLASS ltcl_abap_to_json IMPLEMENTATION.
|
|||
lo_nodes->add( '/a/b/ |c |object | ||0' ).
|
||||
lo_src->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
DATA lt_nodes TYPE z2ui5_if_ajson_types=>ty_nodes_tt.
|
||||
|
||||
lt_nodes = lcl_abap_to_json=>convert( iv_data = lo_src ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -4538,6 +4568,7 @@ CLASS ltcl_abap_to_json IMPLEMENTATION.
|
|||
|
||||
DATA lt_tab TYPE TABLE OF ty_struc.
|
||||
FIELD-SYMBOLS <s> LIKE LINE OF lt_tab.
|
||||
DATA lt_strtab TYPE string_table.
|
||||
|
||||
APPEND INITIAL LINE TO lt_tab ASSIGNING <s>.
|
||||
<s>-a = 'abc'.
|
||||
|
@ -4565,7 +4596,7 @@ CLASS ltcl_abap_to_json IMPLEMENTATION.
|
|||
act = lt_nodes
|
||||
exp = lo_nodes_exp->mt_nodes ).
|
||||
|
||||
DATA lt_strtab TYPE string_table.
|
||||
|
||||
APPEND 'abc' TO lt_strtab.
|
||||
APPEND 'bcd' TO lt_strtab.
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -20,13 +20,14 @@ CLASS ltcl_test_app DEFINITION FOR TESTING.
|
|||
|
||||
CLASS-DATA sv_var TYPE string.
|
||||
CLASS-DATA ss_tab TYPE ty_row.
|
||||
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH EMPTY KEY.
|
||||
CLASS-DATA st_tab TYPE STANDARD TABLE OF ty_row WITH DEFAULT 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.
|
||||
TYPES temp1_f9908b1ee3 TYPE STANDARD TABLE OF ty_row WITH DEFAULT KEY.
|
||||
DATA mt_tab TYPE temp1_f9908b1ee3 ##NEEDED.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
|
@ -36,10 +37,16 @@ ENDCLASS.
|
|||
|
||||
CLASS ltcl_test_app IMPLEMENTATION.
|
||||
METHOD class_constructor.
|
||||
DATA temp57 TYPE ltcl_test_app=>ty_row.
|
||||
DATA temp58 LIKE st_tab.
|
||||
|
||||
sv_var = 1.
|
||||
ss_tab = VALUE #( ).
|
||||
st_tab = VALUE #( ).
|
||||
|
||||
CLEAR temp57.
|
||||
ss_tab = temp57.
|
||||
|
||||
CLEAR temp58.
|
||||
st_tab = temp58.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
@ -124,12 +131,16 @@ ENDCLASS.
|
|||
CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
||||
METHOD test_assign.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_app.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
DATA lv_assign TYPE string.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_app.
|
||||
|
||||
|
||||
lo_app->mv_val = `ABC`.
|
||||
|
||||
DATA(lv_assign) = |LO_APP->MV_VAL|.
|
||||
|
||||
lv_assign = |LO_APP->MV_VAL|.
|
||||
ASSIGN (lv_assign) TO <any>.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
|
@ -140,24 +151,106 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD test_classdescr.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_app( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_app.
|
||||
DATA temp59 TYPE REF TO cl_abap_classdescr.
|
||||
DATA lt_attri LIKE temp59->attributes.
|
||||
DATA lv_test LIKE LINE OF lt_attri.
|
||||
DATA temp11 LIKE LINE OF lt_attri.
|
||||
DATA temp12 LIKE sy-tabix.
|
||||
DATA temp60 LIKE LINE OF lt_attri.
|
||||
DATA temp61 LIKE sy-tabix.
|
||||
DATA temp62 LIKE LINE OF lt_attri.
|
||||
DATA temp63 LIKE sy-tabix.
|
||||
DATA temp64 LIKE LINE OF lt_attri.
|
||||
DATA temp65 LIKE sy-tabix.
|
||||
DATA temp66 LIKE LINE OF lt_attri.
|
||||
DATA temp67 LIKE sy-tabix.
|
||||
DATA temp68 LIKE LINE OF lt_attri.
|
||||
DATA temp69 LIKE sy-tabix.
|
||||
DATA temp70 LIKE LINE OF lt_attri.
|
||||
DATA temp71 LIKE sy-tabix.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_app.
|
||||
|
||||
DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes.
|
||||
|
||||
temp59 ?= cl_abap_objectdescr=>describe_by_object_ref( lo_app ).
|
||||
|
||||
lt_attri = temp59->attributes.
|
||||
|
||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
||||
DATA(lv_test) = lt_attri[ name = `MS_TAB` ].
|
||||
lv_test = lt_attri[ name = `MT_TAB` ].
|
||||
lv_test = lt_attri[ name = `MV_VAL` ].
|
||||
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` ].
|
||||
|
||||
|
||||
|
||||
temp12 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `MS_TAB` INTO temp11.
|
||||
sy-tabix = temp12.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp11.
|
||||
|
||||
|
||||
temp61 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `MT_TAB` INTO temp60.
|
||||
sy-tabix = temp61.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp60.
|
||||
|
||||
|
||||
temp63 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `MV_VAL` INTO temp62.
|
||||
sy-tabix = temp63.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp62.
|
||||
|
||||
|
||||
temp65 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `SS_TAB` INTO temp64.
|
||||
sy-tabix = temp65.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp64.
|
||||
|
||||
|
||||
temp67 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `ST_TAB` INTO temp66.
|
||||
sy-tabix = temp67.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp66.
|
||||
|
||||
|
||||
temp69 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `SV_STATUS` INTO temp68.
|
||||
sy-tabix = temp69.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp68.
|
||||
|
||||
|
||||
temp71 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `SV_VAR` INTO temp70.
|
||||
sy-tabix = temp71.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_test = temp70.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_eledescr_rel_name.
|
||||
|
||||
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( abap_true ) ).
|
||||
DATA temp72 TYPE REF TO cl_abap_elemdescr.
|
||||
DATA lo_ele LIKE temp72.
|
||||
temp72 ?= cl_abap_elemdescr=>describe_by_data( abap_true ).
|
||||
|
||||
lo_ele = temp72.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `ABAP_BOOL`
|
||||
act = lo_ele->get_relative_name( ) ).
|
||||
|
@ -190,7 +283,8 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD test_string_replace.
|
||||
|
||||
DATA(lv_search) = replace( val = `one two three`
|
||||
DATA lv_search TYPE string.
|
||||
lv_search = replace( val = `one two three`
|
||||
sub = `two`
|
||||
with = 'ABC'
|
||||
occ = 0 ) ##NEEDED.
|
||||
|
@ -204,6 +298,7 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_raise_error.
|
||||
DATA lx TYPE REF TO z2ui5_cx_util_error.
|
||||
|
||||
TRY.
|
||||
IF 1 = 1.
|
||||
|
@ -211,7 +306,8 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
ENDIF.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO DATA(lx).
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_bound( lx ).
|
||||
ENDTRY.
|
||||
|
||||
|
@ -219,12 +315,18 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD test_xsdbool.
|
||||
|
||||
DATA(lv_xsdbool) = xsdbool( 1 = 1 ).
|
||||
DATA lv_xsdbool TYPE abap_bool.
|
||||
DATA temp1 TYPE xsdboolean.
|
||||
DATA temp2 TYPE xsdboolean.
|
||||
temp1 = boolc( 1 = 1 ).
|
||||
lv_xsdbool = temp1.
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_false( lv_xsdbool ).
|
||||
ENDIF.
|
||||
|
||||
IF xsdbool( 1 = 1 ) = abap_false.
|
||||
|
||||
temp2 = boolc( 1 = 1 ).
|
||||
IF temp2 = abap_false.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -232,16 +334,22 @@ CLASS ltcl_unit_test_abap_api IMPLEMENTATION.
|
|||
|
||||
METHOD test_xsdbool_nested.
|
||||
|
||||
DATA(lv_xsdbool) = check_input( xsdbool( 1 = 1 ) ).
|
||||
DATA lv_xsdbool TYPE abap_bool.
|
||||
DATA temp3 TYPE xsdboolean.
|
||||
DATA temp4 TYPE xsdboolean.
|
||||
temp3 = boolc( 1 = 1 ).
|
||||
lv_xsdbool = check_input( temp3 ).
|
||||
IF lv_xsdbool = abap_false.
|
||||
cl_abap_unit_assert=>assert_false( lv_xsdbool ).
|
||||
ENDIF.
|
||||
|
||||
IF check_input( abap_false ).
|
||||
IF check_input( abap_false ) IS NOT INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF check_input( xsdbool( 1 = 1 ) ) = abap_false.
|
||||
|
||||
temp4 = boolc( 1 = 1 ).
|
||||
IF check_input( temp4 ) = abap_false.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -258,10 +366,16 @@ ENDCLASS.
|
|||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_boolean_check.
|
||||
|
||||
DATA(lv_bool) = xsdbool( 1 = 1 ).
|
||||
DATA lv_bool TYPE abap_bool.
|
||||
DATA temp5 TYPE xsdboolean.
|
||||
DATA temp6 TYPE xsdboolean.
|
||||
temp5 = boolc( 1 = 1 ).
|
||||
lv_bool = temp5.
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
|
||||
|
||||
lv_bool = xsdbool( 1 = 2 ).
|
||||
|
||||
temp6 = boolc( 1 = 2 ).
|
||||
lv_bool = temp6.
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( lv_bool ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>boolean_check_by_data( abap_true ) ).
|
||||
|
@ -272,26 +386,37 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_sql_get_by_string.
|
||||
|
||||
DATA(lv_test) = ``.
|
||||
DATA(ls_sql) = z2ui5_cl_util=>filter_get_sql_by_sql_string( lv_test ) ##NEEDED.
|
||||
DATA lv_test TYPE string.
|
||||
DATA ls_sql TYPE z2ui5_cl_util=>ty_s_sql.
|
||||
lv_test = ``.
|
||||
|
||||
ls_sql = z2ui5_cl_util=>filter_get_sql_by_sql_string( lv_test ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_create.
|
||||
|
||||
DATA(lo_test) = NEW z2ui5_cl_util( ) ##NEEDED.
|
||||
DATA lo_test TYPE REF TO z2ui5_cl_util.
|
||||
CREATE OBJECT lo_test TYPE z2ui5_cl_util.
|
||||
|
||||
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 ).
|
||||
DATA lo_test TYPE REF TO z2ui5_cl_util.
|
||||
DATA lv_name TYPE string.
|
||||
DATA lo_test2 TYPE REF TO ltcl_test_app.
|
||||
DATA lv_name2 TYPE string.
|
||||
CREATE OBJECT lo_test TYPE z2ui5_cl_util.
|
||||
|
||||
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 ).
|
||||
|
||||
CREATE OBJECT lo_test2 TYPE ltcl_test_app.
|
||||
|
||||
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 ).
|
||||
|
||||
|
@ -299,8 +424,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_check_bound_a_not_inital.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA(lr_test) = REF #( lv_test ).
|
||||
DATA lv_test TYPE string.
|
||||
DATA lr_test LIKE REF TO lv_test.
|
||||
lv_test = `test`.
|
||||
|
||||
GET REFERENCE OF lv_test INTO lr_test.
|
||||
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>check_bound_a_not_inital( lr_test ) ).
|
||||
CLEAR lv_test.
|
||||
|
@ -312,8 +440,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_check_unassign_inital.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA(lr_test) = REF #( lv_test ).
|
||||
DATA lv_test TYPE string.
|
||||
DATA lr_test LIKE REF TO lv_test.
|
||||
lv_test = `test`.
|
||||
|
||||
GET REFERENCE OF lv_test INTO lr_test.
|
||||
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>check_unassign_inital( lr_test ) ).
|
||||
|
||||
|
@ -324,8 +455,10 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD rtti_check_ref_data.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA lv_test TYPE string.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
lv_test = `test`.
|
||||
|
||||
GET REFERENCE OF lv_test INTO lr_data.
|
||||
|
||||
cl_abap_unit_assert=>assert_true( z2ui5_cl_util=>rtti_check_ref_data( lr_data ) ).
|
||||
|
@ -336,13 +469,18 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD conv_copy_ref_data.
|
||||
|
||||
DATA(lv_test) = `test`.
|
||||
DATA lv_test TYPE string.
|
||||
DATA lr_data TYPE REF TO data.
|
||||
DATA lr_test2 TYPE REF TO data.
|
||||
FIELD-SYMBOLS <result> TYPE data.
|
||||
lv_test = `test`.
|
||||
|
||||
GET REFERENCE OF lv_test INTO lr_data.
|
||||
|
||||
DATA(lr_test2) = z2ui5_cl_util=>conv_copy_ref_data( lr_data ).
|
||||
|
||||
FIELD-SYMBOLS <result> TYPE data.
|
||||
lr_test2 = z2ui5_cl_util=>conv_copy_ref_data( lr_data ).
|
||||
|
||||
|
||||
ASSIGN lr_test2->* TO <result>.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_test
|
||||
|
@ -359,9 +497,12 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_time_get_timestampl.
|
||||
|
||||
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
DATA lv_time TYPE timestampl.
|
||||
DATA lv_time2 TYPE timestampl.
|
||||
lv_time = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_substract_seconds( time = lv_time
|
||||
|
||||
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.
|
||||
|
@ -376,8 +517,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_time_substract_seconds.
|
||||
|
||||
DATA(lv_time) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
DATA(lv_time2) = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
DATA lv_time TYPE timestampl.
|
||||
DATA lv_time2 TYPE timestampl.
|
||||
lv_time = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
lv_time2 = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
|
||||
IF lv_time IS INITIAL OR lv_time2 IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -430,15 +574,21 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_x_check_raise.
|
||||
DATA temp7 TYPE xsdboolean.
|
||||
DATA temp8 TYPE xsdboolean.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 1 ) ).
|
||||
|
||||
temp7 = boolc( 1 = 1 ).
|
||||
z2ui5_cl_util=>x_check_raise( temp7 ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 3 ) ).
|
||||
|
||||
temp8 = boolc( 1 = 3 ).
|
||||
z2ui5_cl_util=>x_check_raise( temp8 ).
|
||||
CATCH cx_root.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDTRY.
|
||||
|
@ -454,7 +604,12 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
selected TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( title = `test` ).
|
||||
DATA temp73 TYPE ty_row.
|
||||
DATA ls_row LIKE temp73.
|
||||
CLEAR temp73.
|
||||
temp73-title = `test`.
|
||||
|
||||
ls_row = temp73.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{"selected":false,"title":"test","value":""}`
|
||||
act = z2ui5_cl_util=>json_stringify( ls_row ) ).
|
||||
|
@ -463,9 +618,12 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_url_param_create_url.
|
||||
|
||||
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab(
|
||||
DATA lt_param TYPE z2ui5_cl_util=>ty_t_name_value.
|
||||
DATA lv_url TYPE string.
|
||||
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 ).
|
||||
|
||||
lv_url = z2ui5_cl_util=>url_param_create_url( lt_param ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `sap-client=100&app_start=z2ui5_cl_app_hello_world`
|
||||
act = lv_url ).
|
||||
|
@ -474,7 +632,8 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_url_param_get.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_get(
|
||||
DATA lv_param TYPE string.
|
||||
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` ).
|
||||
|
||||
|
@ -485,20 +644,42 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_url_param_get_tab.
|
||||
|
||||
DATA(lt_param) = z2ui5_cl_util=>url_param_get_tab(
|
||||
DATA lt_param TYPE z2ui5_cl_util=>ty_t_name_value.
|
||||
DATA temp74 LIKE LINE OF lt_param.
|
||||
DATA temp75 LIKE sy-tabix.
|
||||
DATA temp76 LIKE LINE OF lt_param.
|
||||
DATA temp77 LIKE sy-tabix.
|
||||
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( exp = `100`
|
||||
act = lt_param[ n = `sap-client` ]-v ).
|
||||
|
||||
|
||||
temp75 = sy-tabix.
|
||||
READ TABLE lt_param WITH KEY n = `sap-client` INTO temp74.
|
||||
sy-tabix = temp75.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `100`
|
||||
act = temp74-v ).
|
||||
|
||||
|
||||
|
||||
temp77 = sy-tabix.
|
||||
READ TABLE lt_param WITH KEY n = `app_start` INTO temp76.
|
||||
sy-tabix = temp77.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `z2ui5_cl_app_hello_world`
|
||||
act = lt_param[ n = `app_start` ]-v ).
|
||||
act = temp76-v ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_url_param_set.
|
||||
|
||||
DATA(lv_param) = z2ui5_cl_util=>url_param_set(
|
||||
DATA lv_param TYPE string.
|
||||
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` ).
|
||||
|
@ -509,9 +690,12 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_x_check_raise_not.
|
||||
DATA temp9 TYPE xsdboolean.
|
||||
|
||||
TRY.
|
||||
z2ui5_cl_util=>x_check_raise( xsdbool( 1 = 2 ) ).
|
||||
|
||||
temp9 = boolc( 1 = 2 ).
|
||||
z2ui5_cl_util=>x_check_raise( temp9 ).
|
||||
CATCH z2ui5_cx_util_error.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDTRY.
|
||||
|
@ -519,8 +703,14 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_rtti_get_type_name.
|
||||
|
||||
DATA(lv_xsdbool) = VALUE xsdboolean( ).
|
||||
DATA(lv_name) = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ).
|
||||
DATA temp78 TYPE xsdboolean.
|
||||
DATA lv_xsdbool LIKE temp78.
|
||||
DATA lv_name TYPE string.
|
||||
CLEAR temp78.
|
||||
|
||||
lv_xsdbool = temp78.
|
||||
|
||||
lv_name = z2ui5_cl_util=>rtti_get_type_name( lv_xsdbool ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = `XSDBOOLEAN`
|
||||
act = lv_name ).
|
||||
|
||||
|
@ -528,10 +718,17 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
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 temp79 TYPE string.
|
||||
DATA lv_string LIKE temp79.
|
||||
DATA lv_type_kind TYPE string.
|
||||
DATA lr_string TYPE REF TO string.
|
||||
CLEAR temp79.
|
||||
|
||||
lv_string = temp79.
|
||||
|
||||
|
||||
lv_type_kind = z2ui5_cl_util=>rtti_get_type_kind( lv_string ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = cl_abap_typedescr=>typekind_string
|
||||
act = lv_type_kind ).
|
||||
|
||||
|
@ -544,8 +741,13 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_rtti_check_type_kind.
|
||||
|
||||
DATA(lv_string) = VALUE string( ).
|
||||
DATA temp80 TYPE string.
|
||||
DATA lv_string LIKE temp80.
|
||||
DATA lr_string TYPE REF TO string.
|
||||
CLEAR temp80.
|
||||
|
||||
lv_string = temp80.
|
||||
|
||||
cl_abap_unit_assert=>assert_false( z2ui5_cl_util=>rtti_check_type_kind_dref( lv_string ) ).
|
||||
|
||||
CREATE DATA lr_string.
|
||||
|
@ -555,32 +757,45 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
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 ).
|
||||
DATA lo_obj TYPE REF TO ltcl_test_app.
|
||||
DATA lt_attri TYPE abap_attrdescr_tab.
|
||||
DATA temp81 LIKE sy-subrc.
|
||||
DATA temp82 LIKE sy-subrc.
|
||||
DATA temp83 LIKE sy-subrc.
|
||||
DATA temp84 LIKE sy-subrc.
|
||||
CREATE OBJECT lo_obj TYPE ltcl_test_app.
|
||||
|
||||
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` ] ).
|
||||
|
||||
READ TABLE lt_attri WITH KEY name = `MS_TAB` TRANSPORTING NO FIELDS.
|
||||
temp81 = sy-subrc.
|
||||
IF NOT temp81 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `SS_TAB`
|
||||
type_kind = `v` ] ).
|
||||
|
||||
READ TABLE lt_attri WITH KEY name = `SS_TAB` type_kind = `v` TRANSPORTING NO FIELDS.
|
||||
temp82 = sy-subrc.
|
||||
IF NOT temp82 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_attri[ name = `SV_VAR`
|
||||
type_kind = `g`
|
||||
is_class = abap_true ] ).
|
||||
|
||||
READ TABLE lt_attri WITH KEY name = `SV_VAR` type_kind = `g` is_class = abap_true TRANSPORTING NO FIELDS.
|
||||
temp83 = sy-subrc.
|
||||
IF NOT temp83 = 0.
|
||||
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` ] ).
|
||||
|
||||
READ TABLE lt_attri WITH KEY name = `SV_STATUS` type_kind = `g` is_class = abap_true is_constant = `X` TRANSPORTING NO FIELDS.
|
||||
temp84 = sy-subrc.
|
||||
IF NOT temp84 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -599,31 +814,65 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
DATA temp85 TYPE ty_row.
|
||||
DATA ls_row LIKE temp85.
|
||||
DATA lt_comp TYPE abap_component_tab.
|
||||
DATA temp86 LIKE sy-subrc.
|
||||
DATA temp87 LIKE sy-subrc.
|
||||
DATA temp88 LIKE sy-subrc.
|
||||
DATA temp89 LIKE sy-subrc.
|
||||
DATA ls_title LIKE LINE OF lt_comp.
|
||||
DATA temp13 LIKE LINE OF lt_comp.
|
||||
DATA temp14 LIKE sy-tabix.
|
||||
CLEAR temp85.
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( ls_row ).
|
||||
ls_row = temp85.
|
||||
|
||||
|
||||
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` ] ).
|
||||
|
||||
READ TABLE lt_comp WITH KEY name = `TITLE` TRANSPORTING NO FIELDS.
|
||||
temp86 = sy-subrc.
|
||||
IF NOT temp86 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `VALUE` ] ).
|
||||
|
||||
READ TABLE lt_comp WITH KEY name = `VALUE` TRANSPORTING NO FIELDS.
|
||||
temp87 = sy-subrc.
|
||||
IF NOT temp87 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `SELECTED` ] ).
|
||||
|
||||
READ TABLE lt_comp WITH KEY name = `SELECTED` TRANSPORTING NO FIELDS.
|
||||
temp88 = sy-subrc.
|
||||
IF NOT temp88 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `CHECKBOX` ] ).
|
||||
|
||||
READ TABLE lt_comp WITH KEY name = `CHECKBOX` TRANSPORTING NO FIELDS.
|
||||
temp89 = sy-subrc.
|
||||
IF NOT temp89 = 0.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_title) = lt_comp[ 1 ].
|
||||
|
||||
|
||||
|
||||
temp14 = sy-tabix.
|
||||
READ TABLE lt_comp INDEX 1 INTO temp13.
|
||||
sy-tabix = temp14.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_title = temp13.
|
||||
|
||||
IF ls_title-type->type_kind <> `g`.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -633,8 +882,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
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 ).
|
||||
DATA lo_obj TYPE REF TO ltcl_test_app.
|
||||
DATA lv_xml TYPE string.
|
||||
CREATE OBJECT lo_obj TYPE ltcl_test_app.
|
||||
|
||||
lv_xml = z2ui5_cl_util=>xml_stringify( lo_obj ).
|
||||
|
||||
IF lv_xml IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -643,8 +895,11 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
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 ).
|
||||
DATA lo_obj TYPE REF TO ltcl_test_app.
|
||||
DATA lv_xml TYPE string.
|
||||
CREATE OBJECT lo_obj TYPE ltcl_test_app.
|
||||
|
||||
lv_xml = z2ui5_cl_util=>xml_stringify( lo_obj ).
|
||||
|
||||
CLEAR lo_obj.
|
||||
z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
|
||||
|
@ -669,10 +924,16 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
DATA temp90 TYPE ty_row.
|
||||
DATA ls_row LIKE temp90.
|
||||
DATA lv_xml TYPE string.
|
||||
CLEAR temp90.
|
||||
|
||||
ls_row = temp90.
|
||||
ls_row-value = `test`.
|
||||
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
lv_xml = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
IF lv_xml IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
@ -693,11 +954,22 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
checkbox TYPE abap_bool,
|
||||
END OF ty_row.
|
||||
|
||||
DATA(ls_row) = VALUE ty_row( ).
|
||||
DATA(ls_row2) = VALUE ty_row( ).
|
||||
DATA temp91 TYPE ty_row.
|
||||
DATA ls_row LIKE temp91.
|
||||
DATA temp92 TYPE ty_row.
|
||||
DATA ls_row2 LIKE temp92.
|
||||
DATA lv_xml TYPE string.
|
||||
CLEAR temp91.
|
||||
|
||||
ls_row = temp91.
|
||||
|
||||
CLEAR temp92.
|
||||
|
||||
ls_row2 = temp92.
|
||||
ls_row-value = `test`.
|
||||
|
||||
DATA(lv_xml) = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
lv_xml = z2ui5_cl_util=>xml_stringify( ls_row ).
|
||||
|
||||
z2ui5_cl_util=>xml_parse( EXPORTING xml = lv_xml
|
||||
IMPORTING any = ls_row2 ).
|
||||
|
@ -720,14 +992,37 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_get_token_t_by_r_t.
|
||||
|
||||
DATA(lt_range) = VALUE z2ui5_cl_util=>ty_t_range( ( sign = 'I' option = 'EQ' low = `table` high = `` )
|
||||
).
|
||||
DATA temp93 TYPE z2ui5_cl_util=>ty_t_range.
|
||||
DATA temp94 LIKE LINE OF temp93.
|
||||
DATA lt_range LIKE temp93.
|
||||
DATA lt_result TYPE z2ui5_cl_util=>ty_t_token.
|
||||
DATA temp95 TYPE z2ui5_cl_util=>ty_t_token.
|
||||
DATA temp96 LIKE LINE OF temp95.
|
||||
DATA lt_exp LIKE temp95.
|
||||
CLEAR temp93.
|
||||
|
||||
DATA(lt_result) = z2ui5_cl_util=>filter_get_token_t_by_range_t( lt_range ).
|
||||
temp94-sign = 'I'.
|
||||
temp94-option = 'EQ'.
|
||||
temp94-low = `table`.
|
||||
temp94-high = ``.
|
||||
INSERT temp94 INTO TABLE temp93.
|
||||
|
||||
DATA(lt_exp) = VALUE z2ui5_cl_util=>ty_t_token(
|
||||
( key = `=table` text = `=table` visible = 'X' selkz = '' editable = 'X' )
|
||||
).
|
||||
lt_range = temp93.
|
||||
|
||||
|
||||
lt_result = z2ui5_cl_util=>filter_get_token_t_by_range_t( lt_range ).
|
||||
|
||||
|
||||
CLEAR temp95.
|
||||
|
||||
temp96-key = `=table`.
|
||||
temp96-text = `=table`.
|
||||
temp96-visible = 'X'.
|
||||
temp96-selkz = ''.
|
||||
temp96-editable = 'X'.
|
||||
INSERT temp96 INTO TABLE temp95.
|
||||
|
||||
lt_exp = temp95.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lt_exp
|
||||
act = lt_result
|
||||
|
@ -736,32 +1031,37 @@ CLASS ltcl_unit_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_rtti_get_t_attri_by_incl.
|
||||
TYPES BEGIN OF ty_struc_incl.
|
||||
TYPES incl_title TYPE string.
|
||||
TYPES incl_value TYPE string.
|
||||
TYPES incl_value2 TYPE string.
|
||||
TYPES END OF ty_struc_incl.
|
||||
TYPES BEGIN OF ty_struc.
|
||||
TYPES title TYPE string.
|
||||
TYPES value TYPE string.
|
||||
TYPES value2 TYPE string.
|
||||
TYPES 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 TYPE REF TO cl_abap_typedescr.
|
||||
DATA temp97 TYPE REF TO cl_abap_datadescr.
|
||||
DATA lt_attri TYPE abap_component_tab.
|
||||
|
||||
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 ) ).
|
||||
|
||||
|
||||
|
||||
|
||||
lo_datadescr = cl_abap_typedescr=>describe_by_data( ms_struc2 ).
|
||||
|
||||
temp97 ?= lo_datadescr.
|
||||
|
||||
lt_attri = z2ui5_cl_util=>rtti_get_t_attri_by_include( temp97 ).
|
||||
|
||||
IF lines( lt_attri ) <> 6.
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
|
|
|
@ -15,7 +15,8 @@ ENDCLASS.
|
|||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD test_func_get_uuid_32.
|
||||
|
||||
DATA(lv_uuid) = z2ui5_cl_util_abap=>uuid_get_c32( ).
|
||||
DATA lv_uuid TYPE string.
|
||||
lv_uuid = z2ui5_cl_util_abap=>uuid_get_c32( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 32 ).
|
||||
|
@ -24,7 +25,8 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_func_get_uuid_22.
|
||||
|
||||
DATA(lv_uuid) = z2ui5_cl_util_abap=>uuid_get_c22( ).
|
||||
DATA lv_uuid TYPE string.
|
||||
lv_uuid = z2ui5_cl_util_abap=>uuid_get_c22( ).
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_uuid ).
|
||||
cl_abap_unit_assert=>assert_equals( exp = strlen( lv_uuid )
|
||||
act = 22 ).
|
||||
|
@ -33,11 +35,20 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_encoding.
|
||||
|
||||
DATA(lv_string) = `my string`.
|
||||
DATA(lv_xstring) = z2ui5_cl_util_abap=>conv_get_xstring_by_string( lv_string ).
|
||||
DATA(lv_string2) = z2ui5_cl_util_abap=>conv_encode_x_base64( lv_xstring ).
|
||||
DATA(lv_xstring2) = z2ui5_cl_util_abap=>conv_decode_x_base64( lv_string2 ).
|
||||
DATA(lv_string3) = z2ui5_cl_util_abap=>conv_get_string_by_xstring( lv_xstring2 ).
|
||||
DATA lv_string TYPE string.
|
||||
DATA lv_xstring TYPE xstring.
|
||||
DATA lv_string2 TYPE string.
|
||||
DATA lv_xstring2 TYPE xstring.
|
||||
DATA lv_string3 TYPE string.
|
||||
lv_string = `my string`.
|
||||
|
||||
lv_xstring = z2ui5_cl_util_abap=>conv_get_xstring_by_string( lv_string ).
|
||||
|
||||
lv_string2 = z2ui5_cl_util_abap=>conv_encode_x_base64( lv_xstring ).
|
||||
|
||||
lv_xstring2 = z2ui5_cl_util_abap=>conv_decode_x_base64( lv_string2 ).
|
||||
|
||||
lv_string3 = z2ui5_cl_util_abap=>conv_get_string_by_xstring( lv_xstring2 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_string
|
||||
act = lv_string3 ).
|
||||
|
@ -45,23 +56,27 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_element_text.
|
||||
DATA ls_result TYPE z2ui5_cl_util_abap=>ty_s_data_element_text.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_result) = z2ui5_cl_util_abap=>rtti_get_data_element_texts( `UNAME` ).
|
||||
|
||||
ls_result = z2ui5_cl_util_abap=>rtti_get_data_element_texts( `UNAME` ).
|
||||
cl_abap_unit_assert=>assert_not_initial( ls_result ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_classes_impl_intf.
|
||||
DATA mt_classes TYPE z2ui5_cl_util_abap=>ty_t_classes.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(mt_classes) = z2ui5_cl_util_abap=>rtti_get_classes_impl_intf( `IF_SERIALIZABLE_OBJECT` ).
|
||||
|
||||
mt_classes = z2ui5_cl_util_abap=>rtti_get_classes_impl_intf( `IF_SERIALIZABLE_OBJECT` ).
|
||||
cl_abap_unit_assert=>assert_not_initial( mt_classes ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -70,12 +70,18 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
||||
METHOD delete_response_cookie.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
DATA temp1 TYPE string.
|
||||
DATA lv_val LIKE temp1.
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
temp1 = val.
|
||||
|
||||
lv_val = temp1.
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
|
||||
|
||||
ASSIGN mo_server_onprem->('RESPONSE') TO <any>.
|
||||
object = <any>.
|
||||
|
@ -98,7 +104,11 @@ CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
|||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
DATA temp2 TYPE string.
|
||||
DATA lv_val LIKE temp2.
|
||||
temp2 = val.
|
||||
|
||||
lv_val = temp2.
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
|
@ -126,7 +136,11 @@ CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
|||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_val) = CONV string( val ).
|
||||
DATA temp3 TYPE string.
|
||||
DATA lv_val LIKE temp3.
|
||||
temp3 = val.
|
||||
|
||||
lv_val = temp3.
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
|
@ -152,8 +166,17 @@ CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
|||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_n) = CONV string( n ).
|
||||
DATA(lv_v) = CONV string( v ).
|
||||
DATA temp4 TYPE string.
|
||||
DATA lv_n LIKE temp4.
|
||||
DATA temp5 TYPE string.
|
||||
DATA lv_v LIKE temp5.
|
||||
temp4 = n.
|
||||
|
||||
lv_n = temp4.
|
||||
|
||||
temp5 = v.
|
||||
|
||||
lv_v = temp5.
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
ASSIGN mo_server_onprem->('RESPONSE') TO <any>.
|
||||
|
@ -175,14 +198,14 @@ CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
|||
|
||||
METHOD factory.
|
||||
|
||||
result = NEW #( ).
|
||||
CREATE OBJECT result.
|
||||
result->mo_server_onprem = server.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory_cloud.
|
||||
|
||||
result = NEW #( ).
|
||||
CREATE OBJECT result.
|
||||
result->mo_request_cloud = req.
|
||||
result->mo_response_cloud = res.
|
||||
|
||||
|
@ -259,7 +282,11 @@ CLASS z2ui5_cl_util_abap_http IMPLEMENTATION.
|
|||
DATA object TYPE REF TO object.
|
||||
FIELD-SYMBOLS <any> TYPE any.
|
||||
|
||||
DATA(lv_reason) = CONV string( reason ).
|
||||
DATA temp6 TYPE string.
|
||||
DATA lv_reason LIKE temp6.
|
||||
temp6 = reason.
|
||||
|
||||
lv_reason = temp6.
|
||||
|
||||
IF mo_server_onprem IS BOUND.
|
||||
|
||||
|
|
|
@ -53,10 +53,10 @@ CLASS z2ui5_cl_util_db IMPLEMENTATION.
|
|||
|
||||
DELETE FROM z2ui5_t_91
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3.
|
||||
uname = uname
|
||||
AND handle = handle
|
||||
AND handle2 = handle2
|
||||
AND handle3 = handle3.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
COMMIT WORK AND WAIT.
|
||||
|
@ -67,23 +67,35 @@ CLASS z2ui5_cl_util_db IMPLEMENTATION.
|
|||
|
||||
METHOD load_by_handle.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH DEFAULT KEY.
|
||||
DATA ls_db LIKE LINE OF lt_db.
|
||||
DATA temp1 LIKE LINE OF lt_db.
|
||||
DATA temp2 LIKE sy-tabix.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_91
|
||||
FROM z2ui5_t_91 INTO CORRESPONDING FIELDS OF TABLE lt_db
|
||||
WHERE
|
||||
uname = @uname
|
||||
AND handle = @handle
|
||||
AND handle2 = @handle2
|
||||
AND handle3 = @handle3
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
uname = uname
|
||||
AND handle = handle
|
||||
AND handle2 = handle2
|
||||
AND handle3 = handle3
|
||||
.
|
||||
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 ].
|
||||
|
||||
|
||||
|
||||
temp2 = sy-tabix.
|
||||
READ TABLE lt_db INDEX 1 INTO temp1.
|
||||
sy-tabix = temp2.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_db = temp1.
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
|
@ -96,15 +108,27 @@ CLASS z2ui5_cl_util_db IMPLEMENTATION.
|
|||
|
||||
METHOD load_by_id.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH DEFAULT KEY.
|
||||
DATA ls_db LIKE LINE OF lt_db.
|
||||
DATA temp3 LIKE LINE OF lt_db.
|
||||
DATA temp4 LIKE sy-tabix.
|
||||
|
||||
SELECT data
|
||||
FROM z2ui5_t_91
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF TABLE @lt_db.
|
||||
FROM z2ui5_t_91 INTO CORRESPONDING FIELDS OF TABLE lt_db
|
||||
WHERE id = id
|
||||
.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
DATA(ls_db) = lt_db[ 1 ].
|
||||
|
||||
|
||||
|
||||
temp4 = sy-tabix.
|
||||
READ TABLE lt_db INDEX 1 INTO temp3.
|
||||
sy-tabix = temp4.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_db = temp3.
|
||||
|
||||
z2ui5_cl_util=>xml_parse(
|
||||
EXPORTING
|
||||
|
@ -117,30 +141,45 @@ CLASS z2ui5_cl_util_db IMPLEMENTATION.
|
|||
|
||||
METHOD save.
|
||||
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH EMPTY KEY.
|
||||
DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_91 WITH DEFAULT KEY.
|
||||
DATA temp1 TYPE z2ui5_t_91.
|
||||
DATA ls_db LIKE temp1.
|
||||
DATA temp2 LIKE LINE OF lt_db.
|
||||
DATA temp3 LIKE sy-tabix.
|
||||
SELECT id
|
||||
FROM z2ui5_t_91
|
||||
FROM z2ui5_t_91 INTO CORRESPONDING FIELDS OF TABLE lt_db
|
||||
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_91(
|
||||
uname = uname
|
||||
handle = handle
|
||||
handle2 = handle2
|
||||
handle3 = handle3
|
||||
data = z2ui5_cl_util=>xml_stringify( data ) ).
|
||||
AND handle = handle
|
||||
AND handle2 = handle2
|
||||
AND handle3 = handle3
|
||||
##SUBRC_OK.
|
||||
|
||||
|
||||
CLEAR temp1.
|
||||
temp1-uname = uname.
|
||||
temp1-handle = handle.
|
||||
temp1-handle2 = handle2.
|
||||
temp1-handle3 = handle3.
|
||||
temp1-data = z2ui5_cl_util=>xml_stringify( data ).
|
||||
|
||||
ls_db = temp1.
|
||||
|
||||
TRY.
|
||||
ls_db-id = lt_db[ 1 ]-id.
|
||||
|
||||
|
||||
temp3 = sy-tabix.
|
||||
READ TABLE lt_db INDEX 1 INTO temp2.
|
||||
sy-tabix = temp3.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_db-id = temp2-id.
|
||||
CATCH cx_root.
|
||||
ls_db-id = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
ENDTRY.
|
||||
|
||||
MODIFY z2ui5_t_91 FROM @ls_db.
|
||||
MODIFY z2ui5_t_91 FROM ls_db.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
IF check_commit = abap_true.
|
||||
|
|
|
@ -19,14 +19,38 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
METHOD msg_get.
|
||||
|
||||
|
||||
DATA(lv_kind) = z2ui5_cl_util=>rtti_get_type_kind( val ).
|
||||
DATA lv_kind TYPE string.
|
||||
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
||||
FIELD-SYMBOLS <row> TYPE ANY.
|
||||
DATA lt_tab TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA lt_attri TYPE abap_component_tab.
|
||||
DATA temp1 TYPE z2ui5_cl_util=>ty_s_msg.
|
||||
DATA ls_result LIKE temp1.
|
||||
DATA temp2 LIKE LINE OF lt_attri.
|
||||
DATA ls_attri LIKE REF TO temp2.
|
||||
DATA lv_name TYPE string.
|
||||
FIELD-SYMBOLS <comp> TYPE any.
|
||||
DATA temp3 TYPE REF TO cx_root.
|
||||
DATA lx LIKE temp3.
|
||||
DATA lt_attri_o TYPE abap_attrdescr_tab.
|
||||
DATA temp4 LIKE LINE OF lt_attri_o.
|
||||
DATA ls_attri_o LIKE REF TO temp4.
|
||||
DATA obj TYPE REF TO object.
|
||||
DATA lr_tab TYPE REF TO data.
|
||||
FIELD-SYMBOLS <tab2> TYPE data.
|
||||
DATA lt_tab2 TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA lx2 TYPE REF TO cx_root.
|
||||
DATA temp5 TYPE z2ui5_cl_util=>ty_s_msg.
|
||||
lv_kind = z2ui5_cl_util=>rtti_get_type_kind( val ).
|
||||
CASE lv_kind.
|
||||
|
||||
WHEN cl_abap_datadescr=>typekind_table.
|
||||
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
||||
|
||||
ASSIGN val TO <tab>.
|
||||
LOOP AT <tab> ASSIGNING FIELD-SYMBOL(<row>).
|
||||
DATA(lt_tab) = msg_get( <row> ).
|
||||
|
||||
LOOP AT <tab> ASSIGNING <row>.
|
||||
|
||||
lt_tab = msg_get( <row> ).
|
||||
INSERT LINES OF lt_tab INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -36,12 +60,20 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_any( val ).
|
||||
|
||||
DATA(ls_result) = VALUE z2ui5_cl_util=>ty_s_msg( ).
|
||||
LOOP AT lt_attri REFERENCE INTO DATA(ls_attri).
|
||||
DATA(lv_name) = |VAL-{ ls_attri->name }|.
|
||||
ASSIGN (lv_name) TO FIELD-SYMBOL(<comp>).
|
||||
lt_attri = z2ui5_cl_util=>rtti_get_t_attri_by_any( val ).
|
||||
|
||||
|
||||
CLEAR temp1.
|
||||
|
||||
ls_result = temp1.
|
||||
|
||||
|
||||
LOOP AT lt_attri REFERENCE INTO ls_attri.
|
||||
|
||||
lv_name = |VAL-{ ls_attri->name }|.
|
||||
|
||||
ASSIGN (lv_name) TO <comp>.
|
||||
|
||||
IF ls_attri->name = 'ITEM'.
|
||||
lt_tab = msg_get( <comp> ).
|
||||
|
@ -61,10 +93,18 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
|
||||
WHEN cl_abap_datadescr=>typekind_oref.
|
||||
TRY.
|
||||
DATA(lx) = CAST cx_root( val ).
|
||||
ls_result = VALUE #( type = 'E' text = lx->get_text( ) ).
|
||||
DATA(lt_attri_o) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||
LOOP AT lt_attri_o REFERENCE INTO DATA(ls_attri_o)
|
||||
|
||||
temp3 ?= val.
|
||||
|
||||
lx = temp3.
|
||||
CLEAR ls_result.
|
||||
ls_result-type = 'E'.
|
||||
ls_result-text = lx->get_text( ).
|
||||
|
||||
lt_attri_o = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||
|
||||
|
||||
LOOP AT lt_attri_o REFERENCE INTO ls_attri_o
|
||||
WHERE visibility = 'U'.
|
||||
lv_name = |VAL->{ ls_attri_o->name }|.
|
||||
ASSIGN (lv_name) TO <comp>.
|
||||
|
@ -73,20 +113,22 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
INSERT ls_result INTO TABLE result.
|
||||
CATCH cx_root.
|
||||
|
||||
DATA obj TYPE REF TO object.
|
||||
|
||||
obj = val.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA lr_tab TYPE REF TO data.
|
||||
|
||||
CREATE DATA lr_tab TYPE ('if_bali_log=>ty_item_table').
|
||||
ASSIGN lr_tab->* TO FIELD-SYMBOL(<tab2>).
|
||||
|
||||
ASSIGN lr_tab->* TO <tab2>.
|
||||
|
||||
CALL METHOD obj->(`IF_BALI_LOG~GET_ALL_ITEMS`)
|
||||
RECEIVING
|
||||
item_table = <tab2>.
|
||||
|
||||
DATA(lt_tab2) = msg_get( <tab2> ).
|
||||
|
||||
lt_tab2 = msg_get( <tab2> ).
|
||||
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
@ -103,7 +145,8 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
lt_tab2 = msg_get( <tab2> ).
|
||||
INSERT LINES OF lt_tab2 INTO TABLE result.
|
||||
|
||||
CATCH cx_root INTO DATA(lx2).
|
||||
|
||||
CATCH cx_root INTO lx2.
|
||||
|
||||
|
||||
lt_attri_o = z2ui5_cl_util=>rtti_get_t_attri_by_oref( val ).
|
||||
|
@ -121,9 +164,11 @@ CLASS z2ui5_cl_util_msg IMPLEMENTATION.
|
|||
|
||||
WHEN OTHERS.
|
||||
|
||||
IF z2ui5_cl_util=>rtti_check_clike( val ).
|
||||
INSERT VALUE #( text = val
|
||||
)
|
||||
IF z2ui5_cl_util=>rtti_check_clike( val ) IS NOT INITIAL.
|
||||
|
||||
CLEAR temp5.
|
||||
temp5-text = val.
|
||||
INSERT temp5
|
||||
INTO TABLE result.
|
||||
ENDIF.
|
||||
ENDCASE.
|
||||
|
|
|
@ -16,81 +16,230 @@ ENDCLASS.
|
|||
CLASS ltcl_unit_test_msg_mapper IMPLEMENTATION.
|
||||
|
||||
METHOD test_sy.
|
||||
DATA lv_dummy TYPE string.
|
||||
DATA lt_result TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp6 LIKE LINE OF lt_result.
|
||||
DATA temp7 LIKE sy-tabix.
|
||||
DATA temp8 LIKE LINE OF lt_result.
|
||||
DATA temp9 LIKE sy-tabix.
|
||||
DATA temp10 LIKE LINE OF lt_result.
|
||||
DATA temp11 LIKE sy-tabix.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
MESSAGE ID 'NET' TYPE 'I' NUMBER '001' INTO DATA(lv_dummy).
|
||||
DATA(lt_result) = z2ui5_cl_util_msg=>msg_get( sy ).
|
||||
|
||||
MESSAGE ID 'NET' TYPE 'I' NUMBER '001' INTO lv_dummy.
|
||||
|
||||
lt_result = z2ui5_cl_util_msg=>msg_get( sy ).
|
||||
|
||||
|
||||
|
||||
temp7 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp6.
|
||||
sy-tabix = temp7.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `NET`
|
||||
act = lt_result[ 1 ]-id ).
|
||||
act = temp6-id ).
|
||||
|
||||
|
||||
|
||||
temp9 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp8.
|
||||
sy-tabix = temp9.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||
act = lt_result[ 1 ]-no ).
|
||||
act = temp8-no ).
|
||||
|
||||
|
||||
|
||||
temp11 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp10.
|
||||
sy-tabix = temp11.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `I`
|
||||
act = lt_result[ 1 ]-type ).
|
||||
act = temp10-type ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_bapiret.
|
||||
DATA temp12 TYPE bapirettab.
|
||||
DATA temp13 LIKE LINE OF temp12.
|
||||
DATA lt_msg LIKE temp12.
|
||||
DATA lt_result TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp1 LIKE LINE OF lt_msg.
|
||||
DATA temp2 LIKE sy-tabix.
|
||||
DATA temp14 LIKE LINE OF lt_result.
|
||||
DATA temp15 LIKE sy-tabix.
|
||||
DATA temp16 LIKE LINE OF lt_result.
|
||||
DATA temp17 LIKE sy-tabix.
|
||||
DATA temp18 LIKE LINE OF lt_result.
|
||||
DATA temp19 LIKE sy-tabix.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_msg) = VALUE bapirettab(
|
||||
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
|
||||
).
|
||||
|
||||
DATA(lt_result) = z2ui5_cl_util_msg=>msg_get( lt_msg[ 1 ] ).
|
||||
CLEAR temp12.
|
||||
|
||||
temp13-type = 'E'.
|
||||
temp13-id = 'MSG1'.
|
||||
temp13-number = '001'.
|
||||
temp13-message = 'An empty Report field causes an empty XML Message to be sent'.
|
||||
INSERT temp13 INTO TABLE temp12.
|
||||
|
||||
lt_msg = temp12.
|
||||
|
||||
|
||||
|
||||
|
||||
temp2 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp1.
|
||||
sy-tabix = temp2.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lt_result = z2ui5_cl_util_msg=>msg_get( temp1 ).
|
||||
|
||||
|
||||
|
||||
temp15 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp14.
|
||||
sy-tabix = temp15.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `MSG1`
|
||||
act = lt_result[ 1 ]-id ).
|
||||
act = temp14-id ).
|
||||
|
||||
|
||||
|
||||
temp17 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp16.
|
||||
sy-tabix = temp17.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||
act = lt_result[ 1 ]-no ).
|
||||
act = temp16-no ).
|
||||
|
||||
|
||||
|
||||
temp19 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp18.
|
||||
sy-tabix = temp19.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||
act = lt_result[ 1 ]-type ).
|
||||
act = temp18-type ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_bapirettab.
|
||||
DATA temp20 TYPE bapirettab.
|
||||
DATA temp21 LIKE LINE OF temp20.
|
||||
DATA lt_msg LIKE temp20.
|
||||
DATA lt_result TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp22 LIKE LINE OF lt_result.
|
||||
DATA temp23 LIKE sy-tabix.
|
||||
DATA temp24 LIKE LINE OF lt_result.
|
||||
DATA temp25 LIKE sy-tabix.
|
||||
DATA temp26 LIKE LINE OF lt_result.
|
||||
DATA temp27 LIKE sy-tabix.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_msg) = VALUE bapirettab(
|
||||
( type = 'E' id = 'MSG1' number = '001' message = 'An empty Report field causes an empty XML Message to be sent' )
|
||||
( type = 'I' id = 'MSG2' number = '002' message = 'Product already in use' ) ).
|
||||
|
||||
DATA(lt_result) = z2ui5_cl_util_msg=>msg_get( lt_msg ).
|
||||
CLEAR temp20.
|
||||
|
||||
temp21-type = 'E'.
|
||||
temp21-id = 'MSG1'.
|
||||
temp21-number = '001'.
|
||||
temp21-message = 'An empty Report field causes an empty XML Message to be sent'.
|
||||
INSERT temp21 INTO TABLE temp20.
|
||||
temp21-type = 'I'.
|
||||
temp21-id = 'MSG2'.
|
||||
temp21-number = '002'.
|
||||
temp21-message = 'Product already in use'.
|
||||
INSERT temp21 INTO TABLE temp20.
|
||||
|
||||
lt_msg = temp20.
|
||||
|
||||
|
||||
lt_result = z2ui5_cl_util_msg=>msg_get( lt_msg ).
|
||||
|
||||
|
||||
|
||||
temp23 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp22.
|
||||
sy-tabix = temp23.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `MSG1`
|
||||
act = lt_result[ 1 ]-id ).
|
||||
act = temp22-id ).
|
||||
|
||||
|
||||
|
||||
temp25 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp24.
|
||||
sy-tabix = temp25.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `001`
|
||||
act = lt_result[ 1 ]-no ).
|
||||
act = temp24-no ).
|
||||
|
||||
|
||||
|
||||
temp27 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp26.
|
||||
sy-tabix = temp27.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||
act = lt_result[ 1 ]-type ).
|
||||
act = temp26-type ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_cx.
|
||||
DATA lv_val TYPE i.
|
||||
DATA lx TYPE REF TO cx_root.
|
||||
DATA lt_result TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp28 LIKE LINE OF lt_result.
|
||||
DATA temp29 LIKE sy-tabix.
|
||||
|
||||
TRY.
|
||||
DATA(lv_val) = 1 / 0.
|
||||
CATCH cx_root INTO DATA(lx).
|
||||
DATA(lt_result) = z2ui5_cl_util_msg=>msg_get( lx ).
|
||||
|
||||
lv_val = 1 / 0.
|
||||
|
||||
CATCH cx_root INTO lx.
|
||||
|
||||
lt_result = z2ui5_cl_util_msg=>msg_get( lx ).
|
||||
ENDTRY.
|
||||
|
||||
|
||||
|
||||
temp29 = sy-tabix.
|
||||
READ TABLE lt_result INDEX 1 INTO temp28.
|
||||
sy-tabix = temp29.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `E`
|
||||
act = lt_result[ 1 ]-type ).
|
||||
act = temp28-type ).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -49,21 +49,34 @@ CLASS z2ui5_cl_util_range IMPLEMENTATION.
|
|||
|
||||
|
||||
FIELD-SYMBOLS <lt_range> TYPE STANDARD TABLE.
|
||||
DATA temp1 TYPE xsdboolean.
|
||||
FIELD-SYMBOLS <ls_range_item> TYPE ANY.
|
||||
FIELD-SYMBOLS <lv_sign> TYPE any.
|
||||
FIELD-SYMBOLS <lv_option> TYPE any.
|
||||
FIELD-SYMBOLS <lv_low> TYPE any.
|
||||
FIELD-SYMBOLS <lv_high> TYPE any.
|
||||
|
||||
ASSIGN me->mr_range->* TO <lt_range>.
|
||||
|
||||
IF xsdbool( <lt_range> IS INITIAL ) = abap_true.
|
||||
|
||||
temp1 = boolc( <lt_range> IS INITIAL ).
|
||||
IF temp1 = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
result = `(`.
|
||||
|
||||
LOOP AT <lt_range> ASSIGNING FIELD-SYMBOL(<ls_range_item>).
|
||||
|
||||
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_sign>).
|
||||
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_option>).
|
||||
ASSIGN COMPONENT 'LOW' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_low>).
|
||||
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <ls_range_item> TO FIELD-SYMBOL(<lv_high>).
|
||||
LOOP AT <lt_range> ASSIGNING <ls_range_item>.
|
||||
|
||||
|
||||
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <ls_range_item> TO <lv_sign>.
|
||||
|
||||
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <ls_range_item> TO <lv_option>.
|
||||
|
||||
ASSIGN COMPONENT 'LOW' OF STRUCTURE <ls_range_item> TO <lv_low>.
|
||||
|
||||
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <ls_range_item> TO <lv_high>.
|
||||
|
||||
IF sy-tabix <> 1.
|
||||
result = |{ result } OR|.
|
||||
|
|
|
@ -42,16 +42,25 @@ CLASS z2ui5_cx_util_error IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD if_message~get_text.
|
||||
DATA error LIKE abap_true.
|
||||
DATA temp1 TYPE string.
|
||||
|
||||
IF ms_error-x_root IS NOT INITIAL.
|
||||
result = ms_error-x_root->get_text( ).
|
||||
DATA(error) = abap_true.
|
||||
|
||||
error = abap_true.
|
||||
ELSEIF ms_error-text IS NOT INITIAL.
|
||||
result = ms_error-text.
|
||||
error = abap_true.
|
||||
ENDIF.
|
||||
|
||||
result = COND #( WHEN error = abap_true AND result IS INITIAL THEN `unknown error` ELSE result ).
|
||||
|
||||
IF error = abap_true AND result IS INITIAL.
|
||||
temp1 = `unknown error`.
|
||||
ELSE.
|
||||
temp1 = result.
|
||||
ENDIF.
|
||||
result = temp1.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -8,13 +8,15 @@ ENDCLASS.
|
|||
|
||||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_raise.
|
||||
DATA lx TYPE REF TO z2ui5_cx_util_error.
|
||||
|
||||
TRY.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING val = `this is an error text`.
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO DATA(lx).
|
||||
|
||||
CATCH z2ui5_cx_util_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `this is an error text`
|
||||
act = lx->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -44,26 +44,33 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
METHOD cleanup.
|
||||
|
||||
DATA(lv_four_hours_ago) = z2ui5_cl_util=>time_substract_seconds( time = z2ui5_cl_util=>time_get_timestampl( )
|
||||
DATA lv_four_hours_ago TYPE timestampl.
|
||||
lv_four_hours_ago = z2ui5_cl_util=>time_substract_seconds( time = z2ui5_cl_util=>time_get_timestampl( )
|
||||
seconds = 60 * 60 * 4 ).
|
||||
|
||||
DELETE FROM z2ui5_t_01 WHERE timestampl < @lv_four_hours_ago.
|
||||
DELETE FROM z2ui5_t_01 WHERE timestampl < lv_four_hours_ago.
|
||||
COMMIT WORK.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create.
|
||||
DATA temp1 TYPE ty_s_db.
|
||||
DATA ls_db LIKE temp1.
|
||||
|
||||
ASSERT draft-id IS NOT INITIAL.
|
||||
|
||||
DATA(ls_db) = VALUE ty_s_db( id = draft-id
|
||||
id_prev = draft-id_prev
|
||||
id_prev_app = draft-id_prev_app
|
||||
id_prev_app_stack = draft-id_prev_app_stack
|
||||
timestampl = z2ui5_cl_util=>time_get_timestampl( )
|
||||
data = model_xml ).
|
||||
|
||||
MODIFY z2ui5_t_01 FROM @ls_db.
|
||||
CLEAR temp1.
|
||||
temp1-id = draft-id.
|
||||
temp1-id_prev = draft-id_prev.
|
||||
temp1-id_prev_app = draft-id_prev_app.
|
||||
temp1-id_prev_app_stack = draft-id_prev_app_stack.
|
||||
temp1-timestampl = z2ui5_cl_util=>time_get_timestampl( ).
|
||||
temp1-data = model_xml.
|
||||
|
||||
ls_db = temp1.
|
||||
|
||||
MODIFY z2ui5_t_01 FROM ls_db.
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING val = `CREATE_OF_DRAFT_ENTRY_ON_DATABASE_FAILED`.
|
||||
|
@ -76,16 +83,16 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
IF check_load_app = abap_true.
|
||||
|
||||
SELECT SINGLE * FROM z2ui5_t_01
|
||||
WHERE id = @id
|
||||
INTO @result ##SUBRC_OK.
|
||||
SELECT SINGLE * FROM z2ui5_t_01 INTO result
|
||||
WHERE id = id
|
||||
##SUBRC_OK.
|
||||
|
||||
ELSE.
|
||||
|
||||
SELECT SINGLE id, id_prev, id_prev_app, id_prev_app_stack
|
||||
FROM z2ui5_t_01
|
||||
WHERE id = @id
|
||||
INTO CORRESPONDING FIELDS OF @result ##SUBRC_OK.
|
||||
SELECT SINGLE id id_prev id_prev_app id_prev_app_stack
|
||||
FROM z2ui5_t_01 INTO CORRESPONDING FIELDS OF result
|
||||
WHERE id = id
|
||||
##SUBRC_OK.
|
||||
|
||||
ENDIF.
|
||||
|
||||
|
@ -104,17 +111,18 @@ CLASS z2ui5_cl_core_srv_draft IMPLEMENTATION.
|
|||
|
||||
METHOD read_info.
|
||||
|
||||
DATA(ls_db) = read( id = id
|
||||
DATA ls_db TYPE z2ui5_t_01.
|
||||
ls_db = read( id = id
|
||||
check_load_app = abap_false ).
|
||||
|
||||
result = CORRESPONDING #( ls_db ).
|
||||
MOVE-CORRESPONDING ls_db TO result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD count_entries.
|
||||
|
||||
SELECT COUNT( * ) FROM z2ui5_t_01
|
||||
INTO @result.
|
||||
INTO result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -19,13 +19,20 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
METHOD test_create.
|
||||
|
||||
DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
DATA lo_draft TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA temp2 TYPE z2ui5_if_types=>ty_s_draft.
|
||||
DATA ls_db TYPE z2ui5_t_01.
|
||||
CREATE OBJECT lo_draft TYPE z2ui5_cl_core_srv_draft.
|
||||
|
||||
lo_draft->create( draft = VALUE #( id = `TEST_ID` )
|
||||
|
||||
CLEAR temp2.
|
||||
temp2-id = `TEST_ID`.
|
||||
lo_draft->create( draft = temp2
|
||||
model_xml = `my xml`
|
||||
).
|
||||
|
||||
DATA(ls_db) = lo_draft->read_draft( `TEST_ID` ).
|
||||
|
||||
ls_db = lo_draft->read_draft( `TEST_ID` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `my xml`
|
||||
act = ls_db-data ).
|
||||
|
|
|
@ -49,13 +49,13 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
METHOD constructor.
|
||||
|
||||
mo_http_post = val.
|
||||
mo_app = NEW #( ).
|
||||
CREATE OBJECT mo_app.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory_by_frontend.
|
||||
|
||||
result = NEW #( mo_http_post ).
|
||||
CREATE OBJECT result EXPORTING VAL = mo_http_post.
|
||||
|
||||
IF mo_http_post->mo_action->mo_app->mo_app IS BOUND.
|
||||
result->mo_app = mo_http_post->mo_action->mo_app.
|
||||
|
@ -77,14 +77,19 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD factory_first_start.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA temp1 TYPE REF TO z2ui5_if_app.
|
||||
DATA li_app LIKE temp1.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
result = NEW #( mo_http_post ).
|
||||
CREATE OBJECT result EXPORTING VAL = mo_http_post.
|
||||
|
||||
IF mo_http_post->ms_request-s_control-app_start_draft IS NOT INITIAL.
|
||||
TRY.
|
||||
|
||||
DATA(lo_app) = z2ui5_cl_core_app=>db_load( mo_http_post->ms_request-s_control-app_start_draft ).
|
||||
|
||||
lo_app = z2ui5_cl_core_app=>db_load( mo_http_post->ms_request-s_control-app_start_draft ).
|
||||
result->mo_app = lo_app.
|
||||
result->ms_actual-check_on_navigated = abap_true.
|
||||
result->ms_next-s_set-set_app_state_active = abap_true.
|
||||
|
@ -99,12 +104,16 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
|
||||
CREATE OBJECT result->mo_app->mo_app TYPE (mo_http_post->ms_request-s_control-app_start).
|
||||
|
||||
DATA(li_app) = CAST z2ui5_if_app( result->mo_app->mo_app ).
|
||||
|
||||
temp1 ?= result->mo_app->mo_app.
|
||||
|
||||
li_app = temp1.
|
||||
li_app->id_draft = result->mo_app->ms_draft-id.
|
||||
|
||||
result->ms_actual-check_on_navigated = abap_true.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = |App with name { mo_http_post->ms_request-s_control-app_start } not found...|
|
||||
|
@ -121,13 +130,17 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD factory_stack_leave.
|
||||
DATA lo_draft TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA ls_draft TYPE z2ui5_if_types=>ty_s_draft.
|
||||
|
||||
result = prepare_app_stack( ms_next-o_app_leave ).
|
||||
|
||||
" check for new app?
|
||||
TRY.
|
||||
DATA(lo_draft) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
DATA(ls_draft) = lo_draft->read_info( ms_next-o_app_leave->id_draft ).
|
||||
|
||||
CREATE OBJECT lo_draft TYPE z2ui5_cl_core_srv_draft.
|
||||
|
||||
ls_draft = lo_draft->read_info( ms_next-o_app_leave->id_draft ).
|
||||
CATCH cx_root.
|
||||
result->mo_app->ms_draft-id_prev_app_stack = mo_app->ms_draft-id_prev_app_stack.
|
||||
RETURN.
|
||||
|
@ -142,27 +155,41 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD factory_system_startup.
|
||||
DATA temp2 TYPE REF TO z2ui5_if_app.
|
||||
DATA li_app LIKE temp2.
|
||||
|
||||
result = NEW #( mo_http_post ).
|
||||
CREATE OBJECT result EXPORTING VAL = mo_http_post.
|
||||
|
||||
result->mo_app->ms_draft-id = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
result->ms_actual-check_on_navigated = abap_true.
|
||||
result->mo_app->mo_app = z2ui5_cl_app_startup=>factory( ).
|
||||
|
||||
DATA(li_app) = CAST z2ui5_if_app( result->mo_app->mo_app ).
|
||||
|
||||
temp2 ?= result->mo_app->mo_app.
|
||||
|
||||
li_app = temp2.
|
||||
li_app->id_draft = result->mo_app->ms_draft-id.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD prepare_app_stack.
|
||||
DATA temp3 TYPE string.
|
||||
DATA lv_action TYPE string.
|
||||
DATA temp1 LIKE LINE OF ms_next-s_set-s_follow_up_action-custom_js.
|
||||
DATA temp2 LIKE sy-tabix.
|
||||
DATA lv_dummy TYPE string.
|
||||
|
||||
mo_app->db_save( ).
|
||||
|
||||
val->id_draft = COND string( WHEN val->id_draft IS INITIAL
|
||||
THEN z2ui5_cl_util=>uuid_get_c32( )
|
||||
ELSE ms_next-o_app_leave->id_draft ).
|
||||
|
||||
result = NEW #( mo_http_post ).
|
||||
IF val->id_draft IS INITIAL.
|
||||
temp3 = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
ELSE.
|
||||
temp3 = ms_next-o_app_leave->id_draft.
|
||||
ENDIF.
|
||||
val->id_draft = temp3.
|
||||
|
||||
CREATE OBJECT result EXPORTING VAL = mo_http_post.
|
||||
TRY.
|
||||
result->mo_app = z2ui5_cl_core_app=>db_load_by_app( val ).
|
||||
CATCH cx_root.
|
||||
|
@ -182,8 +209,18 @@ CLASS z2ui5_cl_core_action IMPLEMENTATION.
|
|||
result->ms_next-s_set-s_popover-check_update_model = abap_false.
|
||||
|
||||
IF ms_next-s_set-s_follow_up_action IS NOT INITIAL.
|
||||
DATA(lv_action) = ms_next-s_set-s_follow_up_action-custom_js[ 1 ].
|
||||
SPLIT lv_action AT `.eB(['` INTO DATA(lv_dummy)
|
||||
|
||||
|
||||
|
||||
temp2 = sy-tabix.
|
||||
READ TABLE ms_next-s_set-s_follow_up_action-custom_js INDEX 1 INTO temp1.
|
||||
sy-tabix = temp2.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_action = temp1.
|
||||
|
||||
SPLIT lv_action AT `.eB(['` INTO lv_dummy
|
||||
result->ms_actual-event.
|
||||
SPLIT result->ms_actual-event AT `']` INTO result->ms_actual-event lv_dummy.
|
||||
ENDIF.
|
||||
|
|
|
@ -10,8 +10,11 @@ CLASS z2ui5_cl_core_action DEFINITION LOCAL FRIENDS ltcl_test.
|
|||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ).
|
||||
DATA(lo_action) = NEW z2ui5_cl_core_action( lo_http ) ##NEEDED.
|
||||
DATA lo_http TYPE REF TO z2ui5_cl_core_handler.
|
||||
DATA lo_action TYPE REF TO z2ui5_cl_core_action.
|
||||
CREATE OBJECT lo_http TYPE z2ui5_cl_core_handler EXPORTING VAL = ``.
|
||||
|
||||
CREATE OBJECT lo_action TYPE z2ui5_cl_core_action EXPORTING VAL = lo_http.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -60,33 +60,38 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD all_xml_stringify.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA x2 TYPE REF TO cx_root.
|
||||
DATA lo_dissolver TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA cx TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mt_attri app = mo_app.
|
||||
lo_model->attri_before_save( ).
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
||||
CATCH cx_root INTO DATA(x2).
|
||||
|
||||
CATCH cx_root INTO x2.
|
||||
TRY.
|
||||
|
||||
lo_model->attri_refs_update( ).
|
||||
|
||||
CLEAR mt_attri->*.
|
||||
|
||||
DATA(lo_dissolver) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
CREATE OBJECT lo_dissolver TYPE z2ui5_cl_core_srv_diss EXPORTING attri = mt_attri app = mo_app.
|
||||
|
||||
lo_dissolver->main( ).
|
||||
lo_dissolver->main( ).
|
||||
lo_model = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mt_attri app = mo_app.
|
||||
lo_model->attri_before_save( ).
|
||||
|
||||
result = z2ui5_cl_util=>xml_stringify( me ).
|
||||
|
||||
CATCH cx_root INTO DATA(cx).
|
||||
|
||||
CATCH cx_root INTO cx.
|
||||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -105,12 +110,16 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
METHOD db_load.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
DATA(ls_db) = lo_db->read_draft( id ).
|
||||
DATA lo_db TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA ls_db TYPE z2ui5_t_01.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
CREATE OBJECT lo_db TYPE z2ui5_cl_core_srv_draft.
|
||||
|
||||
ls_db = lo_db->read_draft( id ).
|
||||
result = all_xml_parse( ls_db-data ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = result->mt_attri app = result->mo_app.
|
||||
|
||||
lo_model->attri_after_load( ).
|
||||
|
||||
|
@ -118,27 +127,39 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
METHOD db_load_by_app.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
DATA(ls_db) = lo_db->read_draft( app->id_draft ).
|
||||
DATA lo_db TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA ls_db TYPE z2ui5_t_01.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
CREATE OBJECT lo_db TYPE z2ui5_cl_core_srv_draft.
|
||||
|
||||
ls_db = lo_db->read_draft( app->id_draft ).
|
||||
result = all_xml_parse( ls_db-data ).
|
||||
|
||||
result->mo_app = app.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = result->mt_attri
|
||||
app = result->mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = result->mt_attri app = result->mo_app.
|
||||
|
||||
lo_model->attri_refs_update( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD db_save.
|
||||
DATA temp1 TYPE REF TO z2ui5_if_app.
|
||||
DATA temp2 TYPE REF TO z2ui5_if_app.
|
||||
DATA lo_db TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
|
||||
IF mo_app IS BOUND.
|
||||
CAST z2ui5_if_app( mo_app )->id_draft = ms_draft-id.
|
||||
CAST z2ui5_if_app( mo_app )->check_initialized = abap_true.
|
||||
|
||||
temp1 ?= mo_app.
|
||||
temp1->id_draft = ms_draft-id.
|
||||
|
||||
temp2 ?= mo_app.
|
||||
temp2->check_initialized = abap_true.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_db) = NEW z2ui5_cl_core_srv_draft( ).
|
||||
|
||||
CREATE OBJECT lo_db TYPE z2ui5_cl_core_srv_draft.
|
||||
lo_db->create( draft = ms_draft
|
||||
model_xml = all_xml_stringify( ) ).
|
||||
|
||||
|
@ -146,7 +167,8 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
METHOD model_json_parse.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
DATA lo_json_mapper TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
CREATE OBJECT lo_json_mapper TYPE z2ui5_cl_core_srv_json.
|
||||
lo_json_mapper->model_front_to_back( view = iv_view
|
||||
t_attri = mt_attri
|
||||
model = io_model ).
|
||||
|
@ -155,7 +177,8 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION.
|
|||
|
||||
METHOD model_json_stringify.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
DATA lo_json_mapper TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
CREATE OBJECT lo_json_mapper TYPE z2ui5_cl_core_srv_json.
|
||||
result = lo_json_mapper->model_back_to_front( mt_attri ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,7 +10,8 @@ CLASS z2ui5_cl_core_app DEFINITION LOCAL FRIENDS ltcl_test.
|
|||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_action) = NEW z2ui5_cl_core_app( ) ##NEEDED.
|
||||
DATA lo_action TYPE REF TO z2ui5_cl_core_app.
|
||||
CREATE OBJECT lo_action TYPE z2ui5_cl_core_app.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
@ -41,22 +42,33 @@ CLASS ltcl_test_db IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD test_db_save.
|
||||
DATA lo_app_user TYPE REF TO ltcl_test_db.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_app_db TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA temp3 TYPE REF TO ltcl_test_db.
|
||||
DATA lo_app_user_db LIKE temp3.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_app_user) = NEW ltcl_test_db( ).
|
||||
|
||||
CREATE OBJECT lo_app_user TYPE ltcl_test_db.
|
||||
lo_app_user->mv_value = `my value`.
|
||||
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->ms_draft-id = `TEST_ID`.
|
||||
lo_app->mo_app = lo_app_user.
|
||||
|
||||
lo_app->db_save( ).
|
||||
|
||||
DATA(lo_app_db) = z2ui5_cl_core_app=>db_load( `TEST_ID` ).
|
||||
DATA(lo_app_user_db) = CAST ltcl_test_db( lo_app_db->mo_app ).
|
||||
|
||||
lo_app_db = z2ui5_cl_core_app=>db_load( `TEST_ID` ).
|
||||
|
||||
temp3 ?= lo_app_db->mo_app.
|
||||
|
||||
lo_app_user_db = temp3.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lo_app_user->mv_value
|
||||
act = lo_app_user_db->mv_value ).
|
||||
|
|
|
@ -33,29 +33,37 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~get.
|
||||
DATA lo_params TYPE REF TO z2ui5_if_ajson.
|
||||
DATA temp1 LIKE LINE OF lo_params->mt_json_tree.
|
||||
DATA lr_comp LIKE REF TO temp1.
|
||||
DATA temp2 TYPE z2ui5_if_types=>ty_s_name_value.
|
||||
|
||||
result = VALUE #( event = mo_action->ms_actual-event
|
||||
check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad
|
||||
t_event_arg = mo_action->ms_actual-t_event_arg
|
||||
s_draft = CORRESPONDING #( mo_action->mo_app->ms_draft )
|
||||
check_on_navigated = mo_action->ms_actual-check_on_navigated
|
||||
s_config = CORRESPONDING #( mo_action->mo_http_post->ms_request-s_front )
|
||||
r_event_data = mo_action->ms_actual-r_data
|
||||
).
|
||||
CLEAR result.
|
||||
result-event = mo_action->ms_actual-event.
|
||||
result-check_launchpad_active = mo_action->mo_http_post->ms_request-s_control-check_launchpad.
|
||||
result-t_event_arg = mo_action->ms_actual-t_event_arg.
|
||||
MOVE-CORRESPONDING mo_action->mo_app->ms_draft TO result-s_draft.
|
||||
result-check_on_navigated = mo_action->ms_actual-check_on_navigated.
|
||||
MOVE-CORRESPONDING mo_action->mo_http_post->ms_request-s_front TO result-s_config.
|
||||
result-r_event_data = mo_action->ms_actual-r_data.
|
||||
|
||||
TRY.
|
||||
DATA(lo_params) = mo_action->mo_http_post->ms_request-s_front-o_comp_data->slice( `/startupParameters/` ).
|
||||
|
||||
lo_params = mo_action->mo_http_post->ms_request-s_front-o_comp_data->slice( `/startupParameters/` ).
|
||||
IF lo_params IS NOT BOUND.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
|
||||
LOOP AT lo_params->mt_json_tree
|
||||
REFERENCE INTO DATA(lr_comp)
|
||||
REFERENCE INTO lr_comp
|
||||
WHERE name = `1`.
|
||||
|
||||
INSERT VALUE #( n = shift_left( val = shift_right( val = lr_comp->path
|
||||
sub = `/` )
|
||||
sub = `/` )
|
||||
v = lr_comp->value ) INTO TABLE result-t_comp_params.
|
||||
|
||||
CLEAR temp2.
|
||||
temp2-n = shift_left( val = shift_right( val = lr_comp->path sub = `/` ) sub = `/` ).
|
||||
temp2-v = lr_comp->value.
|
||||
INSERT temp2 INTO TABLE result-t_comp_params.
|
||||
ENDLOOP.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -63,55 +71,153 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~get_event_arg.
|
||||
DATA temp3 LIKE LINE OF mo_action->ms_actual-t_event_arg.
|
||||
DATA temp4 LIKE sy-tabix.
|
||||
|
||||
TRY.
|
||||
result = mo_action->ms_actual-t_event_arg[ v ].
|
||||
|
||||
|
||||
temp4 = sy-tabix.
|
||||
READ TABLE mo_action->ms_actual-t_event_arg INDEX v INTO temp3.
|
||||
sy-tabix = temp4.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
result = temp3.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~get_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA temp5 TYPE REF TO z2ui5_if_app.
|
||||
DATA temp6 TYPE REF TO z2ui5_if_app.
|
||||
|
||||
IF id IS NOT INITIAL.
|
||||
DATA(lo_app) = z2ui5_cl_core_app=>db_load( id ).
|
||||
result = CAST #( lo_app->mo_app ).
|
||||
|
||||
lo_app = z2ui5_cl_core_app=>db_load( id ).
|
||||
|
||||
temp5 ?= lo_app->mo_app.
|
||||
result = temp5.
|
||||
ELSE.
|
||||
result = CAST #( mo_action->mo_app->mo_app ).
|
||||
|
||||
temp6 ?= mo_action->mo_app->mo_app.
|
||||
result = temp6.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~message_box_display.
|
||||
DATA lt_msg TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA lv_text TYPE z2ui5_cl_util=>ty_s_msg-text.
|
||||
DATA temp1 LIKE LINE OF lt_msg.
|
||||
DATA temp2 LIKE sy-tabix.
|
||||
DATA lv_type TYPE string.
|
||||
DATA temp3 LIKE LINE OF lt_msg.
|
||||
DATA temp4 LIKE sy-tabix.
|
||||
DATA temp7 TYPE string.
|
||||
DATA temp5 LIKE LINE OF lt_msg.
|
||||
DATA temp6 LIKE sy-tabix.
|
||||
DATA lv_title LIKE temp7.
|
||||
DATA lv_details TYPE string.
|
||||
DATA temp8 LIKE LINE OF lt_msg.
|
||||
DATA lr_msg LIKE REF TO temp8.
|
||||
DATA temp9 TYPE string.
|
||||
DATA temp12 LIKE LINE OF lt_msg.
|
||||
DATA temp13 LIKE sy-tabix.
|
||||
DATA temp10 LIKE LINE OF lt_msg.
|
||||
DATA temp11 LIKE sy-tabix.
|
||||
|
||||
IF z2ui5_cl_util=>rtti_check_clike( text ) = abap_false.
|
||||
DATA(lt_msg) = z2ui5_cl_util=>msg_get_t( text ).
|
||||
IF lines( lt_msg ) = 1.
|
||||
DATA(lv_text) = lt_msg[ 1 ]-text.
|
||||
|
||||
DATA(lv_type) = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ).
|
||||
lt_msg = z2ui5_cl_util=>msg_get_t( text ).
|
||||
IF lines( lt_msg ) = 1.
|
||||
|
||||
|
||||
|
||||
temp2 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp1.
|
||||
sy-tabix = temp2.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_text = temp1-text.
|
||||
|
||||
|
||||
|
||||
|
||||
temp4 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp3.
|
||||
sy-tabix = temp4.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_type = z2ui5_cl_util=>ui5_get_msg_type( temp3-type ).
|
||||
lv_type = to_lower( lv_type ).
|
||||
DATA(lv_title) = SWITCH #( lt_msg[ 1 ]-type
|
||||
WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success`
|
||||
WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
|
||||
|
||||
|
||||
temp6 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp5.
|
||||
sy-tabix = temp6.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
CASE temp5-type.
|
||||
WHEN 'E'.
|
||||
temp7 = `Error`.
|
||||
WHEN 'S'.
|
||||
temp7 = `Success`.
|
||||
WHEN `W`.
|
||||
temp7 = `Warning`.
|
||||
WHEN OTHERS.
|
||||
temp7 = `Information`.
|
||||
ENDCASE.
|
||||
|
||||
lv_title = temp7.
|
||||
|
||||
ELSEIF lines( lt_msg ) > 1.
|
||||
lv_text = | { lines( lt_msg ) } Messages found: |.
|
||||
DATA(lv_details) = `<ul>`.
|
||||
LOOP AT lt_msg REFERENCE INTO DATA(lr_msg).
|
||||
|
||||
lv_details = `<ul>`.
|
||||
|
||||
|
||||
LOOP AT lt_msg REFERENCE INTO lr_msg.
|
||||
lv_details = |{ lv_details }<li>{ lr_msg->text }</li>|.
|
||||
ENDLOOP.
|
||||
lv_details = |{ lv_details }</ul>|.
|
||||
IF title IS INITIAL.
|
||||
lv_title = SWITCH #( lt_msg[ 1 ]-type
|
||||
WHEN 'E' THEN `Error`
|
||||
WHEN 'S' THEN `Success`
|
||||
WHEN `W` THEN `Warning`
|
||||
ELSE `Information` ).
|
||||
|
||||
|
||||
|
||||
temp13 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp12.
|
||||
sy-tabix = temp13.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_type = z2ui5_cl_util=>ui5_get_msg_type( lt_msg[ 1 ]-type ).
|
||||
CASE temp12-type.
|
||||
WHEN 'E'.
|
||||
temp9 = `Error`.
|
||||
WHEN 'S'.
|
||||
temp9 = `Success`.
|
||||
WHEN `W`.
|
||||
temp9 = `Warning`.
|
||||
WHEN OTHERS.
|
||||
temp9 = `Information`.
|
||||
ENDCASE.
|
||||
lv_title = temp9.
|
||||
ENDIF.
|
||||
|
||||
|
||||
temp11 = sy-tabix.
|
||||
READ TABLE lt_msg INDEX 1 INTO temp10.
|
||||
sy-tabix = temp11.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
lv_type = z2ui5_cl_util=>ui5_get_msg_type( temp10-type ).
|
||||
ELSE.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -133,39 +239,39 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
lv_type = 'show'.
|
||||
ENDIF.
|
||||
|
||||
mo_action->ms_next-s_set-s_msg_box = VALUE #( text = lv_text
|
||||
type = lv_type
|
||||
title = lv_title
|
||||
styleclass = styleclass
|
||||
onclose = onclose
|
||||
actions = actions
|
||||
emphasizedaction = emphasizedaction
|
||||
initialfocus = initialfocus
|
||||
textdirection = textdirection
|
||||
icon = icon
|
||||
details = lv_details
|
||||
closeonnavigation = closeonnavigation
|
||||
).
|
||||
CLEAR mo_action->ms_next-s_set-s_msg_box.
|
||||
mo_action->ms_next-s_set-s_msg_box-text = lv_text.
|
||||
mo_action->ms_next-s_set-s_msg_box-type = lv_type.
|
||||
mo_action->ms_next-s_set-s_msg_box-title = lv_title.
|
||||
mo_action->ms_next-s_set-s_msg_box-styleclass = styleclass.
|
||||
mo_action->ms_next-s_set-s_msg_box-onclose = onclose.
|
||||
mo_action->ms_next-s_set-s_msg_box-actions = actions.
|
||||
mo_action->ms_next-s_set-s_msg_box-emphasizedaction = emphasizedaction.
|
||||
mo_action->ms_next-s_set-s_msg_box-initialfocus = initialfocus.
|
||||
mo_action->ms_next-s_set-s_msg_box-textdirection = textdirection.
|
||||
mo_action->ms_next-s_set-s_msg_box-icon = icon.
|
||||
mo_action->ms_next-s_set-s_msg_box-details = lv_details.
|
||||
mo_action->ms_next-s_set-s_msg_box-closeonnavigation = closeonnavigation.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~message_toast_display.
|
||||
|
||||
mo_action->ms_next-s_set-s_msg_toast = VALUE #( text = text
|
||||
duration = duration
|
||||
width = width
|
||||
my = my
|
||||
at = at
|
||||
of = of
|
||||
offset = offset
|
||||
collision = collision
|
||||
onclose = onclose
|
||||
autoclose = autoclose
|
||||
animationtimingfunction = animationtimingfunction
|
||||
animationduration = animationduration
|
||||
closeonbrowsernavigation = closeonbrowsernavigation
|
||||
class = class
|
||||
).
|
||||
CLEAR mo_action->ms_next-s_set-s_msg_toast.
|
||||
mo_action->ms_next-s_set-s_msg_toast-text = text.
|
||||
mo_action->ms_next-s_set-s_msg_toast-duration = duration.
|
||||
mo_action->ms_next-s_set-s_msg_toast-width = width.
|
||||
mo_action->ms_next-s_set-s_msg_toast-my = my.
|
||||
mo_action->ms_next-s_set-s_msg_toast-at = at.
|
||||
mo_action->ms_next-s_set-s_msg_toast-of = of.
|
||||
mo_action->ms_next-s_set-s_msg_toast-offset = offset.
|
||||
mo_action->ms_next-s_set-s_msg_toast-collision = collision.
|
||||
mo_action->ms_next-s_set-s_msg_toast-onclose = onclose.
|
||||
mo_action->ms_next-s_set-s_msg_toast-autoclose = autoclose.
|
||||
mo_action->ms_next-s_set-s_msg_toast-animationtimingfunction = animationtimingfunction.
|
||||
mo_action->ms_next-s_set-s_msg_toast-animationduration = animationduration.
|
||||
mo_action->ms_next-s_set-s_msg_toast-closeonbrowsernavigation = closeonbrowsernavigation.
|
||||
mo_action->ms_next-s_set-s_msg_toast-class = class.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -270,7 +376,8 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~popup_destroy.
|
||||
|
||||
mo_action->ms_next-s_set-s_popup = VALUE #( check_destroy = abap_true ).
|
||||
CLEAR mo_action->ms_next-s_set-s_popup.
|
||||
mo_action->ms_next-s_set-s_popup-check_destroy = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -309,49 +416,65 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~_bind.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp12 TYPE z2ui5_if_core_types=>ty_s_bind_config.
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = mo_action->mo_app.
|
||||
|
||||
CLEAR temp12.
|
||||
temp12-path_only = path.
|
||||
temp12-custom_filter = custom_filter.
|
||||
temp12-custom_mapper = custom_mapper.
|
||||
temp12-tab = z2ui5_cl_util=>conv_get_as_data_ref( tab ).
|
||||
temp12-tab_index = tab_index.
|
||||
temp12-switch_default_model = switch_default_model.
|
||||
result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way
|
||||
config = VALUE #( path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_mapper = custom_mapper
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index
|
||||
switch_default_model = switch_default_model ) ).
|
||||
config = temp12 ).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~_bind_edit.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp13 TYPE z2ui5_if_core_types=>ty_s_bind_config.
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = mo_action->mo_app.
|
||||
|
||||
CLEAR temp13.
|
||||
temp13-path_only = path.
|
||||
temp13-custom_filter = custom_filter.
|
||||
temp13-custom_filter_back = custom_filter_back.
|
||||
temp13-custom_mapper = custom_mapper.
|
||||
temp13-custom_mapper_back = custom_mapper_back.
|
||||
temp13-tab = z2ui5_cl_util=>conv_get_as_data_ref( tab ).
|
||||
temp13-tab_index = tab_index.
|
||||
temp13-switch_default_model = switch_default_model.
|
||||
result = lo_bind->main( val = z2ui5_cl_util=>conv_get_as_data_ref( val )
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
config = VALUE #( path_only = path
|
||||
custom_filter = custom_filter
|
||||
custom_filter_back = custom_filter_back
|
||||
custom_mapper = custom_mapper
|
||||
custom_mapper_back = custom_mapper_back
|
||||
tab = z2ui5_cl_util=>conv_get_as_data_ref( tab )
|
||||
tab_index = tab_index
|
||||
switch_default_model = switch_default_model ) ).
|
||||
config = temp13 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~_bind_local.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_action->mo_app ).
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp14 TYPE z2ui5_if_core_types=>ty_s_bind_config.
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = mo_action->mo_app.
|
||||
|
||||
CLEAR temp14.
|
||||
temp14-path_only = path.
|
||||
temp14-custom_mapper = custom_mapper.
|
||||
temp14-custom_filter = custom_filter.
|
||||
temp14-switch_default_model = switch_default_model.
|
||||
result = lo_bind->main_local( val = val
|
||||
config = VALUE #( path_only = path
|
||||
custom_mapper = custom_mapper
|
||||
custom_filter = custom_filter
|
||||
switch_default_model = switch_default_model ) ).
|
||||
config = temp14 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~_event.
|
||||
|
||||
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA lo_ui5 TYPE REF TO z2ui5_cl_core_srv_event.
|
||||
CREATE OBJECT lo_ui5 TYPE z2ui5_cl_core_srv_event.
|
||||
result = lo_ui5->get_event( val = val
|
||||
t_arg = t_arg
|
||||
s_cnt = s_ctrl ).
|
||||
|
@ -365,7 +488,8 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~_event_client.
|
||||
|
||||
DATA(lo_ui5) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA lo_ui5 TYPE REF TO z2ui5_cl_core_srv_event.
|
||||
CREATE OBJECT lo_ui5 TYPE z2ui5_cl_core_srv_event.
|
||||
result = lo_ui5->get_event_client( val = val
|
||||
t_arg = t_arg ).
|
||||
|
||||
|
@ -392,7 +516,13 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~set_session_stateful.
|
||||
|
||||
DATA(lv_check_sticky) = CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky.
|
||||
DATA temp15 TYPE REF TO z2ui5_if_app.
|
||||
DATA lv_check_sticky LIKE temp15->check_sticky.
|
||||
DATA temp16 TYPE REF TO z2ui5_if_app.
|
||||
DATA temp17 TYPE REF TO z2ui5_if_app.
|
||||
temp15 ?= mo_action->mo_app->mo_app.
|
||||
|
||||
lv_check_sticky = temp15->check_sticky.
|
||||
IF lv_check_sticky = abap_true AND val = abap_true.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -400,10 +530,14 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
ENDIF.
|
||||
IF val = abap_true.
|
||||
mo_action->ms_next-s_set-s_stateful-active = 1.
|
||||
CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky = abap_true.
|
||||
|
||||
temp16 ?= mo_action->mo_app->mo_app.
|
||||
temp16->check_sticky = abap_true.
|
||||
ELSE.
|
||||
mo_action->ms_next-s_set-s_stateful-active = 0.
|
||||
CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky = abap_false.
|
||||
|
||||
temp17 ?= mo_action->mo_app->mo_app.
|
||||
temp17->check_sticky = abap_false.
|
||||
ENDIF.
|
||||
mo_action->ms_next-s_set-s_stateful-switched = abap_true.
|
||||
|
||||
|
@ -411,27 +545,38 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~check_app_prev_stack.
|
||||
|
||||
DATA(ls_get) = z2ui5_if_client~get( ).
|
||||
result = xsdbool( ls_get-s_draft-id_prev_app_stack IS NOT INITIAL ).
|
||||
DATA ls_get TYPE z2ui5_if_types=>ty_s_get.
|
||||
DATA temp1 TYPE xsdboolean.
|
||||
ls_get = z2ui5_if_client~get( ).
|
||||
|
||||
temp1 = boolc( ls_get-s_draft-id_prev_app_stack IS NOT INITIAL ).
|
||||
result = temp1.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~check_on_init.
|
||||
|
||||
result = xsdbool( CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_initialized = abap_false ).
|
||||
DATA temp18 TYPE REF TO z2ui5_if_app.
|
||||
DATA temp2 TYPE xsdboolean.
|
||||
temp18 ?= mo_action->mo_app->mo_app.
|
||||
|
||||
temp2 = boolc( temp18->check_initialized = abap_false ).
|
||||
result = temp2.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~check_on_navigated.
|
||||
|
||||
DATA(ls_get) = z2ui5_if_client~get( ).
|
||||
DATA ls_get TYPE z2ui5_if_types=>ty_s_get.
|
||||
ls_get = z2ui5_if_client~get( ).
|
||||
result = ls_get-check_on_navigated.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_client~get_app_prev.
|
||||
|
||||
DATA(ls_get) = z2ui5_if_client~get( ).
|
||||
DATA ls_get TYPE z2ui5_if_types=>ty_s_get.
|
||||
ls_get = z2ui5_if_client~get( ).
|
||||
result = z2ui5_if_client~get_app( ls_get-s_draft-id_prev_app ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,9 +10,14 @@ CLASS z2ui5_cl_core_client DEFINITION LOCAL FRIENDS ltcl_test_client.
|
|||
CLASS ltcl_test_client IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_http) = NEW z2ui5_cl_core_handler( `` ).
|
||||
DATA(lo_action) = NEW z2ui5_cl_core_action( lo_http ).
|
||||
DATA(lo_client) = NEW z2ui5_cl_core_client( lo_action ) ##NEEDED.
|
||||
DATA lo_http TYPE REF TO z2ui5_cl_core_handler.
|
||||
DATA lo_action TYPE REF TO z2ui5_cl_core_action.
|
||||
DATA lo_client TYPE REF TO z2ui5_cl_core_client.
|
||||
CREATE OBJECT lo_http TYPE z2ui5_cl_core_handler EXPORTING VAL = ``.
|
||||
|
||||
CREATE OBJECT lo_action TYPE z2ui5_cl_core_action EXPORTING VAL = lo_http.
|
||||
|
||||
CREATE OBJECT lo_client TYPE z2ui5_cl_core_client EXPORTING ACTION = lo_action.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -37,7 +37,7 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
METHOD constructor.
|
||||
|
||||
mv_request_json = val.
|
||||
mo_action = NEW z2ui5_cl_core_action( me ).
|
||||
CREATE OBJECT mo_action TYPE z2ui5_cl_core_action EXPORTING VAL = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -45,45 +45,55 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
|
||||
main_begin( ).
|
||||
DO.
|
||||
IF main_process( ).
|
||||
IF main_process( ) IS NOT INITIAL.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
ENDDO.
|
||||
|
||||
result = VALUE #( body = mv_response
|
||||
s_stateful = ms_response-s_front-params-s_stateful
|
||||
).
|
||||
CLEAR result.
|
||||
result-body = mv_response.
|
||||
result-s_stateful = ms_response-s_front-params-s_stateful.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main_begin.
|
||||
DATA lo_json_mapper TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
DATA temp1 TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
|
||||
CREATE OBJECT lo_json_mapper TYPE z2ui5_cl_core_srv_json.
|
||||
ms_request = lo_json_mapper->request_json_to_abap( mv_request_json ).
|
||||
|
||||
IF ms_request-s_front-id IS NOT INITIAL.
|
||||
mo_action = mo_action->factory_by_frontend( ).
|
||||
|
||||
ELSEIF ms_request-s_control-app_start IS NOT INITIAL.
|
||||
NEW z2ui5_cl_core_srv_draft( )->cleanup( ).
|
||||
|
||||
CREATE OBJECT temp1 TYPE z2ui5_cl_core_srv_draft.
|
||||
temp1->cleanup( ).
|
||||
mo_action = mo_action->factory_first_start( ).
|
||||
|
||||
ELSE.
|
||||
mo_action = mo_action->factory_system_startup( ).
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
ASSERT x->get_text( ) = 1.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main_end.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA lo_json_mapper TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
DATA temp2 TYPE REF TO z2ui5_if_app.
|
||||
|
||||
ms_response = VALUE #( s_front-params = mo_action->ms_next-s_set
|
||||
s_front-id = mo_action->mo_app->ms_draft-id
|
||||
s_front-app = z2ui5_cl_util=>rtti_get_classname_by_ref( mo_action->mo_app->mo_app )
|
||||
).
|
||||
CLEAR ms_response.
|
||||
ms_response-s_front-params = mo_action->ms_next-s_set.
|
||||
ms_response-s_front-id = mo_action->mo_app->ms_draft-id.
|
||||
ms_response-s_front-app = z2ui5_cl_util=>rtti_get_classname_by_ref( mo_action->mo_app->mo_app ).
|
||||
|
||||
IF ms_response-s_front-params-s_view-check_update_model = abap_true
|
||||
OR ms_response-s_front-params-s_view_nest-check_update_model = abap_true
|
||||
|
@ -96,8 +106,8 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
OR ms_response-s_front-params-s_popup-xml IS NOT INITIAL
|
||||
OR ms_response-s_front-params-s_popover-xml IS NOT INITIAL.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_action->mo_app->mt_attri
|
||||
app = mo_action->mo_app->mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mo_action->mo_app->mt_attri app = mo_action->mo_app->mo_app.
|
||||
lo_model->attri_refs_update( ).
|
||||
ms_response-model = mo_action->mo_app->model_json_stringify( ).
|
||||
|
||||
|
@ -105,22 +115,33 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
ms_response-model = `{}`.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_json_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
|
||||
CREATE OBJECT lo_json_mapper TYPE z2ui5_cl_core_srv_json.
|
||||
mv_response = lo_json_mapper->response_abap_to_json( ms_response ).
|
||||
|
||||
CLEAR mo_action->ms_next.
|
||||
|
||||
IF CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky = abap_false.
|
||||
|
||||
temp2 ?= mo_action->mo_app->mo_app.
|
||||
IF temp2->check_sticky = abap_false.
|
||||
mo_action->mo_app->db_save( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main_process.
|
||||
DATA li_client TYPE REF TO z2ui5_cl_core_client.
|
||||
DATA temp3 TYPE REF TO z2ui5_if_app.
|
||||
DATA li_app LIKE temp3.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(li_client) = NEW z2ui5_cl_core_client( mo_action ).
|
||||
DATA(li_app) = CAST z2ui5_if_app( mo_action->mo_app->mo_app ).
|
||||
|
||||
CREATE OBJECT li_client TYPE z2ui5_cl_core_client EXPORTING ACTION = mo_action.
|
||||
|
||||
temp3 ?= mo_action->mo_app->mo_app.
|
||||
|
||||
li_app = temp3.
|
||||
|
||||
IF li_app->check_sticky = abap_false.
|
||||
ROLLBACK WORK.
|
||||
|
@ -141,7 +162,8 @@ CLASS z2ui5_cl_core_handler IMPLEMENTATION.
|
|||
check_go_client = abap_true.
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
ASSERT x->get_text( ) = 1.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,13 +10,19 @@ CLASS z2ui5_cl_core_handler DEFINITION LOCAL FRIENDS ltcl_test_handler_post.
|
|||
|
||||
CLASS ltcl_test_handler_post IMPLEMENTATION.
|
||||
METHOD load_startup_app.
|
||||
DATA lv_payload TYPE string.
|
||||
DATA lo_post TYPE REF TO z2ui5_cl_core_handler.
|
||||
DATA temp4 TYPE REF TO z2ui5_cl_app_startup.
|
||||
DATA lo_startup LIKE temp4.
|
||||
|
||||
IF sy-sysid = 'ABC'.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_payload) = `{"S_FRONT":{"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":""}}`.
|
||||
DATA(lo_post) = NEW z2ui5_cl_core_handler( lv_payload ).
|
||||
|
||||
lv_payload = `{"S_FRONT":{"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":""}}`.
|
||||
|
||||
CREATE OBJECT lo_post TYPE z2ui5_cl_core_handler EXPORTING VAL = lv_payload.
|
||||
lo_post->main_begin( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound( lo_post->mo_action ).
|
||||
|
@ -27,7 +33,10 @@ CLASS ltcl_test_handler_post IMPLEMENTATION.
|
|||
cl_abap_unit_assert=>assert_equals( exp = `PATHNAME`
|
||||
act = lo_post->ms_request-s_front-pathname ).
|
||||
|
||||
DATA(lo_startup) = CAST z2ui5_cl_app_startup( lo_post->mo_action->mo_app->mo_app ) ##NEEDED.
|
||||
|
||||
temp4 ?= lo_post->mo_action->mo_app->mo_app.
|
||||
|
||||
lo_startup = temp4.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -43,13 +43,17 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
||||
METHOD attri_after_load.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
|
||||
DATA temp1 LIKE LINE OF mt_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp1.
|
||||
FIELD-SYMBOLS <val> TYPE data.
|
||||
LOOP AT mt_attri->* REFERENCE INTO lr_attri.
|
||||
TRY.
|
||||
lr_attri->r_ref = attri_get_val_ref( lr_attri->name ).
|
||||
lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ).
|
||||
|
||||
IF lr_attri->srtti_data IS NOT INITIAL.
|
||||
ASSIGN lr_attri->r_ref->* TO FIELD-SYMBOL(<val>).
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO <val>.
|
||||
<val> = z2ui5_cl_util=>xml_srtti_parse( lr_attri->srtti_data ).
|
||||
CLEAR lr_attri->srtti_data.
|
||||
ENDIF.
|
||||
|
@ -62,7 +66,12 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
METHOD attri_before_save.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
|
||||
DATA temp2 LIKE LINE OF mt_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp2.
|
||||
FIELD-SYMBOLS <val_ref2> TYPE data.
|
||||
FIELD-SYMBOLS <val_ref> TYPE data.
|
||||
FIELD-SYMBOLS <val> TYPE data.
|
||||
LOOP AT mt_attri->* REFERENCE INTO lr_attri.
|
||||
|
||||
IF lr_attri->o_typedescr IS NOT BOUND.
|
||||
CONTINUE.
|
||||
|
@ -78,7 +87,8 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
lr_attri->o_typedescr->type_kind = cl_abap_classdescr=>typekind_num OR
|
||||
lr_attri->o_typedescr->type_kind = cl_abap_classdescr=>typekind_numeric
|
||||
).
|
||||
ASSIGN lr_attri->r_ref->* TO FIELD-SYMBOL(<val_ref2>).
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO <val_ref2>.
|
||||
CLEAR <val_ref2>.
|
||||
CLEAR lr_attri->r_ref.
|
||||
CONTINUE.
|
||||
|
@ -93,9 +103,11 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO FIELD-SYMBOL(<val_ref>).
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO <val_ref>.
|
||||
IF <val_ref> IS NOT INITIAL.
|
||||
ASSIGN <val_ref>->* TO FIELD-SYMBOL(<val>).
|
||||
|
||||
ASSIGN <val_ref>->* TO <val>.
|
||||
lr_attri->srtti_data = z2ui5_cl_util=>xml_srtti_stringify( <val> ).
|
||||
CLEAR <val>.
|
||||
ENDIF.
|
||||
|
@ -108,14 +120,27 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD attri_search_a_dissolve.
|
||||
DATA lo_dissolve TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp3 LIKE sy-subrc.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
FIELD-SYMBOLS <ls_attri> LIKE LINE OF mt_attri->*.
|
||||
DATA lv_name LIKE <ls_attri>-name.
|
||||
DATA temp4 LIKE sy-subrc.
|
||||
DATA temp5 LIKE LINE OF lt_attri.
|
||||
DATA temp6 LIKE sy-tabix.
|
||||
DATA temp7 LIKE LINE OF lt_attri.
|
||||
DATA temp8 LIKE sy-tabix.
|
||||
DATA temp9 LIKE LINE OF lt_attri.
|
||||
DATA temp10 LIKE sy-tabix.
|
||||
DATA temp11 LIKE sy-subrc.
|
||||
|
||||
result = attri_search( val ).
|
||||
IF result IS BOUND.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_dissolve) = NEW z2ui5_cl_core_srv_diss( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
CREATE OBJECT lo_dissolve TYPE z2ui5_cl_core_srv_diss EXPORTING attri = mt_attri app = mo_app.
|
||||
|
||||
DO 5 TIMES.
|
||||
|
||||
|
@ -126,7 +151,10 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF line_exists( mt_attri->*[ check_dissolved = abap_false ] ).
|
||||
|
||||
READ TABLE mt_attri->* WITH KEY check_dissolved = abap_false TRANSPORTING NO FIELDS.
|
||||
temp3 = sy-subrc.
|
||||
IF temp3 = 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
|
@ -134,7 +162,8 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
ENDDO.
|
||||
|
||||
""""" new
|
||||
DATA(lt_attri) = mt_attri->*.
|
||||
|
||||
lt_attri = mt_attri->*.
|
||||
DELETE lt_attri WHERE bind_type IS INITIAL.
|
||||
CLEAR mt_attri->*.
|
||||
DO 5 TIMES.
|
||||
|
@ -143,18 +172,50 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
result = attri_search( val ).
|
||||
IF result IS BOUND.
|
||||
LOOP AT mt_attri->* ASSIGNING FIELD-SYMBOL(<ls_attri>).
|
||||
DATA(lv_name) = <ls_attri>-name.
|
||||
IF line_exists( lt_attri[ name = lv_name ] ).
|
||||
<ls_attri>-bind_type = lt_attri[ name = lv_name ]-bind_type.
|
||||
<ls_attri>-name_client = lt_attri[ name = lv_name ]-name_client.
|
||||
<ls_attri>-view = lt_attri[ name = lv_name ]-view.
|
||||
|
||||
LOOP AT mt_attri->* ASSIGNING <ls_attri>.
|
||||
|
||||
lv_name = <ls_attri>-name.
|
||||
|
||||
READ TABLE lt_attri WITH KEY name = lv_name TRANSPORTING NO FIELDS.
|
||||
temp4 = sy-subrc.
|
||||
IF temp4 = 0.
|
||||
|
||||
|
||||
temp6 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = lv_name INTO temp5.
|
||||
sy-tabix = temp6.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<ls_attri>-bind_type = temp5-bind_type.
|
||||
|
||||
|
||||
temp8 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = lv_name INTO temp7.
|
||||
sy-tabix = temp8.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<ls_attri>-name_client = temp7-name_client.
|
||||
|
||||
|
||||
temp10 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = lv_name INTO temp9.
|
||||
sy-tabix = temp10.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<ls_attri>-view = temp9-view.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
IF line_exists( mt_attri->*[ check_dissolved = abap_false ] ).
|
||||
|
||||
READ TABLE mt_attri->* WITH KEY check_dissolved = abap_false TRANSPORTING NO FIELDS.
|
||||
temp11 = sy-subrc.
|
||||
IF temp11 = 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
|
@ -171,7 +232,8 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
METHOD attri_get_val_ref.
|
||||
|
||||
ASSIGN mo_app->(iv_path) TO FIELD-SYMBOL(<attri>).
|
||||
FIELD-SYMBOLS <attri> TYPE any.
|
||||
ASSIGN mo_app->(iv_path) TO <attri>.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
|
@ -188,7 +250,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
METHOD attri_refs_update.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri).
|
||||
DATA temp12 LIKE LINE OF mt_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp12.
|
||||
LOOP AT mt_attri->* REFERENCE INTO lr_attri.
|
||||
TRY.
|
||||
lr_attri->r_ref = attri_get_val_ref( lr_attri->name ).
|
||||
lr_attri->o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_attri->r_ref ).
|
||||
|
@ -207,7 +271,9 @@ CLASS z2ui5_cl_core_srv_attri IMPLEMENTATION.
|
|||
|
||||
METHOD attri_search.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
DATA temp13 LIKE LINE OF mt_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp13.
|
||||
LOOP AT mt_attri->* REFERENCE INTO lr_attri
|
||||
WHERE o_typedescr IS BOUND.
|
||||
|
||||
IF lr_attri->o_typedescr->kind <> cl_abap_typedescr=>kind_elem
|
||||
|
|
|
@ -37,19 +37,38 @@ CLASS z2ui5_cl_core_srv_attri DEFINITION LOCAL FRIENDS ltcl_test_search_attri.
|
|||
CLASS ltcl_test_search_attri IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app2( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app2.
|
||||
DATA lr_value TYPE REF TO data.
|
||||
DATA temp14 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp15 LIKE LINE OF temp14.
|
||||
DATA lt_attri LIKE temp14.
|
||||
DATA temp16 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA temp17 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app2.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = lr_value
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value )
|
||||
) ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
CLEAR temp14.
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
|
||||
temp15-r_ref = lr_value.
|
||||
temp15-o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value ).
|
||||
INSERT temp15 INTO TABLE temp14.
|
||||
|
||||
lt_attri = temp14.
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp16.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp16 app = lo_app_client.
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp17.
|
||||
|
||||
lr_attri = lo_model->attri_search_a_dissolve( temp17 ).
|
||||
|
||||
IF lr_attri->r_ref <> lr_value.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -59,19 +78,41 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
|
|||
|
||||
METHOD second_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app2( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app2.
|
||||
DATA lr_value TYPE REF TO data.
|
||||
DATA temp18 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA temp1 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp2 LIKE LINE OF temp1.
|
||||
DATA lt_attri LIKE temp1.
|
||||
DATA temp19 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA temp20 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lr_attri TYPE REF TO z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app2.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( r_ref = REF #( lo_app_client->mv_value )
|
||||
o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value )
|
||||
) ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp18.
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_search_a_dissolve( REF #( lo_app_client->mv_value ) ).
|
||||
CLEAR temp1.
|
||||
|
||||
temp2-r_ref = temp18.
|
||||
temp2-o_typedescr = cl_abap_datadescr=>describe_by_data_ref(
|
||||
lr_value ).
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
|
||||
lt_attri = temp1.
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp19.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp19 app = lo_app_client.
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp20.
|
||||
|
||||
lr_attri = lo_model->attri_search_a_dissolve( temp20 ).
|
||||
|
||||
IF lr_attri->r_ref <> lr_value.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -81,18 +122,56 @@ CLASS ltcl_test_search_attri IMPLEMENTATION.
|
|||
|
||||
METHOD third_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app2( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app2.
|
||||
DATA lr_value TYPE REF TO data.
|
||||
DATA temp21 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA temp3 LIKE REF TO lo_app_client->mo_app.
|
||||
DATA temp1 LIKE REF TO lo_app_client->mr_value2.
|
||||
DATA temp2 LIKE REF TO lo_app_client->mr_value.
|
||||
DATA temp4 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp5 LIKE LINE OF temp4.
|
||||
DATA lt_attri LIKE temp4.
|
||||
FIELD-SYMBOLS <temp22> TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA lr_attri LIKE REF TO <temp22>.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app2.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
lo_app_client->mo_app = NEW #( ).
|
||||
CREATE OBJECT lo_app_client->mo_app.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ( name = `1` r_ref = REF #( lo_app_client->mr_value ) )
|
||||
( name = `4` r_ref = REF #( lo_app_client->mr_value2 ) )
|
||||
( name = `2` r_ref = REF #( lo_app_client->mo_app ) )
|
||||
( name = `3` r_ref = REF #( lo_app_client->mv_value ) ) ).
|
||||
|
||||
DATA(lr_attri) = REF #( lt_attri[ r_ref = lr_value ] ).
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp21.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mo_app INTO temp3.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mr_value2 INTO temp1.
|
||||
|
||||
GET REFERENCE OF lo_app_client->mr_value INTO temp2.
|
||||
|
||||
CLEAR temp4.
|
||||
|
||||
temp5-name = `1`.
|
||||
temp5-r_ref = temp2.
|
||||
INSERT temp5 INTO TABLE temp4.
|
||||
temp5-name = `4`.
|
||||
temp5-r_ref = temp1.
|
||||
INSERT temp5 INTO TABLE temp4.
|
||||
temp5-name = `2`.
|
||||
temp5-r_ref = temp3.
|
||||
INSERT temp5 INTO TABLE temp4.
|
||||
temp5-name = `3`.
|
||||
temp5-r_ref = temp21.
|
||||
INSERT temp5 INTO TABLE temp4.
|
||||
|
||||
lt_attri = temp4.
|
||||
|
||||
|
||||
READ TABLE lt_attri WITH KEY r_ref = lr_value ASSIGNING <temp22>.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
|
||||
GET REFERENCE OF <temp22> INTO lr_attri.
|
||||
IF lr_attri->r_ref <> lr_value.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
ENDIF.
|
||||
|
@ -137,7 +216,7 @@ ENDCLASS.
|
|||
|
||||
CLASS ltcl_test_app3 IMPLEMENTATION.
|
||||
METHOD constructor.
|
||||
mo_app = NEW #( ).
|
||||
CREATE OBJECT mo_app.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -157,19 +236,35 @@ ENDCLASS.
|
|||
CLASS ltcl_test_get_attri IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app3( ).
|
||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app3.
|
||||
DATA lr_value TYPE REF TO data.
|
||||
DATA temp23 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri LIKE temp23.
|
||||
DATA temp24 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA lr_attri TYPE REF TO data.
|
||||
DATA temp25 LIKE REF TO lo_app_client->mv_value.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app3.
|
||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO lr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
CLEAR temp23.
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_get_val_ref( `MV_VALUE` ).
|
||||
lt_attri = temp23.
|
||||
|
||||
IF REF #( lo_app_client->mv_value ) <> lr_attri.
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp24.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp24 app = lo_app_client.
|
||||
|
||||
|
||||
lr_attri = lo_model->attri_get_val_ref( `MV_VALUE` ).
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp25.
|
||||
IF temp25 <> lr_attri.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -177,14 +272,26 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
|
|||
|
||||
METHOD second_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app3( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app3.
|
||||
DATA temp26 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri LIKE temp26.
|
||||
DATA temp27 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA lr_attri TYPE REF TO data.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app3.
|
||||
CREATE DATA lo_app_client->mr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_get_val_ref( `MR_VALUE->*` ).
|
||||
CLEAR temp26.
|
||||
|
||||
lt_attri = temp26.
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp27.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp27 app = lo_app_client.
|
||||
|
||||
|
||||
lr_attri = lo_model->attri_get_val_ref( `MR_VALUE->*` ).
|
||||
|
||||
IF lr_attri <> lo_app_client->mr_value.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -194,15 +301,30 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
|
|||
|
||||
METHOD third_test.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app3( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app3.
|
||||
DATA temp28 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri LIKE temp28.
|
||||
DATA temp29 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA lr_attri TYPE REF TO data.
|
||||
DATA temp30 LIKE REF TO lo_app_client->mo_app->mv_value.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app3.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MV_VALUE` ).
|
||||
CLEAR temp28.
|
||||
|
||||
IF REF #( lo_app_client->mo_app->mv_value ) <> lr_attri.
|
||||
lt_attri = temp28.
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp29.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp29 app = lo_app_client.
|
||||
|
||||
|
||||
lr_attri = lo_model->attri_get_val_ref( `MO_APP->MV_VALUE` ).
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mo_app->mv_value INTO temp30.
|
||||
IF temp30 <> lr_attri.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -210,14 +332,26 @@ CLASS ltcl_test_get_attri IMPLEMENTATION.
|
|||
|
||||
METHOD test4.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app3( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app3.
|
||||
DATA temp31 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri LIKE temp31.
|
||||
DATA temp32 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
DATA lr_attri TYPE REF TO data.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app3.
|
||||
CREATE DATA lo_app_client->mo_app->mr_value.
|
||||
|
||||
DATA(lt_attri) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = REF #( lt_attri )
|
||||
app = lo_app_client ).
|
||||
|
||||
DATA(lr_attri) = lo_model->attri_get_val_ref( `MO_APP->MR_VALUE->*` ).
|
||||
CLEAR temp31.
|
||||
|
||||
lt_attri = temp31.
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp32.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = temp32 app = lo_app_client.
|
||||
|
||||
|
||||
lr_attri = lo_model->attri_get_val_ref( `MO_APP->MR_VALUE->*` ).
|
||||
|
||||
IF lr_attri <> lo_app_client->mo_app->mr_value.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
|
|
@ -69,19 +69,26 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
DATA lr_ref_in TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
DATA lt_attri TYPE abap_component_tab.
|
||||
FIELD-SYMBOLS <comp> LIKE LINE OF lt_attri.
|
||||
DATA temp1 TYPE string.
|
||||
|
||||
ASSIGN ms_config-tab->* TO <tab>.
|
||||
ASSIGN <tab>[ ms_config-tab_index ] TO <row>.
|
||||
READ TABLE <tab> INDEX ms_config-tab_index ASSIGNING <row>.
|
||||
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_any( ms_config-tab ).
|
||||
LOOP AT lt_attri ASSIGNING FIELD-SYMBOL(<comp>).
|
||||
|
||||
lt_attri = z2ui5_cl_util=>rtti_get_t_attri_by_any( ms_config-tab ).
|
||||
|
||||
LOOP AT lt_attri ASSIGNING <comp>.
|
||||
|
||||
ASSIGN COMPONENT <comp>-name OF STRUCTURE <row> TO <ele>.
|
||||
ASSERT sy-subrc = 0.
|
||||
lr_ref_in = REF #( <ele> ).
|
||||
GET REFERENCE OF <ele> INTO lr_ref_in.
|
||||
|
||||
IF i_val = lr_ref_in.
|
||||
result = |{ iv_name }/{ shift_right( CONV string( ms_config-tab_index - 1 ) ) }/{ <comp>-name }|.
|
||||
|
||||
temp1 = ms_config-tab_index - 1.
|
||||
result = |{ iv_name }/{ shift_right( temp1 ) }/{ <comp>-name }|.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
|
@ -94,6 +101,8 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD check_raise_existing.
|
||||
DATA lv_name1 TYPE string.
|
||||
DATA lv_name2 TYPE string.
|
||||
|
||||
IF mr_attri->bind_type <> mv_type.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
|
@ -103,8 +112,10 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
|
||||
IF mr_attri->custom_mapper IS BOUND.
|
||||
|
||||
DATA(lv_name1) = z2ui5_cl_util=>rtti_get_classname_by_ref( mr_attri->custom_mapper ).
|
||||
DATA(lv_name2) = z2ui5_cl_util=>rtti_get_classname_by_ref( ms_config-custom_mapper ).
|
||||
|
||||
lv_name1 = z2ui5_cl_util=>rtti_get_classname_by_ref( mr_attri->custom_mapper ).
|
||||
|
||||
lv_name2 = z2ui5_cl_util=>rtti_get_classname_by_ref( ms_config-custom_mapper ).
|
||||
IF lv_name1 <> lv_name2.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -127,10 +138,17 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD check_raise_new.
|
||||
DATA temp2 TYPE REF TO if_serializable_object.
|
||||
DATA lo_dummy LIKE temp2.
|
||||
DATA temp3 TYPE REF TO if_serializable_object.
|
||||
DATA lo_dummy2 LIKE temp3.
|
||||
|
||||
IF mr_attri->custom_filter_back IS BOUND.
|
||||
TRY.
|
||||
DATA(lo_dummy) = CAST if_serializable_object( mr_attri->custom_filter_back ) ##NEEDED.
|
||||
|
||||
temp2 ?= mr_attri->custom_filter_back.
|
||||
|
||||
lo_dummy = temp2.
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -141,7 +159,10 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
|
||||
IF mr_attri->custom_filter_back IS BOUND.
|
||||
TRY.
|
||||
DATA(lo_dummy2) = CAST if_serializable_object( mr_attri->custom_mapper_back ) ##NEEDED.
|
||||
|
||||
temp3 ?= mr_attri->custom_mapper_back.
|
||||
|
||||
lo_dummy2 = temp3.
|
||||
CATCH cx_root.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
|
@ -153,16 +174,62 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD clear.
|
||||
DATA lv_path TYPE string.
|
||||
FIELD-SYMBOLS <temp4> LIKE LINE OF mo_app->mt_attri->*.
|
||||
DATA temp5 LIKE sy-tabix.
|
||||
FIELD-SYMBOLS <temp6> LIKE LINE OF mo_app->mt_attri->*.
|
||||
DATA temp7 LIKE sy-tabix.
|
||||
FIELD-SYMBOLS <temp8> LIKE LINE OF mo_app->mt_attri->*.
|
||||
DATA temp9 LIKE sy-tabix.
|
||||
FIELD-SYMBOLS <temp10> LIKE LINE OF mo_app->mt_attri->*.
|
||||
DATA temp11 LIKE sy-tabix.
|
||||
DATA temp12 LIKE LINE OF mo_app->mt_attri->*.
|
||||
DATA lr_bind2 LIKE REF TO temp12.
|
||||
|
||||
TRY.
|
||||
DATA(lv_path) = shift_right( val = val
|
||||
sub = `->*` ).
|
||||
mo_app->mt_attri->*[ name = lv_path ]-check_dissolved = abap_false.
|
||||
mo_app->mt_attri->*[ name = val ]-check_dissolved = abap_false.
|
||||
mo_app->mt_attri->*[ name = lv_path ]-name_client = ``.
|
||||
mo_app->mt_attri->*[ name = lv_path ]-bind_type = ``.
|
||||
|
||||
LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2)
|
||||
lv_path = shift_right( val = val
|
||||
sub = `->*` ).
|
||||
|
||||
|
||||
temp5 = sy-tabix.
|
||||
READ TABLE mo_app->mt_attri->* WITH KEY name = lv_path ASSIGNING <temp4>.
|
||||
sy-tabix = temp5.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<temp4>-check_dissolved = abap_false.
|
||||
|
||||
|
||||
temp7 = sy-tabix.
|
||||
READ TABLE mo_app->mt_attri->* WITH KEY name = val ASSIGNING <temp6>.
|
||||
sy-tabix = temp7.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<temp6>-check_dissolved = abap_false.
|
||||
|
||||
|
||||
temp9 = sy-tabix.
|
||||
READ TABLE mo_app->mt_attri->* WITH KEY name = lv_path ASSIGNING <temp8>.
|
||||
sy-tabix = temp9.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<temp8>-name_client = ``.
|
||||
|
||||
|
||||
temp11 = sy-tabix.
|
||||
READ TABLE mo_app->mt_attri->* WITH KEY name = lv_path ASSIGNING <temp10>.
|
||||
sy-tabix = temp11.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
<temp10>-bind_type = ``.
|
||||
|
||||
|
||||
|
||||
LOOP AT mo_app->mt_attri->* REFERENCE INTO lr_bind2
|
||||
WHERE name = lv_path.
|
||||
CLEAR lr_bind2->r_ref.
|
||||
ENDLOOP.
|
||||
|
@ -179,6 +246,7 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD get_client_name.
|
||||
DATA temp13 TYPE string.
|
||||
|
||||
result = replace( val = mr_attri->name
|
||||
sub = `-`
|
||||
|
@ -188,15 +256,21 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
sub = `>`
|
||||
with = ``
|
||||
occ = 0 ).
|
||||
result = COND #( WHEN mv_type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
THEN |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }| )
|
||||
|
||||
IF mv_type = z2ui5_if_core_types=>cs_bind_type-two_way.
|
||||
temp13 = |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }|.
|
||||
ELSE.
|
||||
CLEAR temp13.
|
||||
ENDIF.
|
||||
result = temp13
|
||||
&& |/{ result }|.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
|
||||
IF z2ui5_cl_util=>check_bound_a_not_inital( config-tab ).
|
||||
IF z2ui5_cl_util=>check_bound_a_not_inital( config-tab ) IS NOT INITIAL.
|
||||
|
||||
result = main_cell( val = val
|
||||
type = type
|
||||
|
@ -208,8 +282,8 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ms_config = config.
|
||||
mv_type = type.
|
||||
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mo_app->mt_attri
|
||||
app = mo_app->mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mo_app->mt_attri app = mo_app->mo_app.
|
||||
|
||||
lo_model->attri_refs_update( ).
|
||||
|
||||
|
@ -241,14 +315,20 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD main_cell.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp14 TYPE z2ui5_if_core_types=>ty_s_bind_config.
|
||||
|
||||
ms_config = config.
|
||||
mv_type = type.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( mo_app ).
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = mo_app.
|
||||
|
||||
CLEAR temp14.
|
||||
temp14-path_only = abap_true.
|
||||
result = lo_bind->main( val = config-tab
|
||||
type = type
|
||||
config = VALUE #( path_only = abap_true ) ).
|
||||
config = temp14 ).
|
||||
|
||||
result = bind_tab_cell( iv_name = result
|
||||
i_val = val ).
|
||||
|
@ -260,9 +340,17 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD main_local.
|
||||
DATA temp15 TYPE REF TO z2ui5_if_ajson.
|
||||
DATA lo_json LIKE temp15.
|
||||
DATA lv_id TYPE string.
|
||||
DATA temp16 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(lo_json) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>new( ) ).
|
||||
|
||||
temp15 ?= z2ui5_cl_ajson=>new( ).
|
||||
|
||||
lo_json = temp15.
|
||||
lo_json->set( iv_path = `/`
|
||||
iv_val = val ).
|
||||
|
||||
|
@ -278,11 +366,15 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
lo_json = lo_json->filter( z2ui5_cl_ajson_filter_lib=>create_empty_filter( ) ).
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_id) = to_upper( z2ui5_cl_util=>uuid_get_c22( ) ).
|
||||
INSERT VALUE #( name_client = |/{ lv_id }|
|
||||
name = lv_id
|
||||
json_bind_local = lo_json
|
||||
bind_type = z2ui5_if_core_types=>cs_bind_type-one_time )
|
||||
|
||||
lv_id = to_upper( z2ui5_cl_util=>uuid_get_c22( ) ).
|
||||
|
||||
CLEAR temp16.
|
||||
temp16-name_client = |/{ lv_id }|.
|
||||
temp16-name = lv_id.
|
||||
temp16-json_bind_local = lo_json.
|
||||
temp16-bind_type = z2ui5_if_core_types=>cs_bind_type-one_time.
|
||||
INSERT temp16
|
||||
INTO TABLE mo_app->mt_attri->*.
|
||||
|
||||
result = |/{ lv_id }|.
|
||||
|
@ -295,12 +387,14 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
result = |\{{ result }\}|.
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_model_attri.
|
||||
DATA temp17 TYPE z2ui5_if_core_types=>ty_s_attri-view.
|
||||
|
||||
mr_attri->bind_type = mv_type.
|
||||
mr_attri->view = ms_config-view.
|
||||
|
@ -308,9 +402,13 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION.
|
|||
mr_attri->custom_filter_back = ms_config-custom_filter_back.
|
||||
mr_attri->custom_mapper = ms_config-custom_mapper.
|
||||
mr_attri->custom_mapper_back = ms_config-custom_mapper_back.
|
||||
mr_attri->view = COND #( WHEN ms_config-view IS INITIAL
|
||||
THEN z2ui5_if_client=>cs_view-main
|
||||
ELSE ms_config-view ).
|
||||
|
||||
IF ms_config-view IS INITIAL.
|
||||
temp17 = z2ui5_if_client=>cs_view-main.
|
||||
ELSE.
|
||||
temp17 = ms_config-view.
|
||||
ENDIF.
|
||||
mr_attri->view = temp17.
|
||||
mr_attri->name_client = get_client_name( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -61,14 +61,22 @@ ENDCLASS.
|
|||
CLASS ltcl_test_bind IMPLEMENTATION.
|
||||
METHOD test_one_way_w_x_error.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp18 LIKE REF TO lo_app_client->xx.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
TRY.
|
||||
lo_bind->main( val = REF #( lo_app_client->xx )
|
||||
|
||||
GET REFERENCE OF lo_app_client->xx INTO temp18.
|
||||
lo_bind->main( val = temp18
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -80,13 +88,23 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
METHOD test_one_way.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp19 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lv_bind TYPE string.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp19.
|
||||
|
||||
lv_bind = lo_bind->main( val = temp19
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MV_VALUE}`
|
||||
|
@ -96,17 +114,28 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
METHOD test_error_diff.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp20 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA temp21 LIKE REF TO lo_app_client->mv_value.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp20.
|
||||
lo_bind->main( val = temp20
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
TRY.
|
||||
lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp21.
|
||||
lo_bind->main( val = temp21
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -122,16 +151,31 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
* RETURN.
|
||||
* ENDIF.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp22 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lv_bind TYPE string.
|
||||
DATA temp23 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lv_bind2 TYPE string.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
DATA(lv_bind) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp22.
|
||||
|
||||
lv_bind = lo_bind->main( val = temp22
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp23.
|
||||
|
||||
lv_bind2 = lo_bind->main( val = temp23
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = lv_bind2
|
||||
|
@ -143,13 +187,20 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
METHOD test_local.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA lv_bind TYPE string.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
DATA(lv_bind) = lo_bind->main_local( lo_app_client->mv_value ).
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
|
||||
lv_bind = lo_bind->main_local( lo_app_client->mv_value ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_bind ).
|
||||
|
||||
|
@ -157,17 +208,29 @@ CLASS ltcl_test_bind IMPLEMENTATION.
|
|||
|
||||
METHOD test_local_one.
|
||||
|
||||
DATA(lo_app_client) = NEW ltcl_test_app( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_app_client TYPE REF TO ltcl_test_app.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA lv_bind TYPE string.
|
||||
DATA temp24 LIKE REF TO lo_app_client->mv_value.
|
||||
DATA lv_bind2 TYPE string.
|
||||
CREATE OBJECT lo_app_client TYPE ltcl_test_app.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_app_client.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
|
||||
DATA(lv_bind) = lo_bind->main_local( lo_app_client->mv_value ).
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
|
||||
lv_bind = lo_bind->main_local( lo_app_client->mv_value ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_bind ).
|
||||
|
||||
DATA(lv_bind2) = lo_bind->main( val = REF #( lo_app_client->mv_value )
|
||||
|
||||
GET REFERENCE OF lo_app_client->mv_value INTO temp24.
|
||||
|
||||
lv_bind2 = lo_bind->main( val = temp24
|
||||
type = z2ui5_if_core_types=>cs_bind_type-two_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( lv_bind2 ).
|
||||
|
@ -210,19 +273,36 @@ ENDCLASS.
|
|||
CLASS ltcl_test_main_structure IMPLEMENTATION.
|
||||
METHOD test_one_way_lev1.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_structure( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_structure.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp25 LIKE REF TO lo_test_app->ms_struc-input.
|
||||
DATA lv_result TYPE string.
|
||||
DATA temp26 LIKE REF TO lo_test_app->ms_struc-input.
|
||||
DATA temp1 TYPE z2ui5_if_core_types=>ty_s_bind_config.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_structure.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->ms_struc-input INTO temp25.
|
||||
|
||||
lv_result = lo_bind->main( val = temp25
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/INPUT}`
|
||||
act = lv_result ).
|
||||
|
||||
lv_result = lo_bind->main( val = REF #( lo_test_app->ms_struc-input )
|
||||
config = VALUE #( path_only = abap_true )
|
||||
|
||||
GET REFERENCE OF lo_test_app->ms_struc-input INTO temp26.
|
||||
|
||||
CLEAR temp1.
|
||||
temp1-path_only = abap_true.
|
||||
lv_result = lo_bind->main( val = temp26
|
||||
config = temp1
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `/MS_STRUC/INPUT`
|
||||
|
@ -232,12 +312,22 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
|
||||
METHOD test_one_way_lev2.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_structure( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_structure.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp27 LIKE REF TO lo_test_app->ms_struc-s_02-input.
|
||||
DATA lv_result TYPE string.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_structure.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-input )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->ms_struc-s_02-input INTO temp27.
|
||||
|
||||
lv_result = lo_bind->main( val = temp27
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/INPUT}`
|
||||
|
@ -247,12 +337,22 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
|
||||
METHOD test_one_way_lev3.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_structure( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_structure.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp28 LIKE REF TO lo_test_app->ms_struc-s_02-s_03-input.
|
||||
DATA lv_result TYPE string.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_structure.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-input )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->ms_struc-s_02-s_03-input INTO temp28.
|
||||
|
||||
lv_result = lo_bind->main( val = temp28
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/INPUT}`
|
||||
|
@ -262,12 +362,22 @@ CLASS ltcl_test_main_structure IMPLEMENTATION.
|
|||
|
||||
METHOD test_one_way_lev4_long_name.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_structure( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_structure.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp29 LIKE REF TO lo_test_app->ms_struc-s_02-s_03-s_04-input.
|
||||
DATA lv_result TYPE string.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_structure.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->ms_struc-s_02-s_03-s_04-input )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->ms_struc-s_02-s_03-s_04-input INTO temp29.
|
||||
|
||||
lv_result = lo_bind->main( val = temp29
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MS_STRUC/S_02/S_03/S_04/INPUT}`
|
||||
|
@ -312,14 +422,24 @@ ENDCLASS.
|
|||
CLASS ltcl_test_main_object IMPLEMENTATION.
|
||||
METHOD test_one_way_value.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_object( ).
|
||||
lo_test_app->mo_obj = NEW #( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_object.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp30 LIKE REF TO lo_test_app->mo_obj->mv_value.
|
||||
DATA lv_result TYPE string.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_object.
|
||||
CREATE OBJECT lo_test_app->mo_obj.
|
||||
lo_test_app->mo_obj->mv_value = `test`.
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->mv_value )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->mo_obj->mv_value INTO temp30.
|
||||
|
||||
lv_result = lo_bind->main( val = temp30
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MV_VALUE}`
|
||||
|
@ -329,13 +449,23 @@ CLASS ltcl_test_main_object IMPLEMENTATION.
|
|||
|
||||
METHOD test_one_way_struc.
|
||||
|
||||
DATA(lo_test_app) = NEW ltcl_test_main_object( ).
|
||||
lo_test_app->mo_obj = NEW #( ).
|
||||
DATA(lo_app) = NEW z2ui5_cl_core_app( ).
|
||||
DATA lo_test_app TYPE REF TO ltcl_test_main_object.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_core_app.
|
||||
DATA lo_bind TYPE REF TO z2ui5_cl_core_srv_bind.
|
||||
DATA temp31 LIKE REF TO lo_test_app->mo_obj->ms_struc-input.
|
||||
DATA lv_result TYPE string.
|
||||
CREATE OBJECT lo_test_app TYPE ltcl_test_main_object.
|
||||
CREATE OBJECT lo_test_app->mo_obj.
|
||||
|
||||
CREATE OBJECT lo_app TYPE z2ui5_cl_core_app.
|
||||
lo_app->mo_app = lo_test_app.
|
||||
|
||||
DATA(lo_bind) = NEW z2ui5_cl_core_srv_bind( lo_app ).
|
||||
DATA(lv_result) = lo_bind->main( val = REF #( lo_test_app->mo_obj->ms_struc-input )
|
||||
|
||||
CREATE OBJECT lo_bind TYPE z2ui5_cl_core_srv_bind EXPORTING APP = lo_app.
|
||||
|
||||
GET REFERENCE OF lo_test_app->mo_obj->ms_struc-input INTO temp31.
|
||||
|
||||
lv_result = lo_bind->main( val = temp31
|
||||
type = z2ui5_if_core_types=>cs_bind_type-one_way ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `{/MO_OBJ/MS_STRUC/INPUT}`
|
||||
|
|
|
@ -57,40 +57,53 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
|
||||
METHOD create_new_entry.
|
||||
|
||||
result = VALUE z2ui5_if_core_types=>ty_s_attri( ).
|
||||
DATA temp1 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
CLEAR temp1.
|
||||
result = temp1.
|
||||
result-name = name.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mt_attri app = mo_app.
|
||||
result-r_ref = lo_model->attri_get_val_ref( name ).
|
||||
result-o_typedescr = cl_abap_datadescr=>describe_by_data_ref( result-r_ref ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD diss_dref.
|
||||
DATA lr_ref TYPE REF TO data.
|
||||
DATA temp2 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA ls_attri2 LIKE temp2.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_attri.
|
||||
|
||||
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ).
|
||||
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ) IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lr_ref) = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ).
|
||||
|
||||
lr_ref = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ).
|
||||
IF lr_ref IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_attri2) = VALUE z2ui5_if_core_types=>ty_s_attri( ).
|
||||
|
||||
CLEAR temp2.
|
||||
|
||||
ls_attri2 = temp2.
|
||||
ls_attri2-o_typedescr = cl_abap_datadescr=>describe_by_data_ref( lr_ref ).
|
||||
|
||||
CASE ls_attri2-o_typedescr->kind.
|
||||
|
||||
WHEN cl_abap_datadescr=>kind_struct.
|
||||
DATA(lt_attri) = diss_struc( ir_attri ).
|
||||
|
||||
lt_attri = diss_struc( ir_attri ).
|
||||
INSERT LINES OF lt_attri INTO TABLE result.
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
ls_attri2-name = |{ ir_attri->name }->*|.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_attri( attri = mt_attri
|
||||
app = mo_app ).
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_attri EXPORTING attri = mt_attri app = mo_app.
|
||||
ls_attri2-r_ref = lo_model->attri_get_val_ref( ls_attri2-name ).
|
||||
INSERT ls_attri2 INTO TABLE result.
|
||||
|
||||
|
@ -99,21 +112,40 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD diss_oref.
|
||||
DATA lr_ref TYPE REF TO object.
|
||||
DATA lt_attri TYPE abap_attrdescr_tab.
|
||||
DATA temp3 LIKE LINE OF lt_attri.
|
||||
DATA lr_attri LIKE REF TO temp3.
|
||||
DATA temp4 TYPE string.
|
||||
DATA lv_name TYPE string.
|
||||
DATA ls_new TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
|
||||
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ).
|
||||
IF z2ui5_cl_util=>check_unassign_inital( ir_attri->r_ref ) IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(lr_ref) = z2ui5_cl_util=>unassign_object( ir_attri->r_ref ).
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lr_ref ).
|
||||
|
||||
LOOP AT lt_attri REFERENCE INTO DATA(lr_attri)
|
||||
lr_ref = z2ui5_cl_util=>unassign_object( ir_attri->r_ref ).
|
||||
|
||||
lt_attri = z2ui5_cl_util=>rtti_get_t_attri_by_oref( lr_ref ).
|
||||
|
||||
|
||||
|
||||
LOOP AT lt_attri REFERENCE INTO lr_attri
|
||||
WHERE visibility = cl_abap_objectdescr=>public
|
||||
AND is_interface = abap_false
|
||||
AND is_constant = abap_false.
|
||||
TRY.
|
||||
DATA(lv_name) = COND #( WHEN ir_attri->name IS NOT INITIAL THEN |{ ir_attri->name }->| ) && lr_attri->name.
|
||||
DATA(ls_new) = create_new_entry( lv_name ).
|
||||
|
||||
IF ir_attri->name IS NOT INITIAL.
|
||||
temp4 = |{ ir_attri->name }->|.
|
||||
ELSE.
|
||||
CLEAR temp4.
|
||||
ENDIF.
|
||||
|
||||
lv_name = temp4 && lr_attri->name.
|
||||
|
||||
ls_new = create_new_entry( lv_name ).
|
||||
INSERT ls_new INTO TABLE result.
|
||||
|
||||
CATCH cx_root.
|
||||
|
@ -123,31 +155,46 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD diss_struc.
|
||||
DATA lv_name TYPE string.
|
||||
DATA lr_ref TYPE REF TO data.
|
||||
DATA lt_attri TYPE abap_component_tab.
|
||||
DATA ls_attri LIKE LINE OF lt_attri.
|
||||
DATA ls_new TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
|
||||
IF ir_attri->o_typedescr->kind = cl_abap_typedescr=>kind_ref.
|
||||
DATA(lv_name) = |{ ir_attri->name }->|.
|
||||
DATA(lr_ref) = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ).
|
||||
|
||||
lv_name = |{ ir_attri->name }->|.
|
||||
|
||||
lr_ref = z2ui5_cl_util=>unassign_data( ir_attri->r_ref ).
|
||||
ELSE.
|
||||
lv_name = |{ ir_attri->name }-|.
|
||||
lr_ref = ir_attri->r_ref.
|
||||
ENDIF.
|
||||
|
||||
DATA(lt_attri) = z2ui5_cl_util=>rtti_get_t_attri_by_any( lr_ref ).
|
||||
|
||||
LOOP AT lt_attri INTO DATA(ls_attri).
|
||||
DATA(ls_new) = create_new_entry( lv_name && ls_attri-name ).
|
||||
lt_attri = z2ui5_cl_util=>rtti_get_t_attri_by_any( lr_ref ).
|
||||
|
||||
|
||||
LOOP AT lt_attri INTO ls_attri.
|
||||
|
||||
ls_new = create_new_entry( lv_name && ls_attri-name ).
|
||||
INSERT ls_new INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main.
|
||||
DATA temp5 LIKE sy-subrc.
|
||||
DATA temp6 LIKE sy-subrc.
|
||||
|
||||
TRY.
|
||||
|
||||
main_init( ).
|
||||
|
||||
IF line_exists( mt_attri->*[ check_dissolved = abap_false ] ).
|
||||
|
||||
READ TABLE mt_attri->* WITH KEY check_dissolved = abap_false TRANSPORTING NO FIELDS.
|
||||
temp5 = sy-subrc.
|
||||
IF temp5 = 0.
|
||||
main_run( ).
|
||||
ENDIF.
|
||||
|
||||
|
@ -155,7 +202,10 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
CLEAR mt_attri->*.
|
||||
main_init( ).
|
||||
|
||||
IF line_exists( mt_attri->*[ check_dissolved = abap_false ] ).
|
||||
|
||||
READ TABLE mt_attri->* WITH KEY check_dissolved = abap_false TRANSPORTING NO FIELDS.
|
||||
temp6 = sy-subrc.
|
||||
IF temp6 = 0.
|
||||
main_run( ).
|
||||
ENDIF.
|
||||
ENDTRY.
|
||||
|
@ -163,6 +213,11 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD main_init.
|
||||
DATA temp7 LIKE REF TO mo_app.
|
||||
DATA temp1 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA ls_attri LIKE temp1.
|
||||
DATA temp8 LIKE REF TO ls_attri.
|
||||
DATA lt_init TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
|
||||
IF mt_attri->* IS NOT INITIAL.
|
||||
LOOP AT mt_attri->* TRANSPORTING NO FIELDS
|
||||
|
@ -173,24 +228,46 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
DATA(ls_attri) = VALUE z2ui5_if_core_types=>ty_s_attri( r_ref = REF #( mo_app ) ).
|
||||
DATA(lt_init) = diss_oref( REF #( ls_attri ) ).
|
||||
|
||||
GET REFERENCE OF mo_app INTO temp7.
|
||||
|
||||
CLEAR temp1.
|
||||
temp1-r_ref = temp7.
|
||||
|
||||
ls_attri = temp1.
|
||||
|
||||
GET REFERENCE OF ls_attri INTO temp8.
|
||||
|
||||
lt_init = diss_oref( temp8 ).
|
||||
INSERT LINES OF lt_init INTO TABLE mt_attri->*.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD main_run.
|
||||
|
||||
DATA(lt_attri_new) = VALUE z2ui5_if_core_types=>ty_t_attri( ).
|
||||
DATA temp9 TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri_new LIKE temp9.
|
||||
DATA temp10 LIKE LINE OF mt_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp10.
|
||||
DATA ls_entry TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA lt_attri_struc TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri_oref TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA lt_attri_dref TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
CLEAR temp9.
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
lt_attri_new = temp9.
|
||||
|
||||
|
||||
|
||||
LOOP AT mt_attri->* REFERENCE INTO lr_attri
|
||||
WHERE check_dissolved = abap_false
|
||||
AND bind_type <> z2ui5_if_core_types=>cs_bind_type-one_time.
|
||||
|
||||
lr_attri->check_dissolved = abap_true.
|
||||
|
||||
IF lr_attri->o_typedescr IS NOT BOUND.
|
||||
DATA(ls_entry) = create_new_entry( lr_attri->name ).
|
||||
|
||||
ls_entry = create_new_entry( lr_attri->name ).
|
||||
lr_attri->o_typedescr = ls_entry-o_typedescr.
|
||||
lr_attri->r_ref = ls_entry-r_ref.
|
||||
ENDIF.
|
||||
|
@ -198,7 +275,8 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
CASE lr_attri->o_typedescr->kind.
|
||||
|
||||
WHEN cl_abap_typedescr=>kind_struct.
|
||||
DATA(lt_attri_struc) = diss_struc( lr_attri ).
|
||||
|
||||
lt_attri_struc = diss_struc( lr_attri ).
|
||||
INSERT LINES OF lt_attri_struc INTO TABLE lt_attri_new.
|
||||
|
||||
WHEN cl_abap_typedescr=>kind_ref.
|
||||
|
@ -206,10 +284,12 @@ CLASS z2ui5_cl_core_srv_diss IMPLEMENTATION.
|
|||
CASE lr_attri->o_typedescr->type_kind.
|
||||
|
||||
WHEN cl_abap_typedescr=>typekind_oref.
|
||||
DATA(lt_attri_oref) = diss_oref( lr_attri ).
|
||||
|
||||
lt_attri_oref = diss_oref( lr_attri ).
|
||||
INSERT LINES OF lt_attri_oref INTO TABLE lt_attri_new.
|
||||
WHEN cl_abap_typedescr=>typekind_dref.
|
||||
DATA(lt_attri_dref) = diss_dref( lr_attri ).
|
||||
|
||||
lt_attri_dref = diss_dref( lr_attri ).
|
||||
INSERT LINES OF lt_attri_dref INTO TABLE lt_attri_new.
|
||||
WHEN OTHERS.
|
||||
ASSERT 1 = 0.
|
||||
|
|
|
@ -51,16 +51,36 @@ ENDCLASS.
|
|||
CLASS ltcl_test_dissolve IMPLEMENTATION.
|
||||
METHOD test_ref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA temp11 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA ls_attri LIKE LINE OF lt_attri.
|
||||
DATA temp2 LIKE LINE OF lt_attri.
|
||||
DATA temp3 LIKE sy-tabix.
|
||||
DATA lr_ref LIKE REF TO lo_app->mv_value.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp11.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp11 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
|
||||
DATA(ls_attri) = lt_attri[ name = `MV_VALUE` ].
|
||||
GET REFERENCE OF lo_app->mv_value INTO DATA(lr_ref).
|
||||
|
||||
|
||||
|
||||
temp3 = sy-tabix.
|
||||
READ TABLE lt_attri WITH KEY name = `MV_VALUE` INTO temp2.
|
||||
sy-tabix = temp3.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_attri = temp2.
|
||||
|
||||
GET REFERENCE OF lo_app->mv_value INTO lr_ref.
|
||||
|
||||
IF ls_attri-r_ref <> lr_ref.
|
||||
cl_abap_unit_assert=>abort( ).
|
||||
|
@ -70,71 +90,184 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
|
||||
METHOD test_init.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA temp12 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp13 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp14 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp15 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp16 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp17 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp18 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp19 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp20 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp12.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp12 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MV_VALUE` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp13.
|
||||
|
||||
READ TABLE lt_attri INTO temp14 WITH KEY name = `MR_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp13 = temp14.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp13 ).
|
||||
|
||||
CLEAR temp15.
|
||||
|
||||
READ TABLE lt_attri INTO temp16 WITH KEY name = `MR_VALUE`.
|
||||
IF sy-subrc = 0.
|
||||
temp15 = temp16.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp15 ).
|
||||
|
||||
CLEAR temp17.
|
||||
|
||||
READ TABLE lt_attri INTO temp18 WITH KEY name = `MS_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp17 = temp18.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp17 ).
|
||||
|
||||
CLEAR temp19.
|
||||
|
||||
READ TABLE lt_attri INTO temp20 WITH KEY name = `MV_VALUE`.
|
||||
IF sy-subrc = 0.
|
||||
temp19 = temp20.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp19 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_dref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp21 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp22 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp23 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE DATA lo_app->mr_struc.
|
||||
CREATE DATA lo_app->mr_value TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp21.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp21 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_VALUE->*` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp22.
|
||||
|
||||
READ TABLE lt_attri INTO temp23 WITH KEY name = `MR_VALUE->*`.
|
||||
IF sy-subrc = 0.
|
||||
temp22 = temp23.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp22 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_oref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lo_app2 TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp24 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp25 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp26 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp27 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp28 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp29 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp30 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp31 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp32 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE OBJECT lo_app->mo_app.
|
||||
|
||||
CREATE OBJECT lo_app2 TYPE ltcl_test_dissolve.
|
||||
lo_app2->mo_app = lo_app.
|
||||
|
||||
CREATE DATA lo_app->mo_app->mr_struc.
|
||||
CREATE DATA lo_app->mo_app->mr_value TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app2 ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp24.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp24 app = lo_app2.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MV_VALUE` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp25.
|
||||
|
||||
READ TABLE lt_attri INTO temp26 WITH KEY name = `MO_APP->MV_VALUE`.
|
||||
IF sy-subrc = 0.
|
||||
temp25 = temp26.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp25 ).
|
||||
|
||||
CLEAR temp27.
|
||||
|
||||
READ TABLE lt_attri INTO temp28 WITH KEY name = `MO_APP->MR_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp27 = temp28.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp27 ).
|
||||
|
||||
CLEAR temp29.
|
||||
|
||||
READ TABLE lt_attri INTO temp30 WITH KEY name = `MO_APP->MR_VALUE`.
|
||||
IF sy-subrc = 0.
|
||||
temp29 = temp30.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp29 ).
|
||||
|
||||
CLEAR temp31.
|
||||
|
||||
READ TABLE lt_attri INTO temp32 WITH KEY name = `MO_APP->MS_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp31 = temp32.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp31 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_struc.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
DATA temp33 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp34 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp35 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp36 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp37 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp38 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp39 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp33.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp33 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
@ -142,97 +275,229 @@ CLASS ltcl_test_dissolve IMPLEMENTATION.
|
|||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-INPUT` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-INPUT` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MS_STRUC-S_02-S_03-S_04-INPUT` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp34.
|
||||
|
||||
READ TABLE lt_attri INTO temp35 WITH KEY name = `MS_STRUC-INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp34 = temp35.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp34 ).
|
||||
|
||||
CLEAR temp36.
|
||||
|
||||
READ TABLE lt_attri INTO temp37 WITH KEY name = `MS_STRUC-S_02-INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp36 = temp37.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp36 ).
|
||||
|
||||
CLEAR temp38.
|
||||
|
||||
READ TABLE lt_attri INTO temp39 WITH KEY name = `MS_STRUC-S_02-S_03-S_04-INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp38 = temp39.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp38 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_dref_struc.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lo_app2 TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp40 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp41 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp42 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp43 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp44 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp45 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp46 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE OBJECT lo_app->mo_app.
|
||||
|
||||
CREATE OBJECT lo_app2 TYPE ltcl_test_dissolve.
|
||||
lo_app2->mo_app = lo_app.
|
||||
|
||||
CREATE DATA lo_app->mr_struc.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp40.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp40 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC->INPUT` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MR_STRUC->S_02-INPUT` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp41.
|
||||
|
||||
READ TABLE lt_attri INTO temp42 WITH KEY name = `MR_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp41 = temp42.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp41 ).
|
||||
|
||||
CLEAR temp43.
|
||||
|
||||
READ TABLE lt_attri INTO temp44 WITH KEY name = `MR_STRUC->INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp43 = temp44.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp43 ).
|
||||
|
||||
CLEAR temp45.
|
||||
|
||||
READ TABLE lt_attri INTO temp46 WITH KEY name = `MR_STRUC->S_02-INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp45 = temp46.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp45 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_oref_dref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lo_app2 TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp47 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp48 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp49 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE OBJECT lo_app->mo_app.
|
||||
|
||||
CREATE OBJECT lo_app2 TYPE ltcl_test_dissolve.
|
||||
lo_app->mo_app = lo_app2.
|
||||
|
||||
CREATE DATA lo_app2->mr_value TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp47.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp47 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_VALUE->*` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp48.
|
||||
|
||||
READ TABLE lt_attri INTO temp49 WITH KEY name = `MO_APP->MR_VALUE->*`.
|
||||
IF sy-subrc = 0.
|
||||
temp48 = temp49.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp48 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_oref_dref_struc.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA(lo_app2) = NEW ltcl_test_dissolve( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lo_app2 TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp50 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp51 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp52 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp53 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp54 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp55 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp56 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE OBJECT lo_app->mo_app.
|
||||
|
||||
CREATE OBJECT lo_app2 TYPE ltcl_test_dissolve.
|
||||
lo_app->mo_app = lo_app2.
|
||||
|
||||
CREATE DATA lo_app->mo_app->mr_struc.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp50.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp50 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC->INPUT` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MR_STRUC->S_02-INPUT` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp51.
|
||||
|
||||
READ TABLE lt_attri INTO temp52 WITH KEY name = `MO_APP->MR_STRUC`.
|
||||
IF sy-subrc = 0.
|
||||
temp51 = temp52.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp51 ).
|
||||
|
||||
CLEAR temp53.
|
||||
|
||||
READ TABLE lt_attri INTO temp54 WITH KEY name = `MO_APP->MR_STRUC->INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp53 = temp54.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp53 ).
|
||||
|
||||
CLEAR temp55.
|
||||
|
||||
READ TABLE lt_attri INTO temp56 WITH KEY name = `MO_APP->MR_STRUC->S_02-INPUT`.
|
||||
IF sy-subrc = 0.
|
||||
temp55 = temp56.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp55 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD test_struc_dref.
|
||||
|
||||
DATA(lo_app) = NEW ltcl_test_dissolve( ).
|
||||
lo_app->mo_app = NEW #( ).
|
||||
DATA lo_app TYPE REF TO ltcl_test_dissolve.
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA temp57 LIKE REF TO lt_attri.
|
||||
DATA lo_model TYPE REF TO z2ui5_cl_core_srv_diss.
|
||||
DATA temp58 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp59 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp60 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
DATA temp61 TYPE z2ui5_if_core_types=>ty_s_attri.
|
||||
CREATE OBJECT lo_app TYPE ltcl_test_dissolve.
|
||||
CREATE OBJECT lo_app->mo_app.
|
||||
CREATE DATA lo_app->mo_app->ms_struc2-r_ref TYPE string.
|
||||
|
||||
DATA lt_attri TYPE z2ui5_if_core_types=>ty_t_attri.
|
||||
DATA(lo_model) = NEW z2ui5_cl_core_srv_diss( attri = REF #( lt_attri )
|
||||
app = lo_app ).
|
||||
|
||||
|
||||
GET REFERENCE OF lt_attri INTO temp57.
|
||||
|
||||
CREATE OBJECT lo_model TYPE z2ui5_cl_core_srv_diss EXPORTING attri = temp57 app = lo_app.
|
||||
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
lo_model->main( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC2-R_REF` ] OPTIONAL ) ).
|
||||
cl_abap_unit_assert=>assert_not_initial( VALUE #( lt_attri[ name = `MO_APP->MS_STRUC2-R_REF->*` ] OPTIONAL ) ).
|
||||
|
||||
CLEAR temp58.
|
||||
|
||||
READ TABLE lt_attri INTO temp59 WITH KEY name = `MO_APP->MS_STRUC2-R_REF`.
|
||||
IF sy-subrc = 0.
|
||||
temp58 = temp59.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp58 ).
|
||||
|
||||
CLEAR temp60.
|
||||
|
||||
READ TABLE lt_attri INTO temp61 WITH KEY name = `MO_APP->MS_STRUC2-R_REF->*`.
|
||||
IF sy-subrc = 0.
|
||||
temp60 = temp61.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_not_initial( temp60 ).
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -54,11 +54,17 @@ CLASS z2ui5_cl_core_srv_event IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD get_t_arg.
|
||||
DATA temp1 LIKE LINE OF val.
|
||||
DATA lr_arg LIKE REF TO temp1.
|
||||
DATA lv_new TYPE string.
|
||||
|
||||
IF val IS NOT INITIAL.
|
||||
|
||||
LOOP AT val REFERENCE INTO DATA(lr_arg).
|
||||
DATA(lv_new) = lr_arg->*.
|
||||
|
||||
|
||||
LOOP AT val REFERENCE INTO lr_arg.
|
||||
|
||||
lv_new = lr_arg->*.
|
||||
IF lv_new IS INITIAL.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
|
|
@ -14,8 +14,11 @@ ENDCLASS.
|
|||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD event.
|
||||
|
||||
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA(lv_event) = lo_event->get_event( `POST` ).
|
||||
DATA lo_event TYPE REF TO z2ui5_cl_core_srv_event.
|
||||
DATA lv_event TYPE string.
|
||||
CREATE OBJECT lo_event TYPE z2ui5_cl_core_srv_event.
|
||||
|
||||
lv_event = lo_event->get_event( `POST` ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `.eB(['POST'])`
|
||||
act = lv_event ).
|
||||
|
@ -24,8 +27,11 @@ CLASS ltcl_test IMPLEMENTATION.
|
|||
|
||||
METHOD event_backend.
|
||||
|
||||
DATA(lo_event) = NEW z2ui5_cl_core_srv_event( ).
|
||||
DATA(lv_event) = lo_event->get_event_client( z2ui5_if_client=>cs_event-popover_close ).
|
||||
DATA lo_event TYPE REF TO z2ui5_cl_core_srv_event.
|
||||
DATA lv_event TYPE string.
|
||||
CREATE OBJECT lo_event TYPE z2ui5_cl_core_srv_event.
|
||||
|
||||
lv_event = lo_event->get_event_client( z2ui5_if_client=>cs_event-popover_close ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = `.eF('POPOVER_CLOSE')`
|
||||
act = lv_event ).
|
||||
|
|
|
@ -42,18 +42,31 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
|
||||
METHOD model_front_to_back.
|
||||
|
||||
IF line_exists( t_attri->*[ view = view ] ).
|
||||
DATA(lv_view) = view.
|
||||
DATA temp1 LIKE sy-subrc.
|
||||
DATA lv_view LIKE view.
|
||||
DATA temp2 LIKE LINE OF t_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp2.
|
||||
DATA lo_val_front TYPE REF TO z2ui5_if_ajson.
|
||||
FIELD-SYMBOLS <val> TYPE data.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
READ TABLE t_attri->* WITH KEY view = view TRANSPORTING NO FIELDS.
|
||||
temp1 = sy-subrc.
|
||||
IF temp1 = 0.
|
||||
|
||||
lv_view = view.
|
||||
ELSE.
|
||||
lv_view = z2ui5_if_client=>cs_view-main.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri)
|
||||
|
||||
|
||||
LOOP AT t_attri->* REFERENCE INTO lr_attri
|
||||
WHERE bind_type = z2ui5_if_core_types=>cs_bind_type-two_way
|
||||
AND view = lv_view.
|
||||
TRY.
|
||||
|
||||
DATA(lo_val_front) = model->slice( lr_attri->name_client ).
|
||||
|
||||
lo_val_front = model->slice( lr_attri->name_client ).
|
||||
IF lo_val_front IS NOT BOUND.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
@ -66,14 +79,16 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
lo_val_front = lo_val_front->filter( lr_attri->custom_filter_back ).
|
||||
ENDIF.
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO FIELD-SYMBOL(<val>).
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO <val>.
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
lo_val_front->to_abap( IMPORTING ev_container = <val> ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = |JSON_PARSING_ERROR: { x->get_text( ) } |.
|
||||
|
@ -84,24 +99,43 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD model_back_to_front.
|
||||
DATA temp3 TYPE REF TO z2ui5_if_ajson.
|
||||
DATA ajson_result LIKE temp3.
|
||||
DATA temp4 LIKE LINE OF t_attri->*.
|
||||
DATA lr_attri LIKE REF TO temp4.
|
||||
DATA temp5 TYPE REF TO z2ui5_if_ajson.
|
||||
DATA ajson LIKE temp5.
|
||||
DATA temp6 TYPE REF TO z2ui5_if_ajson.
|
||||
FIELD-SYMBOLS <attribute> TYPE data.
|
||||
DATA temp7 TYPE string.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ).
|
||||
LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``.
|
||||
|
||||
temp3 ?= z2ui5_cl_ajson=>create_empty( ).
|
||||
|
||||
ajson_result = temp3.
|
||||
|
||||
|
||||
LOOP AT t_attri->* REFERENCE INTO lr_attri WHERE bind_type <> ``.
|
||||
|
||||
IF lr_attri->custom_mapper IS BOUND.
|
||||
DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
|
||||
ii_custom_mapping = lr_attri->custom_mapper ) ).
|
||||
|
||||
temp5 ?= z2ui5_cl_ajson=>create_empty( ii_custom_mapping = lr_attri->custom_mapper ).
|
||||
|
||||
ajson = temp5.
|
||||
ELSE.
|
||||
ajson = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
|
||||
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
||||
|
||||
temp6 ?= z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ).
|
||||
ajson = temp6.
|
||||
ENDIF.
|
||||
|
||||
CASE lr_attri->bind_type.
|
||||
WHEN z2ui5_if_core_types=>cs_bind_type-one_way
|
||||
OR z2ui5_if_core_types=>cs_bind_type-two_way.
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO FIELD-SYMBOL(<attribute>).
|
||||
|
||||
ASSIGN lr_attri->r_ref->* TO <attribute>.
|
||||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
@ -128,23 +162,45 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
result = ajson_result->stringify( ).
|
||||
result = COND #( WHEN result IS INITIAL THEN `{}` ELSE result ).
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
IF result IS INITIAL.
|
||||
temp7 = `{}`.
|
||||
ELSE.
|
||||
temp7 = result.
|
||||
ENDIF.
|
||||
result = temp7.
|
||||
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD request_json_to_abap.
|
||||
DATA temp8 TYPE REF TO z2ui5_if_ajson.
|
||||
DATA lo_ajson LIKE temp8.
|
||||
DATA lv_model_edit_name TYPE string.
|
||||
DATA lo_model TYPE REF TO z2ui5_if_ajson.
|
||||
DATA temp1 TYPE xsdboolean.
|
||||
DATA lo_comp LIKE result-s_front-o_comp_data.
|
||||
DATA lv_app_start TYPE string.
|
||||
DATA lv_hash LIKE result-s_front-hash.
|
||||
DATA lv_dummy TYPE string.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(lo_ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>parse( val ) ).
|
||||
|
||||
DATA(lv_model_edit_name) = |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }|.
|
||||
temp8 ?= z2ui5_cl_ajson=>parse( val ).
|
||||
|
||||
lo_ajson = temp8.
|
||||
|
||||
|
||||
lv_model_edit_name = |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }|.
|
||||
|
||||
result-o_model = z2ui5_cl_ajson=>create_empty( ).
|
||||
DATA(lo_model) = lo_ajson->slice( lv_model_edit_name ).
|
||||
|
||||
lo_model = lo_ajson->slice( lv_model_edit_name ).
|
||||
result-o_model->set( iv_path = lv_model_edit_name
|
||||
iv_val = lo_model ).
|
||||
lo_ajson->delete( lv_model_edit_name ).
|
||||
|
@ -155,18 +211,19 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
|
||||
result-s_front-o_comp_data = lo_ajson->slice( `/CONFIG/ComponentData` ).
|
||||
|
||||
result-s_control-check_launchpad = xsdbool( result-s_front-search CS `scenario=LAUNCHPAD`
|
||||
OR result-s_front-pathname CS `/ui2/flp`
|
||||
OR result-s_front-pathname CS `test/flpSandbox`
|
||||
).
|
||||
|
||||
temp1 = boolc( result-s_front-search CS `scenario=LAUNCHPAD` OR result-s_front-pathname CS `/ui2/flp` OR result-s_front-pathname CS `test/flpSandbox` ).
|
||||
result-s_control-check_launchpad = temp1.
|
||||
IF result-s_front-id IS NOT INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
IF result-s_front-o_comp_data IS BOUND.
|
||||
DATA(lo_comp) = result-s_front-o_comp_data.
|
||||
DATA(lv_app_start) = lo_comp->get( `/startupParameters/app_start/1` ).
|
||||
|
||||
lo_comp = result-s_front-o_comp_data.
|
||||
|
||||
lv_app_start = lo_comp->get( `/startupParameters/app_start/1` ).
|
||||
result-s_control-app_start = lv_app_start.
|
||||
result-s_control-app_start = z2ui5_cl_util=>c_trim_upper( result-s_control-app_start ).
|
||||
ENDIF.
|
||||
|
@ -174,8 +231,10 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
DATA(lv_hash) = result-s_front-hash.
|
||||
SPLIT lv_hash AT '&/' INTO DATA(lv_dummy) lv_hash.
|
||||
|
||||
lv_hash = result-s_front-hash.
|
||||
|
||||
SPLIT lv_hash AT '&/' INTO lv_dummy lv_hash.
|
||||
IF lv_hash IS INITIAL.
|
||||
lv_hash = result-s_front-hash+2.
|
||||
ENDIF.
|
||||
|
@ -197,7 +256,8 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
url = result-s_front-search ) ).
|
||||
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
val = x.
|
||||
|
@ -206,22 +266,33 @@ CLASS z2ui5_cl_core_srv_json IMPLEMENTATION.
|
|||
|
||||
|
||||
METHOD response_abap_to_json.
|
||||
DATA temp9 TYPE REF TO z2ui5_if_ajson.
|
||||
DATA ajson_result LIKE temp9.
|
||||
DATA temp10 TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
DATA lv_frontend TYPE string.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
TRY.
|
||||
|
||||
DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty(
|
||||
ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ) ).
|
||||
|
||||
temp9 ?= z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( ) ).
|
||||
|
||||
ajson_result = temp9.
|
||||
|
||||
ajson_result->set( iv_path = `/`
|
||||
iv_val = val-s_front ).
|
||||
ajson_result = ajson_result->filter( NEW z2ui5_cl_core_srv_json( ) ).
|
||||
DATA(lv_frontend) = ajson_result->stringify( ).
|
||||
|
||||
CREATE OBJECT temp10 TYPE z2ui5_cl_core_srv_json.
|
||||
ajson_result = ajson_result->filter( temp10 ).
|
||||
|
||||
lv_frontend = ajson_result->stringify( ).
|
||||
|
||||
result = |\{| &&
|
||||
|"S_FRONT":{ lv_frontend },| &&
|
||||
|"MODEL":{ val-model }| &&
|
||||
|\}|.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
ASSERT x IS NOT BOUND.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -10,27 +10,54 @@ ENDCLASS.
|
|||
CLASS ltcl_test IMPLEMENTATION.
|
||||
METHOD request_json_to_abap.
|
||||
|
||||
DATA(lv_payload) = |\{"XX":\{"NAME":"test"\},"S_FRONT":\{"ID":"ID_NR","EDIT":\{"NAME":"test"\},"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":"SEARCH"| &&
|
||||
DATA lv_payload TYPE string.
|
||||
DATA lo_mapper TYPE REF TO z2ui5_cl_core_srv_json.
|
||||
DATA ls_result TYPE z2ui5_if_core_types=>ty_s_request.
|
||||
DATA temp11 TYPE z2ui5_if_core_types=>ty_s_request.
|
||||
DATA ls_exp LIKE temp11.
|
||||
DATA temp12 TYPE z2ui5_if_ajson_types=>ty_nodes_ts.
|
||||
DATA lt_tree LIKE temp12.
|
||||
DATA temp13 LIKE LINE OF lt_tree.
|
||||
DATA temp14 LIKE sy-tabix.
|
||||
lv_payload = |\{"XX":\{"NAME":"test"\},"S_FRONT":\{"ID":"ID_NR","EDIT":\{"NAME":"test"\},"ORIGIN":"ORIGIN","PATHNAME":"PATHNAME","SEARCH":"SEARCH"| &&
|
||||
|,"VIEW":"MAIN","EVENT":"BUTTON_POST","T_EVENT_ARG":[]\}\}|.
|
||||
|
||||
DATA(lo_mapper) = NEW z2ui5_cl_core_srv_json( ).
|
||||
DATA(ls_result) = lo_mapper->request_json_to_abap( lv_payload ).
|
||||
|
||||
DATA(ls_exp) = VALUE z2ui5_if_core_types=>ty_s_request( s_front = VALUE #( id = `ID_NR`
|
||||
view = `MAIN`
|
||||
origin = `ORIGIN`
|
||||
pathname = `PATHNAME`
|
||||
search = `SEARCH`
|
||||
event = `BUTTON_POST` ) ).
|
||||
CREATE OBJECT lo_mapper TYPE z2ui5_cl_core_srv_json.
|
||||
|
||||
ls_result = lo_mapper->request_json_to_abap( lv_payload ).
|
||||
|
||||
|
||||
CLEAR temp11.
|
||||
CLEAR temp11-s_front.
|
||||
temp11-s_front-id = `ID_NR`.
|
||||
temp11-s_front-view = `MAIN`.
|
||||
temp11-s_front-origin = `ORIGIN`.
|
||||
temp11-s_front-pathname = `PATHNAME`.
|
||||
temp11-s_front-search = `SEARCH`.
|
||||
temp11-s_front-event = `BUTTON_POST`.
|
||||
|
||||
ls_exp = temp11.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = ls_exp-s_front
|
||||
act = ls_result-s_front ).
|
||||
|
||||
DATA(lt_tree) = VALUE z2ui5_if_ajson_types=>ty_nodes_ts( ).
|
||||
|
||||
CLEAR temp12.
|
||||
|
||||
lt_tree = temp12.
|
||||
lt_tree = ls_result-o_model->mt_json_tree.
|
||||
|
||||
|
||||
|
||||
temp14 = sy-tabix.
|
||||
READ TABLE lt_tree WITH KEY name = `NAME` INTO temp13.
|
||||
sy-tabix = temp14.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
cl_abap_unit_assert=>assert_equals( exp = `test`
|
||||
act = lt_tree[ name = `NAME` ]-value ).
|
||||
act = temp13-value ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals( exp = 3
|
||||
act = lines( lt_tree ) ).
|
||||
|
|
|
@ -26,16 +26,24 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_core_srv_util IMPLEMENTATION.
|
||||
METHOD app_get_url.
|
||||
DATA lv_url TYPE string.
|
||||
DATA lt_param TYPE z2ui5_cl_util=>ty_t_name_value.
|
||||
DATA temp1 TYPE z2ui5_cl_util=>ty_s_name_value.
|
||||
|
||||
IF classname IS INITIAL.
|
||||
classname = rtti_get_classname_by_ref( client->get_app( ) ).
|
||||
ENDIF.
|
||||
|
||||
DATA(lv_url) = |{ client->get( )-s_config-origin }{ client->get( )-s_config-pathname }?|.
|
||||
DATA(lt_param) = url_param_get_tab( client->get( )-s_config-search ).
|
||||
|
||||
lv_url = |{ client->get( )-s_config-origin }{ client->get( )-s_config-pathname }?|.
|
||||
|
||||
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.
|
||||
|
||||
CLEAR temp1.
|
||||
temp1-n = `app_start`.
|
||||
temp1-v = to_lower( classname ).
|
||||
INSERT temp1 INTO TABLE lt_param.
|
||||
|
||||
result = lv_url && url_param_create_url( lt_param ) && client->get( )-s_config-hash.
|
||||
|
||||
|
@ -43,7 +51,8 @@ CLASS z2ui5_cl_core_srv_util IMPLEMENTATION.
|
|||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
DATA(ls_config) = client->get( )-s_config.
|
||||
DATA ls_config TYPE z2ui5_if_types=>ty_s_config.
|
||||
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|.
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ CLASS z2ui5_cl_pop_bal DEFINITION
|
|||
message_v4 TYPE string,
|
||||
group TYPE string,
|
||||
END OF ty_s_msg.
|
||||
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg WITH EMPTY KEY.
|
||||
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg WITH DEFAULT KEY.
|
||||
|
||||
DATA mt_msg TYPE ty_t_msg.
|
||||
|
||||
|
@ -46,18 +46,29 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_pop_bal IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
DATA lt_msg TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp1 LIKE LINE OF lt_msg.
|
||||
DATA lr_row LIKE REF TO temp1.
|
||||
DATA temp2 TYPE ty_s_msg.
|
||||
DATA ls_row LIKE temp2.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
|
||||
"read log infos
|
||||
"handle
|
||||
"..
|
||||
|
||||
"read messages..
|
||||
DATA(lt_msg) = z2ui5_cl_util=>msg_get_t( i_messages ).
|
||||
LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
|
||||
|
||||
DATA(ls_row) = VALUE ty_s_msg( ).
|
||||
lt_msg = z2ui5_cl_util=>msg_get_t( i_messages ).
|
||||
|
||||
|
||||
LOOP AT lt_msg REFERENCE INTO lr_row.
|
||||
|
||||
|
||||
CLEAR temp2.
|
||||
|
||||
ls_row = temp2.
|
||||
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
||||
ls_row-title = lr_row->text.
|
||||
ls_row-id = lr_row->id.
|
||||
|
@ -81,14 +92,17 @@ CLASS z2ui5_cl_pop_bal IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA table TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
popup = popup->dialog( title = `Business Application Log`
|
||||
contentheight = '50%'
|
||||
contentwidth = '50%'
|
||||
verticalscrolling = abap_false
|
||||
afterclose = client->_event( 'BUTTON_CONTINUE' ) ).
|
||||
|
||||
DATA(table) = popup->table( client->_bind( mt_msg ) ).
|
||||
|
||||
table = popup->table( client->_bind( mt_msg ) ).
|
||||
table->columns(
|
||||
)->column( )->text( 'Date' )->get_parent(
|
||||
)->column( )->text( 'Time' )->get_parent(
|
||||
|
|
|
@ -26,14 +26,15 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_error IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->error = x_root.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = `Error View`
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = `Error View`
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
)->vbox( 'sapUiMediumMargin'
|
||||
|
|
|
@ -46,7 +46,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_file_dl IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = i_title.
|
||||
|
||||
r_result->question_text = i_text.
|
||||
|
@ -66,18 +66,33 @@ CLASS z2ui5_cl_pop_file_dl IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA lv_csv_x TYPE xstring.
|
||||
DATA lv_base64 TYPE string.
|
||||
DATA temp1 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp2 LIKE LINE OF temp1.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content( ).
|
||||
|
||||
IF mv_check_download = abap_true.
|
||||
DATA(lv_csv_x) = z2ui5_cl_util=>conv_get_xstring_by_string( mv_value ).
|
||||
DATA(lv_base64) = z2ui5_cl_util=>conv_encode_x_base64( lv_csv_x ).
|
||||
|
||||
lv_csv_x = z2ui5_cl_util=>conv_get_xstring_by_string( mv_value ).
|
||||
|
||||
lv_base64 = z2ui5_cl_util=>conv_encode_x_base64( lv_csv_x ).
|
||||
|
||||
CLEAR temp1.
|
||||
|
||||
temp2-n = `src`.
|
||||
temp2-v = mv_type && lv_base64.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `hidden`.
|
||||
temp2-v = `hidden`.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
popup->_generic( ns = `html`
|
||||
name = `iframe`
|
||||
t_prop = VALUE #( ( n = `src` v = mv_type && lv_base64 )
|
||||
( n = `hidden` v = `hidden` ) ) ).
|
||||
t_prop = temp1 ).
|
||||
|
||||
popup->_z2ui5( )->timer( client->_event( `CALLBACK_DOWNLOAD` ) ).
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = i_title.
|
||||
|
||||
r_result->question_text = i_text.
|
||||
|
@ -67,7 +67,8 @@ CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
|
@ -91,6 +92,9 @@ CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
DATA lv_dummy TYPE string.
|
||||
DATA lv_data TYPE string.
|
||||
DATA lv_data2 TYPE xstring.
|
||||
|
||||
me->client = client.
|
||||
|
||||
|
@ -104,10 +108,13 @@ CLASS z2ui5_cl_pop_file_ul IMPLEMENTATION.
|
|||
|
||||
WHEN `UPLOAD`.
|
||||
|
||||
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
|
||||
|
||||
|
||||
SPLIT mv_value AT `;` INTO lv_dummy lv_data.
|
||||
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
|
||||
|
||||
DATA(lv_data2) = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
|
||||
|
||||
lv_data2 = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
|
||||
ms_result-value = z2ui5_cl_util=>conv_get_string_by_xstring( lv_data2 ).
|
||||
check_confirm_enabled = abap_true.
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ CLASS z2ui5_cl_pop_get_range DEFINITION
|
|||
key TYPE string,
|
||||
END OF ty_s_filter_pop.
|
||||
|
||||
DATA mt_filter TYPE STANDARD TABLE OF ty_s_filter_pop WITH EMPTY KEY.
|
||||
DATA mt_filter TYPE STANDARD TABLE OF ty_s_filter_pop WITH DEFAULT KEY.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
|
@ -48,14 +48,17 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
DATA temp1 TYPE z2ui5_cl_util=>ty_s_range.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
|
||||
z2ui5_cl_util=>itab_corresponding( EXPORTING val = t_range
|
||||
CHANGING tab = r_result->ms_result-t_range
|
||||
).
|
||||
|
||||
INSERT VALUE #( ) INTO TABLE r_result->ms_result-t_range.
|
||||
|
||||
CLEAR temp1.
|
||||
INSERT temp1 INTO TABLE r_result->ms_result-t_range.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -67,23 +70,34 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA lo_popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA vbox TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA item TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA grid TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA temp2 TYPE string_table.
|
||||
lo_popup = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
contentheight = `50%`
|
||||
contentwidth = `50%`
|
||||
title = 'Define Filter Conditons' ).
|
||||
|
||||
DATA(vbox) = lo_popup->vbox( height = `100%`
|
||||
|
||||
vbox = lo_popup->vbox( height = `100%`
|
||||
justifycontent = 'SpaceBetween' ).
|
||||
|
||||
DATA(item) = vbox->list( nodata = `no conditions defined`
|
||||
|
||||
item = vbox->list( nodata = `no conditions defined`
|
||||
items = client->_bind_edit( mt_filter )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
DATA(grid) = item->grid( ).
|
||||
|
||||
grid = item->grid( ).
|
||||
|
||||
|
||||
CLEAR temp2.
|
||||
INSERT `${KEY}` INTO TABLE temp2.
|
||||
grid->combobox( selectedkey = `{OPTION}`
|
||||
items = client->_bind( mt_mapping )
|
||||
)->item( key = '{N}'
|
||||
|
@ -97,7 +111,7 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
)->button( icon = 'sap-icon://decline'
|
||||
type = `Transparent`
|
||||
press = client->_event( val = `POPUP_DELETE`
|
||||
t_arg = VALUE #( ( `${KEY}` ) ) ) ).
|
||||
t_arg = temp2 ) ).
|
||||
|
||||
lo_popup->buttons(
|
||||
)->button( text = `Delete All`
|
||||
|
@ -118,6 +132,17 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
DATA temp4 LIKE LINE OF ms_result-t_range.
|
||||
DATA lr_product LIKE REF TO temp4.
|
||||
DATA temp5 TYPE z2ui5_cl_pop_get_range=>ty_s_filter_pop.
|
||||
DATA temp6 LIKE LINE OF mt_filter.
|
||||
DATA lr_filter LIKE REF TO temp6.
|
||||
DATA temp7 TYPE z2ui5_cl_util=>ty_s_range.
|
||||
DATA temp8 TYPE z2ui5_cl_pop_get_range=>ty_s_filter_pop.
|
||||
DATA lt_event TYPE string_table.
|
||||
DATA temp9 LIKE LINE OF lt_event.
|
||||
DATA temp10 LIKE sy-tabix.
|
||||
DATA temp11 LIKE mt_filter.
|
||||
|
||||
me->client = client.
|
||||
|
||||
|
@ -127,12 +152,16 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
mt_mapping = z2ui5_cl_util=>filter_get_token_range_mapping( ).
|
||||
|
||||
CLEAR mt_filter.
|
||||
LOOP AT ms_result-t_range REFERENCE INTO DATA(lr_product).
|
||||
INSERT VALUE #( low = lr_product->low
|
||||
high = lr_product->high
|
||||
option = lr_product->option
|
||||
key = z2ui5_cl_util=>uuid_get_c32( )
|
||||
) INTO TABLE mt_filter.
|
||||
|
||||
|
||||
LOOP AT ms_result-t_range REFERENCE INTO lr_product.
|
||||
|
||||
CLEAR temp5.
|
||||
temp5-low = lr_product->low.
|
||||
temp5-high = lr_product->high.
|
||||
temp5-option = lr_product->option.
|
||||
temp5-key = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
INSERT temp5 INTO TABLE mt_filter.
|
||||
ENDLOOP.
|
||||
|
||||
view_display( ).
|
||||
|
@ -144,15 +173,19 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
WHEN `BUTTON_CONFIRM`.
|
||||
|
||||
CLEAR ms_result-t_range.
|
||||
LOOP AT mt_filter REFERENCE INTO DATA(lr_filter).
|
||||
|
||||
|
||||
LOOP AT mt_filter REFERENCE INTO lr_filter.
|
||||
IF lr_filter->low IS INITIAL AND lr_filter->high IS INITIAL.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
INSERT VALUE #( sign = `I`
|
||||
option = lr_filter->option
|
||||
low = lr_filter->low
|
||||
high = lr_filter->high
|
||||
) INTO TABLE ms_result-t_range.
|
||||
|
||||
CLEAR temp7.
|
||||
temp7-sign = `I`.
|
||||
temp7-option = lr_filter->option.
|
||||
temp7-low = lr_filter->low.
|
||||
temp7-high = lr_filter->high.
|
||||
INSERT temp7 INTO TABLE ms_result-t_range.
|
||||
ENDLOOP.
|
||||
|
||||
ms_result-check_confirmed = abap_true.
|
||||
|
@ -164,16 +197,30 @@ CLASS z2ui5_cl_pop_get_range IMPLEMENTATION.
|
|||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `POPUP_ADD`.
|
||||
INSERT VALUE #( key = z2ui5_cl_util=>uuid_get_c32( ) ) INTO TABLE mt_filter.
|
||||
|
||||
CLEAR temp8.
|
||||
temp8-key = z2ui5_cl_util=>uuid_get_c32( ).
|
||||
INSERT temp8 INTO TABLE mt_filter.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN `POPUP_DELETE`.
|
||||
DATA(lt_event) = client->get( )-t_event_arg.
|
||||
DELETE mt_filter WHERE key = lt_event[ 1 ].
|
||||
|
||||
lt_event = client->get( )-t_event_arg.
|
||||
|
||||
|
||||
temp10 = sy-tabix.
|
||||
READ TABLE lt_event INDEX 1 INTO temp9.
|
||||
sy-tabix = temp10.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
DELETE mt_filter WHERE key = temp9.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN `POPUP_DELETE_ALL`.
|
||||
mt_filter = VALUE #( ).
|
||||
|
||||
CLEAR temp11.
|
||||
mt_filter = temp11.
|
||||
client->popup_model_update( ).
|
||||
|
||||
ENDCASE.
|
||||
|
|
|
@ -39,7 +39,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->ms_result-t_filter = val.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -52,27 +52,40 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
|
||||
METHOD popup_display.
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA lo_popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA vbox TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA item TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA grid TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA temp1 TYPE string_table.
|
||||
DATA temp3 TYPE string_table.
|
||||
DATA temp5 TYPE string_table.
|
||||
lo_popup = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
lo_popup = lo_popup->dialog( afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
contentheight = `50%`
|
||||
contentwidth = `50%`
|
||||
title = 'Define Filter Conditons' ).
|
||||
|
||||
DATA(vbox) = lo_popup->vbox( height = `100%`
|
||||
|
||||
vbox = lo_popup->vbox( height = `100%`
|
||||
justifycontent = 'SpaceBetween' ).
|
||||
|
||||
DATA(item) = vbox->list( nodata = `no conditions defined`
|
||||
|
||||
item = vbox->list( nodata = `no conditions defined`
|
||||
items = client->_bind( ms_result-t_filter )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
DATA(grid) = item->grid( class = `sapUiSmallMarginTop sapUiSmallMarginBottom sapUiSmallMarginBegin` ).
|
||||
|
||||
grid = item->grid( class = `sapUiSmallMarginTop sapUiSmallMarginBottom sapUiSmallMarginBegin` ).
|
||||
grid->text( `{NAME}` ).
|
||||
|
||||
|
||||
CLEAR temp1.
|
||||
INSERT `${NAME}` INTO TABLE temp1.
|
||||
grid->multi_input( tokens = `{T_TOKEN}`
|
||||
enabled = abap_false
|
||||
valuehelprequest = client->_event( val = `LIST_OPEN`
|
||||
t_arg = VALUE #( ( `${NAME}` ) ) )
|
||||
t_arg = temp1 )
|
||||
)->tokens(
|
||||
)->token( key = `{KEY}`
|
||||
text = `{TEXT}`
|
||||
|
@ -80,14 +93,20 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
selected = `{SELKZ}`
|
||||
editable = `{EDITABLE}` ).
|
||||
|
||||
|
||||
CLEAR temp3.
|
||||
INSERT `${NAME}` INTO TABLE temp3.
|
||||
grid->button( text = `Select`
|
||||
press = client->_event( val = `LIST_OPEN`
|
||||
t_arg = VALUE #( ( `${NAME}` ) ) ) ).
|
||||
t_arg = temp3 ) ).
|
||||
|
||||
CLEAR temp5.
|
||||
INSERT `${NAME}` INTO TABLE temp5.
|
||||
grid->button( icon = 'sap-icon://delete'
|
||||
type = `Transparent`
|
||||
text = `Clear`
|
||||
press = client->_event( val = `LIST_DELETE`
|
||||
t_arg = VALUE #( ( `${NAME}` ) ) ) ).
|
||||
t_arg = temp5 ) ).
|
||||
|
||||
lo_popup->buttons(
|
||||
)->button( text = `Clear All`
|
||||
|
@ -108,6 +127,19 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
DATA temp7 TYPE REF TO z2ui5_cl_pop_get_range.
|
||||
DATA lo_popup LIKE temp7.
|
||||
FIELD-SYMBOLS <tab> TYPE z2ui5_cl_util=>ty_s_filter_multi.
|
||||
DATA lt_event TYPE string_table.
|
||||
DATA temp1 LIKE LINE OF lt_event.
|
||||
DATA temp2 LIKE sy-tabix.
|
||||
DATA temp8 LIKE LINE OF lt_event.
|
||||
DATA temp9 LIKE sy-tabix.
|
||||
DATA ls_sql TYPE z2ui5_cl_util=>ty_s_filter_multi.
|
||||
DATA temp3 LIKE LINE OF ms_result-t_filter.
|
||||
DATA temp4 LIKE sy-tabix.
|
||||
DATA temp10 LIKE LINE OF ms_result-t_filter.
|
||||
DATA lr_sql LIKE REF TO temp10.
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
|
@ -118,9 +150,13 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
|
||||
IF client->get( )-check_on_navigated = abap_true.
|
||||
|
||||
DATA(lo_popup) = CAST z2ui5_cl_pop_get_range( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
|
||||
temp7 ?= client->get_app( client->get( )-s_draft-id_prev_app ).
|
||||
|
||||
lo_popup = temp7.
|
||||
IF lo_popup->result( )-check_confirmed = abap_true.
|
||||
ASSIGN ms_result-t_filter[ name = mv_popup_name ] TO FIELD-SYMBOL(<tab>).
|
||||
|
||||
READ TABLE ms_result-t_filter WITH KEY name = mv_popup_name ASSIGNING <tab>.
|
||||
<tab>-t_range = lo_popup->result( )-t_range.
|
||||
<tab>-t_token = z2ui5_cl_util=>filter_get_token_t_by_range_t( <tab>-t_range ).
|
||||
ENDIF.
|
||||
|
@ -131,16 +167,42 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'LIST_DELETE'.
|
||||
DATA(lt_event) = client->get( )-t_event_arg.
|
||||
ASSIGN ms_result-t_filter[ name = lt_event[ 1 ] ] TO <tab>.
|
||||
|
||||
lt_event = client->get( )-t_event_arg.
|
||||
|
||||
|
||||
temp2 = sy-tabix.
|
||||
READ TABLE lt_event INDEX 1 INTO temp1.
|
||||
sy-tabix = temp2.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
READ TABLE ms_result-t_filter WITH KEY name = temp1 ASSIGNING <tab>.
|
||||
CLEAR <tab>-t_token.
|
||||
CLEAR <tab>-t_range.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN 'LIST_OPEN'.
|
||||
lt_event = client->get( )-t_event_arg.
|
||||
mv_popup_name = lt_event[ 1 ].
|
||||
DATA(ls_sql) = ms_result-t_filter[ name = mv_popup_name ].
|
||||
|
||||
|
||||
temp9 = sy-tabix.
|
||||
READ TABLE lt_event INDEX 1 INTO temp8.
|
||||
sy-tabix = temp9.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
mv_popup_name = temp8.
|
||||
|
||||
|
||||
|
||||
temp4 = sy-tabix.
|
||||
READ TABLE ms_result-t_filter WITH KEY name = mv_popup_name INTO temp3.
|
||||
sy-tabix = temp4.
|
||||
IF sy-subrc <> 0.
|
||||
ASSERT 1 = 0.
|
||||
ENDIF.
|
||||
ls_sql = temp3.
|
||||
client->nav_app_call( z2ui5_cl_pop_get_range=>factory( ls_sql-t_range ) ).
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
|
@ -153,7 +215,9 @@ CLASS z2ui5_cl_pop_get_range_m IMPLEMENTATION.
|
|||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `POPUP_DELETE_ALL`.
|
||||
LOOP AT ms_result-t_filter REFERENCE INTO DATA(lr_sql).
|
||||
|
||||
|
||||
LOOP AT ms_result-t_filter REFERENCE INTO lr_sql.
|
||||
CLEAR lr_sql->t_range.
|
||||
CLEAR lr_sql->t_token.
|
||||
ENDLOOP.
|
||||
|
|
|
@ -32,7 +32,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_html IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->html = i_html.
|
||||
|
@ -42,7 +42,8 @@ CLASS z2ui5_cl_pop_html IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
|
|
|
@ -47,7 +47,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_input_val IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = title.
|
||||
|
||||
r_result->question_text = text.
|
||||
|
@ -65,7 +65,8 @@ CLASS z2ui5_cl_pop_input_val IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
|
|
|
@ -40,7 +40,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_itab_json_dl IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->mr_itab = z2ui5_cl_util=>conv_copy_ref_data( itab ).
|
||||
|
||||
r_result->title = i_title.
|
||||
|
@ -59,6 +59,12 @@ CLASS z2ui5_cl_pop_itab_json_dl IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
DATA app TYPE REF TO object.
|
||||
DATA lv_link TYPE string.
|
||||
DATA lv_text TYPE string.
|
||||
DATA lx TYPE REF TO z2ui5_cx_util_error.
|
||||
DATA lv_classname TYPE string.
|
||||
DATA temp1 TYPE REF TO z2ui5_if_app.
|
||||
DATA x TYPE REF TO cx_root.
|
||||
|
||||
me->client = client.
|
||||
|
||||
|
@ -66,25 +72,32 @@ CLASS z2ui5_cl_pop_itab_json_dl IMPLEMENTATION.
|
|||
|
||||
IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_dbt_cl_app_03` ) = abap_false.
|
||||
|
||||
DATA(lv_link) = `https://github.com/oblomov-dev/a2UI5-db_table_loader`.
|
||||
DATA(lv_text) = |<p>Please install the open-source project a2UI5-db_table_loader and try again: <a href="| &&
|
||||
|
||||
lv_link = `https://github.com/oblomov-dev/a2UI5-db_table_loader`.
|
||||
|
||||
lv_text = |<p>Please install the open-source project a2UI5-db_table_loader and try again: <a href="| &&
|
||||
|{ lv_link }" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>|.
|
||||
|
||||
DATA(lx) = NEW z2ui5_cx_util_error( val = lv_text ).
|
||||
|
||||
CREATE OBJECT lx TYPE z2ui5_cx_util_error EXPORTING val = lv_text.
|
||||
client->nav_app_leave( z2ui5_cl_pop_error=>factory( lx ) ).
|
||||
|
||||
ELSE.
|
||||
|
||||
DATA(lv_classname) = `Z2UI5_DBT_CL_APP_03`.
|
||||
|
||||
lv_classname = `Z2UI5_DBT_CL_APP_03`.
|
||||
CALL METHOD (lv_classname)=>('FACTORY_POPUP_BY_ITAB')
|
||||
EXPORTING itab = mr_itab
|
||||
RECEIVING result = app.
|
||||
|
||||
client->nav_app_leave( CAST #( app ) ).
|
||||
|
||||
temp1 ?= app.
|
||||
client->nav_app_leave( temp1 ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
|
||||
CATCH cx_root INTO x.
|
||||
client->nav_app_leave( z2ui5_cl_pop_to_inform=>factory( x->get_text( ) ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -40,14 +40,14 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->js = i_js.
|
||||
r_result->user_command = i_result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory_check_open_ui5.
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->check_open_ui5 = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -59,7 +59,8 @@ CLASS z2ui5_cl_pop_js_loader IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( `Setup UI...`
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( `Setup UI...`
|
||||
)->content( ).
|
||||
|
||||
IF js IS NOT INITIAL.
|
||||
|
|
|
@ -20,7 +20,7 @@ CLASS z2ui5_cl_pop_messages DEFINITION
|
|||
message_v4 TYPE string,
|
||||
group TYPE string,
|
||||
END OF ty_s_msg.
|
||||
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg WITH EMPTY KEY.
|
||||
TYPES ty_t_msg TYPE STANDARD TABLE OF ty_s_msg WITH DEFAULT KEY.
|
||||
|
||||
DATA mt_msg TYPE ty_t_msg.
|
||||
|
||||
|
@ -44,13 +44,24 @@ ENDCLASS.
|
|||
|
||||
CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
DATA lt_msg TYPE z2ui5_cl_util=>ty_t_msg.
|
||||
DATA temp1 LIKE LINE OF lt_msg.
|
||||
DATA lr_row LIKE REF TO temp1.
|
||||
DATA temp2 TYPE ty_s_msg.
|
||||
DATA ls_row LIKE temp2.
|
||||
|
||||
r_result = NEW #( ).
|
||||
DATA(lt_msg) = z2ui5_cl_util=>msg_get_t( i_messages ).
|
||||
CREATE OBJECT r_result.
|
||||
|
||||
LOOP AT lt_msg REFERENCE INTO DATA(lr_row).
|
||||
lt_msg = z2ui5_cl_util=>msg_get_t( i_messages ).
|
||||
|
||||
DATA(ls_row) = VALUE ty_s_msg( ).
|
||||
|
||||
|
||||
LOOP AT lt_msg REFERENCE INTO lr_row.
|
||||
|
||||
|
||||
CLEAR temp2.
|
||||
|
||||
ls_row = temp2.
|
||||
ls_row-type = z2ui5_cl_util=>ui5_get_msg_type( lr_row->type ).
|
||||
ls_row-title = lr_row->text.
|
||||
* lr_row->title = `title`.
|
||||
|
@ -67,7 +78,8 @@ CLASS z2ui5_cl_pop_messages IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
popup = popup->dialog( title = `Messages`
|
||||
contentheight = '50%'
|
||||
contentwidth = '50%'
|
||||
|
|
|
@ -48,7 +48,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = i_title.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
|
@ -64,7 +64,22 @@ CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA temp1 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp2 LIKE LINE OF temp1.
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
CLEAR temp1.
|
||||
|
||||
temp2-n = `src`.
|
||||
temp2-v = mv_pdf.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `height`.
|
||||
temp2-v = `800px`.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `width`.
|
||||
temp2-v = `99%`.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
stretch = abap_true
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
|
@ -73,10 +88,7 @@ CLASS z2ui5_cl_pop_pdf IMPLEMENTATION.
|
|||
)->label( question_text
|
||||
)->_generic( ns = `html`
|
||||
name = `iframe`
|
||||
t_prop = VALUE #( ( n = `src` v = mv_pdf )
|
||||
( n = `height` v = `800px` )
|
||||
( n = `width` v = `99%` )
|
||||
)
|
||||
t_prop = temp1
|
||||
)->get_parent( )->get_parent( )->get_parent(
|
||||
)->buttons(
|
||||
)->button( text = button_text_cancel
|
||||
|
|
|
@ -43,27 +43,41 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
METHOD display.
|
||||
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA tab TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA lt_comp TYPE abap_component_tab.
|
||||
DATA list TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA cells TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA ls_comp LIKE LINE OF lt_comp.
|
||||
DATA columns TYPE REF TO z2ui5_cl_xml_view.
|
||||
|
||||
ASSIGN mr_tab->* TO <tab_out>.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
stretch = abap_true
|
||||
title = title
|
||||
* icon = 'sap-icon://edit'
|
||||
)->content( ).
|
||||
|
||||
DATA(tab) = popup->table( client->_bind( <tab_out> ) ).
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
tab = popup->table( client->_bind( <tab_out> ) ).
|
||||
|
||||
DATA(list) = tab->column_list_item( valign = `Top` ).
|
||||
DATA(cells) = list->cells( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
lt_comp = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
|
||||
|
||||
list = tab->column_list_item( valign = `Top` ).
|
||||
|
||||
cells = list->cells( ).
|
||||
|
||||
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
cells->text( |\{{ ls_comp-name }\}| ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
|
||||
columns = tab->columns( ).
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
columns->column( '8rem' )->header( `` )->text( ls_comp-name ).
|
||||
ENDLOOP.
|
||||
|
@ -81,7 +95,7 @@ CLASS z2ui5_cl_pop_table IMPLEMENTATION.
|
|||
METHOD factory.
|
||||
FIELD-SYMBOLS <tab> TYPE any.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
IF i_title IS NOT INITIAL.
|
||||
r_result->title = i_title.
|
||||
ENDIF.
|
||||
|
|
|
@ -44,7 +44,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->mv_stretch_active = i_stretch_active.
|
||||
r_result->ms_result-text = i_textarea.
|
||||
r_result->mv_title = i_title.
|
||||
|
@ -54,7 +54,8 @@ CLASS z2ui5_cl_pop_textedit IMPLEMENTATION.
|
|||
|
||||
METHOD display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( afterclose = client->_event( 'BUTTON_TEXTAREA_CANCEL' )
|
||||
stretch = mv_stretch_active
|
||||
title = mv_title
|
||||
icon = 'sap-icon://edit'
|
||||
|
|
|
@ -56,7 +56,7 @@ CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
|
|||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
|
@ -70,7 +70,8 @@ CLASS z2ui5_cl_pop_to_confirm IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content(
|
||||
|
|
|
@ -32,7 +32,7 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
|
@ -42,7 +42,8 @@ CLASS z2ui5_cl_pop_to_inform IMPLEMENTATION.
|
|||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( )->dialog( title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CONFIRM' )
|
||||
)->content(
|
||||
|
|
|
@ -63,13 +63,17 @@ ENDCLASS.
|
|||
CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
||||
|
||||
METHOD factory.
|
||||
DATA temp1 TYPE string.
|
||||
|
||||
r_result = NEW #( ).
|
||||
CREATE OBJECT r_result.
|
||||
IF i_title IS INITIAL.
|
||||
r_result->title = COND #(
|
||||
WHEN i_multiselect = abap_true
|
||||
THEN `Multi select`
|
||||
ELSE `Single select` ).
|
||||
|
||||
IF i_multiselect = abap_true.
|
||||
temp1 = `Multi select`.
|
||||
ELSE.
|
||||
temp1 = `Single select`.
|
||||
ENDIF.
|
||||
r_result->title = temp1.
|
||||
ELSE.
|
||||
r_result->title = i_title.
|
||||
ENDIF.
|
||||
|
@ -92,11 +96,34 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
METHOD display.
|
||||
|
||||
FIELD-SYMBOLS <tab_out> TYPE STANDARD TABLE.
|
||||
DATA popup TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA temp2 TYPE string_table.
|
||||
DATA temp1 TYPE string_table.
|
||||
DATA tab TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA lt_comp TYPE abap_component_tab.
|
||||
DATA list TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA cells TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA ls_comp LIKE LINE OF lt_comp.
|
||||
DATA columns TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA temp4 TYPE REF TO cl_abap_elemdescr.
|
||||
DATA temp5 TYPE z2ui5_cl_util_abap=>ty_s_data_element_text-medium.
|
||||
DATA data_element_name TYPE string.
|
||||
DATA medium_label TYPE z2ui5_cl_util_abap=>ty_s_data_element_text-medium.
|
||||
DATA text LIKE temp5.
|
||||
|
||||
ASSIGN mr_tab_popup->* TO <tab_out>.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
DATA(tab) = popup->table_select_dialog(
|
||||
|
||||
popup = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
CLEAR temp2.
|
||||
INSERT `${$parameters>/value}` INTO TABLE temp2.
|
||||
INSERT `${$parameters>/clearButtonPressed}` INTO TABLE temp2.
|
||||
|
||||
CLEAR temp1.
|
||||
INSERT `${$parameters>/selectedContexts[0]/sPath}` INTO TABLE temp1.
|
||||
|
||||
tab = popup->table_select_dialog(
|
||||
items = |\{path:'|
|
||||
&& client->_bind_edit( val = <tab_out>
|
||||
path = abap_true )
|
||||
|
@ -106,9 +133,9 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
cancel = client->_event( 'CANCEL' )
|
||||
search = client->_event(
|
||||
val = 'SEARCH'
|
||||
t_arg = VALUE #( ( `${$parameters>/value}` ) ( `${$parameters>/clearButtonPressed}` ) ) )
|
||||
t_arg = temp2 )
|
||||
confirm = client->_event( val = 'CONFIRM'
|
||||
t_arg = VALUE #( ( `${$parameters>/selectedContexts[0]/sPath}` ) ) )
|
||||
t_arg = temp1 )
|
||||
growing = abap_true
|
||||
contentwidth = content_width
|
||||
contentheight = content_height
|
||||
|
@ -116,27 +143,38 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
title = title
|
||||
multiselect = multiselect ).
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
|
||||
lt_comp = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
DELETE lt_comp WHERE name = 'ZZSELKZ'.
|
||||
|
||||
DATA(list) = tab->column_list_item( valign = `Top`
|
||||
selected = `{ZZSELKZ}` ).
|
||||
DATA(cells) = list->cells( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
list = tab->column_list_item( valign = `Top`
|
||||
selected = `{ZZSELKZ}` ).
|
||||
|
||||
cells = list->cells( ).
|
||||
|
||||
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
cells->text( |\{{ ls_comp-name }\}| ).
|
||||
ENDLOOP.
|
||||
|
||||
DATA(columns) = tab->columns( ).
|
||||
|
||||
columns = tab->columns( ).
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
DATA(text) = COND #(
|
||||
LET data_element_name = substring_after(
|
||||
val = CAST cl_abap_elemdescr( ls_comp-type )->absolute_name
|
||||
sub = '\TYPE=' )
|
||||
medium_label = z2ui5_cl_util=>rtti_get_data_element_texts( data_element_name )-medium IN
|
||||
WHEN medium_label IS NOT INITIAL
|
||||
THEN medium_label
|
||||
ELSE ls_comp-name ).
|
||||
|
||||
temp4 ?= ls_comp-type.
|
||||
|
||||
|
||||
data_element_name = substring_after( val = temp4->absolute_name sub = '\TYPE=' ).
|
||||
|
||||
medium_label = z2ui5_cl_util=>rtti_get_data_element_texts( data_element_name )-medium.
|
||||
IF medium_label IS NOT INITIAL.
|
||||
temp5 = medium_label.
|
||||
ELSE.
|
||||
temp5 = ls_comp-name.
|
||||
ENDIF.
|
||||
|
||||
text = temp5.
|
||||
columns->column( '8rem' )->header( `` )->text( text ).
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -194,29 +232,72 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <tab_out2> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <field> TYPE any.
|
||||
DATA lr_row TYPE REF TO data.
|
||||
DATA lo_type TYPE REF TO cl_abap_typedescr.
|
||||
DATA temp5 TYPE REF TO cl_abap_tabledescr.
|
||||
DATA lo_table LIKE temp5.
|
||||
DATA temp6 TYPE REF TO cl_abap_structdescr.
|
||||
DATA lo_struct LIKE temp6.
|
||||
DATA lt_comp TYPE abap_component_tab.
|
||||
DATA temp7 TYPE REF TO cl_abap_elemdescr.
|
||||
DATA lo_elem LIKE temp7.
|
||||
DATA temp8 TYPE abap_componentdescr.
|
||||
DATA temp11 TYPE REF TO cl_abap_datadescr.
|
||||
DATA temp9 LIKE sy-subrc.
|
||||
DATA lo_type_bool TYPE REF TO cl_abap_typedescr.
|
||||
DATA temp10 TYPE abap_componentdescr.
|
||||
DATA temp12 TYPE REF TO cl_abap_datadescr.
|
||||
DATA lo_line_type TYPE REF TO cl_abap_structdescr.
|
||||
DATA lo_tab_type TYPE REF TO cl_abap_tabledescr.
|
||||
|
||||
ASSIGN mr_tab->* TO <tab>.
|
||||
|
||||
DATA(lo_type) = cl_abap_structdescr=>describe_by_data( <tab> ).
|
||||
DATA(lo_table) = CAST cl_abap_tabledescr( lo_type ).
|
||||
|
||||
lo_type = cl_abap_structdescr=>describe_by_data( <tab> ).
|
||||
|
||||
temp5 ?= lo_type.
|
||||
|
||||
lo_table = temp5.
|
||||
TRY.
|
||||
DATA(lo_struct) = CAST cl_abap_structdescr( lo_table->get_table_line_type( ) ).
|
||||
DATA(lt_comp) = lo_struct->get_components( ).
|
||||
|
||||
temp6 ?= lo_table->get_table_line_type( ).
|
||||
|
||||
lo_struct = temp6.
|
||||
|
||||
lt_comp = lo_struct->get_components( ).
|
||||
CATCH cx_root.
|
||||
check_table_line = abap_true.
|
||||
DATA(lo_elem) = CAST cl_abap_elemdescr( lo_table->get_table_line_type( ) ).
|
||||
INSERT VALUE #( name = 'TAB_LINE'
|
||||
type = CAST #( lo_elem ) ) INTO TABLE lt_comp.
|
||||
|
||||
temp7 ?= lo_table->get_table_line_type( ).
|
||||
|
||||
lo_elem = temp7.
|
||||
|
||||
CLEAR temp8.
|
||||
temp8-name = 'TAB_LINE'.
|
||||
|
||||
temp11 ?= lo_elem.
|
||||
temp8-type = temp11.
|
||||
INSERT temp8 INTO TABLE lt_comp.
|
||||
ENDTRY.
|
||||
|
||||
IF NOT line_exists( lt_comp[ name = `ZZSELKZ` ] ).
|
||||
DATA(lo_type_bool) = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ).
|
||||
INSERT VALUE #( name = `ZZSELKZ`
|
||||
type = CAST #( lo_type_bool ) ) INTO TABLE lt_comp.
|
||||
|
||||
READ TABLE lt_comp WITH KEY name = `ZZSELKZ` TRANSPORTING NO FIELDS.
|
||||
temp9 = sy-subrc.
|
||||
IF NOT temp9 = 0.
|
||||
|
||||
lo_type_bool = cl_abap_structdescr=>describe_by_name( 'ABAP_BOOL' ).
|
||||
|
||||
CLEAR temp10.
|
||||
temp10-name = `ZZSELKZ`.
|
||||
|
||||
temp12 ?= lo_type_bool.
|
||||
temp10-type = temp12.
|
||||
INSERT temp10 INTO TABLE lt_comp.
|
||||
ENDIF.
|
||||
|
||||
DATA(lo_line_type) = cl_abap_structdescr=>create( lt_comp ).
|
||||
DATA(lo_tab_type) = cl_abap_tabledescr=>create( lo_line_type ).
|
||||
|
||||
lo_line_type = cl_abap_structdescr=>create( lt_comp ).
|
||||
|
||||
lo_tab_type = cl_abap_tabledescr=>create( lo_line_type ).
|
||||
|
||||
CREATE DATA mr_tab_popup TYPE HANDLE lo_tab_type.
|
||||
CREATE DATA mr_tab_popup_backup TYPE HANDLE lo_tab_type.
|
||||
|
@ -232,7 +313,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<field> = <row>.
|
||||
ELSE.
|
||||
<row2> = CORRESPONDING #( <row> ).
|
||||
MOVE-CORRESPONDING <row> TO <row2>.
|
||||
ENDIF.
|
||||
INSERT <row2> INTO TABLE <tab_out>.
|
||||
|
||||
|
@ -268,7 +349,7 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
ASSERT sy-subrc = 0.
|
||||
<row_result> = <table_line_selected>.
|
||||
ELSE.
|
||||
<row_result> = CORRESPONDING #( <row_selected> ).
|
||||
MOVE-CORRESPONDING <row_selected> TO <row_result>.
|
||||
ENDIF.
|
||||
|
||||
INSERT <row_result> INTO TABLE <table_result>.
|
||||
|
@ -294,8 +375,15 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
FIELD-SYMBOLS <row2> TYPE any.
|
||||
FIELD-SYMBOLS <field2> TYPE any.
|
||||
|
||||
DATA(lt_arg) = client->get( )-t_event_arg.
|
||||
READ TABLE lt_arg INTO DATA(ls_arg) INDEX 1.
|
||||
DATA lt_arg TYPE string_table.
|
||||
DATA ls_arg TYPE string.
|
||||
DATA lt_comp TYPE abap_component_tab.
|
||||
DATA lv_check_continue LIKE abap_false.
|
||||
DATA ls_comp LIKE LINE OF lt_comp.
|
||||
DATA lv_assign TYPE string.
|
||||
lt_arg = client->get( )-t_event_arg.
|
||||
|
||||
READ TABLE lt_arg INTO ls_arg INDEX 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
ASSIGN mr_tab_popup->* TO <tab_out>.
|
||||
|
@ -303,11 +391,15 @@ CLASS z2ui5_cl_pop_to_select IMPLEMENTATION.
|
|||
|
||||
<tab_out> = <tab_out_backup>.
|
||||
|
||||
DATA(lt_comp) = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
|
||||
lt_comp = z2ui5_cl_util=>rtti_get_t_attri_by_any( <tab_out> ).
|
||||
LOOP AT <tab_out> ASSIGNING <row2>.
|
||||
DATA(lv_check_continue) = abap_false.
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
DATA(lv_assign) = |<ROW2>-{ ls_comp-name }|.
|
||||
|
||||
lv_check_continue = abap_false.
|
||||
|
||||
LOOP AT lt_comp INTO ls_comp.
|
||||
|
||||
lv_assign = |<ROW2>-{ ls_comp-name }|.
|
||||
ASSIGN (lv_assign) TO <field2>.
|
||||
ASSERT sy-subrc = 0.
|
||||
IF to_upper( <field2> ) CS to_upper( ls_arg ).
|
||||
|
|
|
@ -15,7 +15,7 @@ CLASS z2ui5_cl_app_hello_world IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
IF client->check_on_init( ).
|
||||
IF client->check_on_init( ) IS NOT INITIAL.
|
||||
|
||||
client->view_display( z2ui5_cl_xml_view=>factory(
|
||||
)->shell(
|
||||
|
|
|
@ -41,14 +41,16 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
|
||||
METHOD factory.
|
||||
|
||||
result = NEW #( ).
|
||||
CREATE OBJECT result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event_check.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
DATA lx TYPE REF TO cx_root.
|
||||
|
||||
TRY.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
|
||||
ms_home-classname = z2ui5_cl_util=>c_trim_upper( ms_home-classname ).
|
||||
CREATE OBJECT li_app_test TYPE (ms_home-classname).
|
||||
|
||||
|
@ -62,7 +64,8 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
ms_home-url = z2ui5_cl_core_srv_util=>app_get_url( client = client
|
||||
classname = ms_home-classname ).
|
||||
|
||||
CATCH cx_root INTO DATA(lx) ##CATCH_ALL.
|
||||
|
||||
CATCH cx_root INTO lx.
|
||||
ms_home-class_value_state_text = lx->get_text( ).
|
||||
ms_home-class_value_state = `Warning`.
|
||||
client->message_box_display( text = ms_home-class_value_state_text
|
||||
|
@ -73,7 +76,11 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
|
||||
METHOD view_display_start.
|
||||
|
||||
DATA(page) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
|
||||
DATA page TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA simple_form TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA lv_url_samples2 TYPE string.
|
||||
DATA temp1 TYPE string_table.
|
||||
page = z2ui5_cl_xml_view=>factory( )->shell( )->page(
|
||||
title = `abap2UI5 - Developing UI5 Apps Purely in ABAP`
|
||||
shownavbutton = abap_false ).
|
||||
|
||||
|
@ -86,7 +93,8 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
icon = `sap-icon://information`
|
||||
press = client->_event( `OPEN_INFO` ) ).
|
||||
|
||||
DATA(simple_form) = page->simple_form( editable = abap_true
|
||||
|
||||
simple_form = page->simple_form( editable = abap_true
|
||||
layout = `ResponsiveGridLayout`
|
||||
labelspanxl = `4`
|
||||
labelspanl = `3`
|
||||
|
@ -141,16 +149,20 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
href = client->_bind( ms_home-url )
|
||||
enabled = |\{= ${ client->_bind( val = ms_home-class_editable ) } === false \}| ).
|
||||
|
||||
DATA(lv_url_samples2) = z2ui5_cl_core_srv_util=>app_get_url( client = client
|
||||
|
||||
lv_url_samples2 = z2ui5_cl_core_srv_util=>app_get_url( client = client
|
||||
classname = 'z2ui5_cl_demo_app_000' ).
|
||||
|
||||
simple_form->toolbar( )->title( `What's next?` ).
|
||||
|
||||
IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_cl_demo_app_000` ).
|
||||
IF z2ui5_cl_util=>rtti_check_class_exists( `z2ui5_cl_demo_app_000` ) IS NOT INITIAL.
|
||||
simple_form->label( `Start Developing` ).
|
||||
|
||||
CLEAR temp1.
|
||||
INSERT lv_url_samples2 INTO TABLE temp1.
|
||||
simple_form->button( text = `Explore Code Samples`
|
||||
press = client->_event_client( val = client->cs_event-open_new_tab
|
||||
t_arg = VALUE #( ( lv_url_samples2 ) ) )
|
||||
t_arg = temp1 )
|
||||
width = `70%` ).
|
||||
|
||||
ELSE.
|
||||
|
@ -184,10 +196,14 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
DATA temp3 TYPE REF TO z2ui5_cl_pop_to_select.
|
||||
DATA lo_f4 LIKE temp3.
|
||||
DATA ls_result TYPE z2ui5_cl_pop_to_select=>ty_s_result.
|
||||
FIELD-SYMBOLS <class> TYPE data.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF client->check_on_init( ).
|
||||
IF client->check_on_init( ) IS NOT INITIAL.
|
||||
z2ui5_on_init( ).
|
||||
view_display_start( ).
|
||||
RETURN.
|
||||
|
@ -195,12 +211,18 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
|
||||
IF client->get( )-check_on_navigated = abap_true.
|
||||
TRY.
|
||||
DATA(lo_f4) = CAST z2ui5_cl_pop_to_select( client->get_app( client->get( )-s_draft-id_prev_app ) ).
|
||||
DATA(ls_result) = lo_f4->result( ).
|
||||
|
||||
temp3 ?= client->get_app( client->get( )-s_draft-id_prev_app ).
|
||||
|
||||
lo_f4 = temp3.
|
||||
|
||||
ls_result = lo_f4->result( ).
|
||||
IF ls_result-check_confirmed = abap_true.
|
||||
|
||||
ASSIGN ls_result-row->* TO FIELD-SYMBOL(<class>).
|
||||
ms_home = CORRESPONDING #( BASE ( ms_home ) <class> ).
|
||||
|
||||
ASSIGN ls_result-row->* TO <class>.
|
||||
ms_home = ms_home.
|
||||
MOVE-CORRESPONDING <class> TO ms_home.
|
||||
view_display_start( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -214,14 +236,22 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
|
||||
METHOD view_display_popup.
|
||||
|
||||
DATA(page2) = z2ui5_cl_xml_view=>factory_popup(
|
||||
DATA page2 TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA content TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA simple_form2 TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA temp4 TYPE string.
|
||||
DATA temp1 TYPE REF TO z2ui5_cl_core_srv_draft.
|
||||
DATA lv_count LIKE temp4.
|
||||
page2 = z2ui5_cl_xml_view=>factory_popup(
|
||||
)->dialog( title = `abap2UI5 - System Information`
|
||||
afterclose = client->_event( `CLOSE` ) ).
|
||||
|
||||
DATA(content) = page2->content( ).
|
||||
|
||||
content = page2->content( ).
|
||||
content->_z2ui5( )->info_frontend( ui5_version = client->_bind( mv_ui5_version ) ).
|
||||
|
||||
DATA(simple_form2) = content->simple_form( editable = abap_true
|
||||
|
||||
simple_form2 = content->simple_form( editable = abap_true
|
||||
layout = `ResponsiveGridLayout`
|
||||
labelspanxl = `4`
|
||||
labelspanl = `3`
|
||||
|
@ -252,7 +282,12 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
simple_form2->checkbox( enabled = abap_false
|
||||
selected = z2ui5_cl_util=>context_check_abap_cloud( ) ).
|
||||
|
||||
DATA(lv_count) = CONV string( NEW z2ui5_cl_core_srv_draft( )->count_entries( ) ).
|
||||
|
||||
|
||||
CREATE OBJECT temp1 TYPE z2ui5_cl_core_srv_draft.
|
||||
temp4 = temp1->count_entries( ).
|
||||
|
||||
lv_count = temp4.
|
||||
simple_form2->toolbar( )->title( `abap2UI5` ).
|
||||
simple_form2->label( `Version ` ).
|
||||
simple_form2->text( z2ui5_if_app=>version ).
|
||||
|
@ -308,12 +343,15 @@ CLASS z2ui5_cl_app_startup IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD z2ui5_on_init.
|
||||
DATA temp5 TYPE REF TO z2ui5_cl_app_hello_world.
|
||||
|
||||
ms_home-btn_text = `check`.
|
||||
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=>rtti_get_classname_by_ref( NEW z2ui5_cl_app_hello_world( ) ).
|
||||
|
||||
CREATE OBJECT temp5 TYPE z2ui5_cl_app_hello_world.
|
||||
ms_home-classname = z2ui5_cl_util=>rtti_get_classname_by_ref( temp5 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -10,7 +10,8 @@ ENDCLASS.
|
|||
CLASS ltcl_app_startup_test IMPLEMENTATION.
|
||||
METHOD first_test.
|
||||
|
||||
DATA(lo_app) = z2ui5_cl_app_startup=>factory( ) ##NEEDED.
|
||||
DATA lo_app TYPE REF TO z2ui5_cl_app_startup.
|
||||
lo_app = z2ui5_cl_app_startup=>factory( ) ##NEEDED.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -106,7 +106,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD factory.
|
||||
|
||||
result = NEW #( ).
|
||||
CREATE OBJECT result.
|
||||
|
||||
IF server IS BOUND.
|
||||
result->mo_server = z2ui5_cl_util_abap_http=>factory( server ).
|
||||
|
@ -121,13 +121,16 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD factory_cloud.
|
||||
|
||||
result = NEW #( ).
|
||||
CREATE OBJECT result.
|
||||
result->mo_server = z2ui5_cl_util_abap_http=>factory_cloud( req = req
|
||||
res = res ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD _http_get.
|
||||
DATA lv_style_css TYPE string.
|
||||
DATA temp1 LIKE LINE OF is_config-t_add_config.
|
||||
DATA lr_config LIKE REF TO temp1.
|
||||
|
||||
IF is_config-title IS INITIAL.
|
||||
is_config-title = `abap2UI5`.
|
||||
|
@ -150,7 +153,8 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF is_config-styles_css IS INITIAL.
|
||||
DATA(lv_style_css) = z2ui5_cl_app_style_css=>get( ).
|
||||
|
||||
lv_style_css = z2ui5_cl_app_style_css=>get( ).
|
||||
ELSE.
|
||||
lv_style_css = is_config-styles_css.
|
||||
ENDIF.
|
||||
|
@ -190,7 +194,9 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|data-sap-ui-compatVersion="edge" data-sap-ui-async="true" data-sap-ui-frameOptions="trusted" data-sap-ui-bindingSyntax="complex"| && |\n| &&
|
||||
|data-sap-ui-theme="{ is_config-theme }" src=" { is_config-src }" |.
|
||||
|
||||
LOOP AT is_config-t_add_config REFERENCE INTO DATA(lr_config).
|
||||
|
||||
|
||||
LOOP AT is_config-t_add_config REFERENCE INTO lr_config.
|
||||
result = |{ result } { lr_config->n }='{ lr_config->v }'|.
|
||||
ENDLOOP.
|
||||
|
||||
|
@ -204,7 +210,8 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD run.
|
||||
|
||||
DATA(lo_handler) = factory( server = server
|
||||
DATA lo_handler TYPE REF TO z2ui5_cl_http_handler.
|
||||
lo_handler = factory( server = server
|
||||
req = req
|
||||
res = res
|
||||
).
|
||||
|
@ -221,6 +228,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD set_response.
|
||||
DATA lv_contextid TYPE string.
|
||||
|
||||
mo_server->set_cdata( ms_res-body ).
|
||||
mo_server->set_header_field( n = `cache-control`
|
||||
|
@ -232,7 +240,8 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
IF ms_res-s_stateful-switched = abap_true.
|
||||
mo_server->set_session_stateful( ms_res-s_stateful-active ).
|
||||
IF mo_server->get_header_field( 'sap-contextid-accept' ) = 'header'.
|
||||
DATA(lv_contextid) = mo_server->get_response_cookie( 'sap-contextid' ).
|
||||
|
||||
lv_contextid = mo_server->get_response_cookie( 'sap-contextid' ).
|
||||
IF lv_contextid IS NOT INITIAL.
|
||||
mo_server->delete_response_cookie( 'sap-contextid' ).
|
||||
mo_server->set_header_field( n = 'sap-contextid'
|
||||
|
@ -250,9 +259,13 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD _http_post.
|
||||
DATA lo_post TYPE REF TO z2ui5_cl_core_handler.
|
||||
DATA temp2 TYPE REF TO z2ui5_if_app.
|
||||
DATA li_app LIKE temp2.
|
||||
|
||||
IF so_sticky_handler IS NOT BOUND.
|
||||
DATA(lo_post) = NEW z2ui5_cl_core_handler( is_req-body ).
|
||||
|
||||
CREATE OBJECT lo_post TYPE z2ui5_cl_core_handler EXPORTING VAL = is_req-body.
|
||||
ELSE.
|
||||
lo_post = so_sticky_handler.
|
||||
lo_post->mv_request_json = is_req-body.
|
||||
|
@ -262,7 +275,10 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
IF lo_post IS BOUND.
|
||||
DATA(li_app) = CAST z2ui5_if_app( lo_post->mo_action->mo_app->mo_app ).
|
||||
|
||||
temp2 ?= lo_post->mo_action->mo_app->mo_app.
|
||||
|
||||
li_app = temp2.
|
||||
IF li_app->check_sticky = abap_true.
|
||||
so_sticky_handler = lo_post.
|
||||
ELSE.
|
||||
|
@ -287,7 +303,8 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD get_request.
|
||||
|
||||
DATA(lo_handler) = factory( server = server
|
||||
DATA lo_handler TYPE REF TO z2ui5_cl_http_handler.
|
||||
lo_handler = factory( server = server
|
||||
req = req
|
||||
res = res
|
||||
).
|
||||
|
@ -299,7 +316,9 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
|
||||
METHOD get_response.
|
||||
|
||||
DATA(lo_handler) = factory( server = server
|
||||
DATA lo_handler TYPE REF TO z2ui5_cl_http_handler.
|
||||
DATA lv_contextid TYPE string.
|
||||
lo_handler = factory( server = server
|
||||
req = req
|
||||
res = res
|
||||
).
|
||||
|
@ -314,7 +333,8 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
|||
IF is_res-s_stateful-switched = abap_true.
|
||||
lo_handler->mo_server->set_session_stateful( is_res-s_stateful-active ).
|
||||
IF lo_handler->mo_server->get_header_field( 'sap-contextid-accept' ) = 'header'.
|
||||
DATA(lv_contextid) = lo_handler->mo_server->get_response_cookie( 'sap-contextid' ).
|
||||
|
||||
lv_contextid = lo_handler->mo_server->get_response_cookie( 'sap-contextid' ).
|
||||
IF lv_contextid IS NOT INITIAL.
|
||||
lo_handler->mo_server->delete_response_cookie( 'sap-contextid' ).
|
||||
lo_handler->mo_server->set_header_field( n = 'sap-contextid'
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,8 +10,11 @@ ENDCLASS.
|
|||
CLASS ltcl_unit_test IMPLEMENTATION.
|
||||
METHOD test_create.
|
||||
|
||||
DATA(lo_view) = z2ui5_cl_xml_view=>factory( ).
|
||||
DATA(lv_xml) = lo_view->page( `test` )->stringify( ).
|
||||
DATA lo_view TYPE REF TO z2ui5_cl_xml_view.
|
||||
DATA lv_xml TYPE string.
|
||||
lo_view = z2ui5_cl_xml_view=>factory( ).
|
||||
|
||||
lv_xml = lo_view->page( `test` )->stringify( ).
|
||||
|
||||
IF lv_xml IS INITIAL.
|
||||
cl_abap_unit_assert=>fail( quit = 5 ).
|
||||
|
|
|
@ -266,44 +266,89 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD bwip_js.
|
||||
DATA temp1 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp2 LIKE LINE OF temp1.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp1.
|
||||
|
||||
temp2-n = `bcid`.
|
||||
temp2-v = bcid.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `text`.
|
||||
temp2-v = text.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `scale`.
|
||||
temp2-v = scale.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
temp2-n = `height`.
|
||||
temp2-v = height.
|
||||
INSERT temp2 INTO TABLE temp1.
|
||||
mo_view->_generic( name = `bwipjs`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `bcid` v = bcid )
|
||||
( n = `text` v = text )
|
||||
( n = `scale` v = scale )
|
||||
( n = `height` v = height )
|
||||
) ).
|
||||
t_prop = temp1 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD camera_picture.
|
||||
DATA temp3 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp4 LIKE LINE OF temp3.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp3.
|
||||
|
||||
temp4-n = `id`.
|
||||
temp4-v = id.
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
temp4-n = `value`.
|
||||
temp4-v = value.
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
temp4-n = `press`.
|
||||
temp4-v = press.
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
temp4-n = `OnPhoto`.
|
||||
temp4-v = onphoto.
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
temp4-n = `autoplay`.
|
||||
temp4-v = z2ui5_cl_util=>boolean_abap_2_json( autoplay ).
|
||||
INSERT temp4 INTO TABLE temp3.
|
||||
mo_view->_generic( name = `CameraPicture`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `id` v = id )
|
||||
( n = `value` v = value )
|
||||
( n = `press` v = press )
|
||||
( n = `OnPhoto` v = onphoto )
|
||||
( n = `autoplay` v = z2ui5_cl_util=>boolean_abap_2_json( autoplay ) )
|
||||
) ).
|
||||
t_prop = temp3 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD chartjs.
|
||||
DATA temp5 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp6 LIKE LINE OF temp5.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp5.
|
||||
|
||||
temp6-n = `canvas_id`.
|
||||
temp6-v = canvas_id.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
temp6-n = `view`.
|
||||
temp6-v = view.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
temp6-n = `config`.
|
||||
temp6-v = config.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
temp6-n = `height`.
|
||||
temp6-v = height.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
temp6-n = `width`.
|
||||
temp6-v = width.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
temp6-n = `style`.
|
||||
temp6-v = style.
|
||||
INSERT temp6 INTO TABLE temp5.
|
||||
mo_view->_generic( name = `chartjs`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `canvas_id` v = canvas_id )
|
||||
( n = `view` v = view )
|
||||
( n = `config` v = config )
|
||||
( n = `height` v = height )
|
||||
( n = `width` v = width )
|
||||
( n = `style` v = style )
|
||||
) ).
|
||||
t_prop = temp5 ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -315,11 +360,13 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
|
|||
METHOD demo_output.
|
||||
|
||||
DATA lv_style TYPE string.
|
||||
DATA lv_class TYPE c LENGTH 20.
|
||||
|
||||
mo_view->_generic( ns = `html`
|
||||
name = `style` ).
|
||||
|
||||
DATA(lv_class) = 'Z2UI5_CL_CC_DEMO_OUT'.
|
||||
|
||||
lv_class = 'Z2UI5_CL_CC_DEMO_OUT'.
|
||||
CALL METHOD (lv_class)=>('GET_STYLE')
|
||||
RECEIVING
|
||||
result = lv_style.
|
||||
|
@ -328,259 +375,517 @@ CLASS z2ui5_cl_xml_view_cc IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
METHOD favicon.
|
||||
DATA temp7 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp8 LIKE LINE OF temp7.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp7.
|
||||
|
||||
temp8-n = `favicon`.
|
||||
temp8-v = favicon.
|
||||
INSERT temp8 INTO TABLE temp7.
|
||||
mo_view->_generic( name = `Favicon`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `favicon` v = favicon ) ) ).
|
||||
t_prop = temp7 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD file_uploader.
|
||||
DATA temp9 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp10 LIKE LINE OF temp9.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp9.
|
||||
|
||||
temp10-n = `placeholder`.
|
||||
temp10-v = placeholder.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `upload`.
|
||||
temp10-v = upload.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `path`.
|
||||
temp10-v = path.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `value`.
|
||||
temp10-v = value.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `iconOnly`.
|
||||
temp10-v = z2ui5_cl_util=>boolean_abap_2_json( icononly ).
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `buttonOnly`.
|
||||
temp10-v = z2ui5_cl_util=>boolean_abap_2_json( buttononly ).
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `buttonText`.
|
||||
temp10-v = buttontext.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `uploadButtonText`.
|
||||
temp10-v = uploadbuttontext.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `fileType`.
|
||||
temp10-v = filetype.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `checkDirectUpload`.
|
||||
temp10-v = z2ui5_cl_util=>boolean_abap_2_json( checkdirectupload ).
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `icon`.
|
||||
temp10-v = icon.
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
temp10-n = `enabled`.
|
||||
temp10-v = z2ui5_cl_util=>boolean_abap_2_json( enabled ).
|
||||
INSERT temp10 INTO TABLE temp9.
|
||||
mo_view->_generic(
|
||||
name = `FileUploader`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `placeholder` v = placeholder )
|
||||
( n = `upload` v = upload )
|
||||
( n = `path` v = path )
|
||||
( n = `value` v = value )
|
||||
( n = `iconOnly` v = z2ui5_cl_util=>boolean_abap_2_json( icononly ) )
|
||||
( n = `buttonOnly` v = z2ui5_cl_util=>boolean_abap_2_json( buttononly ) )
|
||||
( n = `buttonText` v = buttontext )
|
||||
( n = `uploadButtonText` v = uploadbuttontext )
|
||||
( n = `fileType` v = filetype )
|
||||
( n = `checkDirectUpload` v = z2ui5_cl_util=>boolean_abap_2_json( checkdirectupload ) )
|
||||
( n = `icon` v = icon )
|
||||
( n = `enabled` v = z2ui5_cl_util=>boolean_abap_2_json( enabled ) ) ) ).
|
||||
t_prop = temp9 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD focus.
|
||||
DATA temp11 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp12 LIKE LINE OF temp11.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp11.
|
||||
|
||||
temp12-n = `setUpdate`.
|
||||
temp12-v = setupdate.
|
||||
INSERT temp12 INTO TABLE temp11.
|
||||
temp12-n = `selectionStart`.
|
||||
temp12-v = selectionstart.
|
||||
INSERT temp12 INTO TABLE temp11.
|
||||
temp12-n = `selectionEnd`.
|
||||
temp12-v = selectionend.
|
||||
INSERT temp12 INTO TABLE temp11.
|
||||
temp12-n = `focusId`.
|
||||
temp12-v = focusid.
|
||||
INSERT temp12 INTO TABLE temp11.
|
||||
mo_view->_generic( name = `Focus`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `setUpdate` v = setupdate )
|
||||
( n = `selectionStart` v = selectionstart )
|
||||
( n = `selectionEnd` v = selectionend )
|
||||
( n = `focusId` v = focusid )
|
||||
) ).
|
||||
t_prop = temp11 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD geolocation.
|
||||
DATA temp13 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp14 LIKE LINE OF temp13.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp13.
|
||||
|
||||
temp14-n = `finished`.
|
||||
temp14-v = finished.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `longitude`.
|
||||
temp14-v = longitude.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `latitude`.
|
||||
temp14-v = latitude.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `altitude`.
|
||||
temp14-v = altitude.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `accuracy`.
|
||||
temp14-v = accuracy.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `altitudeAccuracy`.
|
||||
temp14-v = altitudeaccuracy.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `speed`.
|
||||
temp14-v = speed.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `heading`.
|
||||
temp14-v = heading.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `enableHighAccuracy`.
|
||||
temp14-v = z2ui5_cl_util=>boolean_abap_2_json( enablehighaccuracy ).
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
temp14-n = `timeout`.
|
||||
temp14-v = timeout.
|
||||
INSERT temp14 INTO TABLE temp13.
|
||||
mo_view->_generic( name = `Geolocation`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #(
|
||||
( n = `finished` v = finished )
|
||||
( n = `longitude` v = longitude )
|
||||
( n = `latitude` v = latitude )
|
||||
( n = `altitude` v = altitude )
|
||||
( n = `accuracy` v = accuracy )
|
||||
( n = `altitudeAccuracy` v = altitudeaccuracy )
|
||||
( n = `speed` v = speed )
|
||||
( n = `heading` v = heading )
|
||||
( n = `enableHighAccuracy` v = z2ui5_cl_util=>boolean_abap_2_json( enablehighaccuracy ) )
|
||||
( n = `timeout` v = timeout )
|
||||
) ).
|
||||
t_prop = temp13 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD history.
|
||||
DATA temp15 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp16 LIKE LINE OF temp15.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp15.
|
||||
|
||||
temp16-n = `search`.
|
||||
temp16-v = search.
|
||||
INSERT temp16 INTO TABLE temp15.
|
||||
mo_view->_generic( name = `History`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `search` v = search ) ) ).
|
||||
t_prop = temp15 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD info_frontend.
|
||||
DATA temp17 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp18 LIKE LINE OF temp17.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp17.
|
||||
|
||||
temp18-n = `ui5_version`.
|
||||
temp18-v = ui5_version.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `ui5_gav`.
|
||||
temp18-v = ui5_gav.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `finished`.
|
||||
temp18-v = finished.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `ui5_theme`.
|
||||
temp18-v = ui5_theme.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_os`.
|
||||
temp18-v = device_os.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_systemtype`.
|
||||
temp18-v = device_systemtype.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_browser`.
|
||||
temp18-v = device_browser.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_phone`.
|
||||
temp18-v = device_phone.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_desktop`.
|
||||
temp18-v = device_desktop.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_tablet`.
|
||||
temp18-v = device_tablet.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_combi`.
|
||||
temp18-v = device_combi.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_height`.
|
||||
temp18-v = device_height.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
temp18-n = `device_width`.
|
||||
temp18-v = device_width.
|
||||
INSERT temp18 INTO TABLE temp17.
|
||||
mo_view->_generic( name = `Info`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `ui5_version` v = ui5_version )
|
||||
( n = `ui5_gav` v = ui5_gav )
|
||||
( n = `finished` v = finished )
|
||||
( n = `ui5_theme` v = ui5_theme )
|
||||
( n = `device_os` v = device_os )
|
||||
( n = `device_systemtype` v = device_systemtype )
|
||||
( n = `device_browser` v = device_browser )
|
||||
( n = `device_phone` v = device_phone )
|
||||
( n = `device_desktop` v = device_desktop )
|
||||
( n = `device_tablet` v = device_tablet )
|
||||
( n = `device_combi` v = device_combi )
|
||||
( n = `device_height` v = device_height )
|
||||
( n = `device_width` v = device_width ) )
|
||||
t_prop = temp17
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD message_manager.
|
||||
DATA temp19 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp20 LIKE LINE OF temp19.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp19.
|
||||
|
||||
temp20-n = `items`.
|
||||
temp20-v = items.
|
||||
INSERT temp20 INTO TABLE temp19.
|
||||
mo_view->_generic( name = `MessageManager`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `items` v = items )
|
||||
) ).
|
||||
t_prop = temp19 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD messaging.
|
||||
DATA temp21 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp22 LIKE LINE OF temp21.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp21.
|
||||
|
||||
temp22-n = `items`.
|
||||
temp22-v = items.
|
||||
INSERT temp22 INTO TABLE temp21.
|
||||
mo_view->_generic( name = `Messaging`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `items` v = items )
|
||||
) ).
|
||||
t_prop = temp21 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD multiinput_ext.
|
||||
DATA temp23 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp24 LIKE LINE OF temp23.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp23.
|
||||
|
||||
temp24-n = `MultiInputId`.
|
||||
temp24-v = multiinputid.
|
||||
INSERT temp24 INTO TABLE temp23.
|
||||
temp24-n = `MultiInputName`.
|
||||
temp24-v = multiinputname.
|
||||
INSERT temp24 INTO TABLE temp23.
|
||||
temp24-n = `change`.
|
||||
temp24-v = change.
|
||||
INSERT temp24 INTO TABLE temp23.
|
||||
temp24-n = `addedTokens`.
|
||||
temp24-v = addedtokens.
|
||||
INSERT temp24 INTO TABLE temp23.
|
||||
temp24-n = `removedTokens`.
|
||||
temp24-v = removedtokens.
|
||||
INSERT temp24 INTO TABLE temp23.
|
||||
mo_view->_generic( name = `MultiInputExt`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `MultiInputId` v = multiinputid )
|
||||
( n = `MultiInputName` v = multiinputname )
|
||||
( n = `change` v = change )
|
||||
( n = `addedTokens` v = addedtokens )
|
||||
( n = `removedTokens` v = removedtokens ) ) ).
|
||||
t_prop = temp23 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD tree.
|
||||
DATA temp25 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp26 LIKE LINE OF temp25.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp25.
|
||||
|
||||
temp26-n = `tree_id`.
|
||||
temp26-v = tree_id.
|
||||
INSERT temp26 INTO TABLE temp25.
|
||||
mo_view->_generic( name = `Tree`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `tree_id` v = tree_id )
|
||||
) ).
|
||||
t_prop = temp25 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD scrolling.
|
||||
DATA temp27 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp28 LIKE LINE OF temp27.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp27.
|
||||
|
||||
temp28-n = `setUpdate`.
|
||||
temp28-v = setupdate.
|
||||
INSERT temp28 INTO TABLE temp27.
|
||||
temp28-n = `items`.
|
||||
temp28-v = items.
|
||||
INSERT temp28 INTO TABLE temp27.
|
||||
mo_view->_generic( name = `Scrolling`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `setUpdate` v = setupdate )
|
||||
( n = `items` v = items )
|
||||
) ).
|
||||
t_prop = temp27 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD spreadsheet_export.
|
||||
DATA temp29 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp30 LIKE LINE OF temp29.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp29.
|
||||
|
||||
temp30-n = `tableId`.
|
||||
temp30-v = tableid.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
temp30-n = `text`.
|
||||
temp30-v = text.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
temp30-n = `icon`.
|
||||
temp30-v = icon.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
temp30-n = `type`.
|
||||
temp30-v = type.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
temp30-n = `tooltip`.
|
||||
temp30-v = tooltip.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
temp30-n = `columnconfig`.
|
||||
temp30-v = columnconfig.
|
||||
INSERT temp30 INTO TABLE temp29.
|
||||
mo_view->_generic( name = `ExportSpreadsheet`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `tableId` v = tableid )
|
||||
( n = `text` v = text )
|
||||
( n = `icon` v = icon )
|
||||
( n = `type` v = type )
|
||||
( n = `tooltip` v = tooltip )
|
||||
( n = `columnconfig` v = columnconfig )
|
||||
) ).
|
||||
t_prop = temp29 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD timer.
|
||||
DATA temp31 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp32 LIKE LINE OF temp31.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp31.
|
||||
|
||||
temp32-n = `delayMS`.
|
||||
temp32-v = delayms.
|
||||
INSERT temp32 INTO TABLE temp31.
|
||||
temp32-n = `finished`.
|
||||
temp32-v = finished.
|
||||
INSERT temp32 INTO TABLE temp31.
|
||||
temp32-n = `checkActive`.
|
||||
temp32-v = z2ui5_cl_util=>boolean_abap_2_json( checkactive ).
|
||||
INSERT temp32 INTO TABLE temp31.
|
||||
temp32-n = `checkRepeat`.
|
||||
temp32-v = z2ui5_cl_util=>boolean_abap_2_json( checkrepeat ).
|
||||
INSERT temp32 INTO TABLE temp31.
|
||||
mo_view->_generic( name = `Timer`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `delayMS` v = delayms )
|
||||
( n = `finished` v = finished )
|
||||
( n = `checkActive` v = z2ui5_cl_util=>boolean_abap_2_json( checkactive ) )
|
||||
( n = `checkRepeat` v = z2ui5_cl_util=>boolean_abap_2_json( checkrepeat ) )
|
||||
) ).
|
||||
t_prop = temp31 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD binding_update.
|
||||
DATA temp33 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp34 LIKE LINE OF temp33.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp33.
|
||||
|
||||
temp34-n = `path`.
|
||||
temp34-v = path.
|
||||
INSERT temp34 INTO TABLE temp33.
|
||||
temp34-n = `changed`.
|
||||
temp34-v = changed.
|
||||
INSERT temp34 INTO TABLE temp33.
|
||||
mo_view->_generic( name = `BindingUpdate`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #(
|
||||
* ( n = `value` v = value )
|
||||
( n = `path` v = path )
|
||||
( n = `changed` v = changed )
|
||||
* ( n = `checkActive` v = z2ui5_cl_util=>boolean_abap_2_json( checkactive ) )
|
||||
* ( n = `checkRepeat` v = z2ui5_cl_util=>boolean_abap_2_json( checkrepeat ) )
|
||||
) ).
|
||||
t_prop = temp33 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD websocket.
|
||||
DATA temp35 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp36 LIKE LINE OF temp35.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp35.
|
||||
|
||||
temp36-n = `value`.
|
||||
temp36-v = value.
|
||||
INSERT temp36 INTO TABLE temp35.
|
||||
temp36-n = `path`.
|
||||
temp36-v = path.
|
||||
INSERT temp36 INTO TABLE temp35.
|
||||
temp36-n = `received`.
|
||||
temp36-v = received.
|
||||
INSERT temp36 INTO TABLE temp35.
|
||||
temp36-n = `checkActive`.
|
||||
temp36-v = z2ui5_cl_util=>boolean_abap_2_json( checkactive ).
|
||||
INSERT temp36 INTO TABLE temp35.
|
||||
temp36-n = `checkRepeat`.
|
||||
temp36-v = z2ui5_cl_util=>boolean_abap_2_json( checkrepeat ).
|
||||
INSERT temp36 INTO TABLE temp35.
|
||||
mo_view->_generic( name = `Websocket`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `value` v = value )
|
||||
( n = `path` v = path )
|
||||
( n = `received` v = received )
|
||||
( n = `checkActive` v = z2ui5_cl_util=>boolean_abap_2_json( checkactive ) )
|
||||
( n = `checkRepeat` v = z2ui5_cl_util=>boolean_abap_2_json( checkrepeat ) )
|
||||
) ).
|
||||
t_prop = temp35 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD lp_title.
|
||||
DATA temp37 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp38 LIKE LINE OF temp37.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp37.
|
||||
|
||||
temp38-n = `title`.
|
||||
temp38-v = title.
|
||||
INSERT temp38 INTO TABLE temp37.
|
||||
temp38-n = `ApplicationFullWidth`.
|
||||
temp38-v = z2ui5_cl_util=>boolean_abap_2_json( applicationfullwidth ).
|
||||
INSERT temp38 INTO TABLE temp37.
|
||||
mo_view->_generic( name = `LPTitle`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #(
|
||||
( n = `title` v = title )
|
||||
( n = `ApplicationFullWidth` v = z2ui5_cl_util=>boolean_abap_2_json( applicationfullwidth ) ) )
|
||||
t_prop = temp37
|
||||
).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD title.
|
||||
DATA temp39 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp40 LIKE LINE OF temp39.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp39.
|
||||
|
||||
temp40-n = `title`.
|
||||
temp40-v = title.
|
||||
INSERT temp40 INTO TABLE temp39.
|
||||
mo_view->_generic( name = `Title`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `title` v = title ) ) ).
|
||||
t_prop = temp39 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD dirty.
|
||||
DATA temp41 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp42 LIKE LINE OF temp41.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp41.
|
||||
|
||||
temp42-n = `isDirty`.
|
||||
temp42-v = z2ui5_cl_util=>boolean_abap_2_json( isdirty ).
|
||||
INSERT temp42 INTO TABLE temp41.
|
||||
mo_view->_generic( name = `Dirty`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `isDirty` v = z2ui5_cl_util=>boolean_abap_2_json( isdirty ) ) ) ).
|
||||
t_prop = temp41 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD uitableext.
|
||||
|
||||
DATA temp43 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp44 LIKE LINE OF temp43.
|
||||
CLEAR temp43.
|
||||
|
||||
temp44-n = `tableId`.
|
||||
temp44-v = tableid.
|
||||
INSERT temp44 INTO TABLE temp43.
|
||||
result = mo_view->_generic( name = `UITableExt`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `tableId` v = tableid )
|
||||
) ).
|
||||
t_prop = temp43 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD smartmultiinput_ext.
|
||||
DATA temp45 TYPE z2ui5_if_types=>ty_t_name_value.
|
||||
DATA temp46 LIKE LINE OF temp45.
|
||||
|
||||
result = mo_view.
|
||||
|
||||
CLEAR temp45.
|
||||
|
||||
temp46-n = `multiInputId`.
|
||||
temp46-v = multiinputid.
|
||||
INSERT temp46 INTO TABLE temp45.
|
||||
temp46-n = `rangeData`.
|
||||
temp46-v = rangedata.
|
||||
INSERT temp46 INTO TABLE temp45.
|
||||
temp46-n = `change`.
|
||||
temp46-v = change.
|
||||
INSERT temp46 INTO TABLE temp45.
|
||||
temp46-n = `addedTokens`.
|
||||
temp46-v = addedtokens.
|
||||
INSERT temp46 INTO TABLE temp45.
|
||||
temp46-n = `removedTokens`.
|
||||
temp46-v = removedtokens.
|
||||
INSERT temp46 INTO TABLE temp45.
|
||||
mo_view->_generic( name = `SmartMultiInputExt`
|
||||
ns = `z2ui5`
|
||||
t_prop = VALUE #( ( n = `multiInputId` v = multiinputid )
|
||||
( n = `rangeData` v = rangedata )
|
||||
( n = `change` v = change )
|
||||
( n = `addedTokens` v = addedtokens )
|
||||
( n = `removedTokens` v = removedtokens ) ) ).
|
||||
t_prop = temp45 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ INTERFACE z2ui5_if_types
|
|||
n TYPE string,
|
||||
v TYPE string,
|
||||
END OF ty_s_name_value.
|
||||
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
|
||||
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH DEFAULT KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_http_config,
|
||||
|
|
Loading…
Reference in New Issue
Block a user