From 95eacdf67034f64aa4f71fc4de4f1c4c35df23d5 Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Mon, 22 May 2023 16:05:29 +0200 Subject: [PATCH] Update z2ui5_cl_http_handler.clas.testclasses.abap --- ...2ui5_cl_http_handler.clas.testclasses.abap | 204 +++++++++++------- 1 file changed, 121 insertions(+), 83 deletions(-) diff --git a/src/z2ui5_cl_http_handler.clas.testclasses.abap b/src/z2ui5_cl_http_handler.clas.testclasses.abap index eeaea8a3..4769ec05 100644 --- a/src/z2ui5_cl_http_handler.clas.testclasses.abap +++ b/src/z2ui5_cl_http_handler.clas.testclasses.abap @@ -10,10 +10,26 @@ CLASS ltcl_unit_01_json DEFINITION FINAL FOR TESTING METHODS test_json_struc FOR TESTING RAISING cx_static_check. METHODS test_json_trans FOR TESTING RAISING cx_static_check. METHODS test_json_trans_gen FOR TESTING RAISING cx_static_check. - METHODS test_util_uuid_session FOR TESTING RAISING cx_static_check. - METHODS test_util_attri_by_ref FOR TESTING RAISING cx_static_check. ENDCLASS. +CLASS ltcl_unit_01_utility DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PUBLIC SECTION. + + PRIVATE SECTION. + + METHODS test_util_uuid_session FOR TESTING RAISING cx_static_check. + METHODS test_util_attri_by_ref_03 FOR TESTING RAISING cx_static_check. + METHODS test_util_get_t_attri_01 FOR TESTING RAISING cx_static_check. + METHODS test_util_get_attri_02 FOR TESTING RAISING cx_static_check. +ENDCLASS. + + + + + CLASS ltcl_unit_04_deep_data DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. @@ -41,7 +57,6 @@ CLASS ltcl_unit_04_deep_data DEFINITION FINAL FOR TESTING PRIVATE SECTION. METHODS test_app_deep_data FOR TESTING RAISING cx_static_check. METHODS test_app_deep_data_change FOR TESTING RAISING cx_static_check. - METHODS test_app_all FOR TESTING RAISING cx_static_check. ENDCLASS. @@ -169,7 +184,13 @@ CLASS ltcl_unit_01_json IMPLEMENTATION. ENDMETHOD. - METHOD test_util_attri_by_ref. + +ENDCLASS. + +CLASS ltcl_unit_01_utility IMPLEMENTATION. + + + METHOD test_util_attri_by_ref_03. DATA(lo_app) = NEW ltcl_unit_04_deep_data( ). @@ -204,6 +225,40 @@ CLASS ltcl_unit_01_json IMPLEMENTATION. ENDMETHOD. + METHOD test_util_get_attri_02. + + DATA(lo_app) = NEW ltcl_unit_04_deep_data( ). + + lo_app->sv_status = `ABC`. + FIELD-SYMBOLS TYPE any. + DATA(lv_assign) = `LO_APP->` && 'SV_STATUS'. + ASSIGN (lv_assign) TO . + + IF <> `ABC`. + cl_abap_unit_assert=>fail( msg = 'utility - assign of attribute from outside not working' quit = 5 ). + ENDIF. + + ENDMETHOD. + + METHOD test_util_get_t_attri_01. + + DATA(lo_app) = NEW ltcl_unit_04_deep_data( ). + + DATA(lt_attri) = CAST cl_abap_classdescr( cl_abap_objectdescr=>describe_by_object_ref( lo_app ) )->attributes. + + DATA(lt_test) = VALUE abap_attrdescr_tab( + ( length = '8' decimals = '0' name = 'Z2UI5_IF_APP~ID' type_kind = 'g' visibility = 'U' is_interface = 'X' is_inherited = '' is_class = '' is_constant = '' is_virtual = '' is_read_only = '' alias_for = '' ) + ( length = '2' decimals = '0' name = 'CHECK_INITIALIZED' type_kind = 'C' visibility = 'U' is_interface = '' is_inherited = '' is_class = '' is_constant = '' is_virtual = '' is_read_only = '' alias_for = '' ) + ( length = '8' decimals = '0' name = 'SV_STATUS' type_kind = 'g' visibility = 'U' is_interface = '' is_inherited = '' is_class = 'X' is_constant = '' is_virtual = '' is_read_only = '' alias_for = '' ) + ( length = '8' decimals = '0' name = 'T_TAB' type_kind = 'h' visibility = 'U' is_interface = '' is_inherited = '' is_class = 'X' is_constant = '' is_virtual = '' is_read_only = '' alias_for = '' ) + ). + + IF lt_test <> lt_attri. + cl_abap_unit_assert=>fail( msg = 'utility - get abap_attrdescr_tab table wrong' quit = 5 ). + ENDIF. + + ENDMETHOD. + ENDCLASS. CLASS ltcl_unit_02_app_start DEFINITION FINAL FOR TESTING @@ -232,6 +287,7 @@ CLASS ltcl_unit_02_app_start DEFINITION FINAL FOR TESTING METHODS test_landing_page FOR TESTING RAISING cx_static_check. METHODS test_scroll_cursor FOR TESTING RAISING cx_static_check. METHODS test_navigate FOR TESTING RAISING cx_static_check. + METHODS test_startup_path FOR TESTING RAISING cx_static_check. ENDCLASS. @@ -397,7 +453,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_xml_view. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = ``. @@ -412,7 +468,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `VVIEW->*`. + DATA(lv_assign) = `PARAMS->XML_MAIN->*`. ASSIGN lo_data->(lv_assign) TO . = shift_left( ). IF (9) <> `client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = ``. @@ -439,7 +495,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OSYSTEM->ID->*`. + DATA(lv_assign) = `ID->*`. ASSIGN lo_data->(lv_assign) TO . IF IS INITIAL. cl_abap_unit_assert=>fail( msg = 'id - initial value is initial' quit = 5 ). @@ -450,7 +506,8 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_bind_one_way. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) + " t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_ONE_WAY`. @@ -465,7 +522,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OVIEWMODEL->QUANTITY->*`. + DATA(lv_assign) = `OVIEWMODEL->OVIEWMODEL->QUANTITY->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `500`. cl_abap_unit_assert=>fail( msg = 'data binding - initial set oUpdate wrong' quit = 5 ). @@ -476,7 +533,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_bind_two_way. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = ``. @@ -491,7 +548,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OVIEWMODEL->OUPDATE->QUANTITY->*`. + DATA(lv_assign) = `OVIEWMODEL->OVIEWMODEL->OUPDATE->QUANTITY->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `500`. cl_abap_unit_assert=>fail( msg = 'data binding - initial set oUpdate wrong' quit = 5 ). @@ -502,7 +559,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_message_box. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_MESSAGE_BOX`. @@ -518,21 +575,21 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OMESSAGE->CONTROL->*`. + DATA(lv_assign) = `S_MSG->CONTROL->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `MessageBox`. cl_abap_unit_assert=>fail( msg = 'message box - control wrong' quit = 5 ). ENDIF. UNASSIGN . - lv_assign = `OMESSAGE->TEXT->*`. + lv_assign = `S_MSG->TEXT->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `test message box`. cl_abap_unit_assert=>fail( msg = 'message box - text wrong' quit = 5 ). ENDIF. UNASSIGN . - lv_assign = `OMESSAGE->TYPE->*`. + lv_assign = `S_MSG->TYPE->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `information`. cl_abap_unit_assert=>fail( msg = 'message box - type wrong' quit = 5 ). @@ -543,7 +600,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_message_toast. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_MESSAGE_TOAST`. @@ -559,21 +616,21 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OMESSAGE->CONTROL->*`. + DATA(lv_assign) = `S_MSG->CONTROL->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `MessageToast`. cl_abap_unit_assert=>fail( msg = 'message toast - control wrong' quit = 5 ). ENDIF. UNASSIGN . - lv_assign = `OMESSAGE->TEXT->*`. + lv_assign = `S_MSG->TEXT->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `test message toast`. cl_abap_unit_assert=>fail( msg = 'message toast - text wrong' quit = 5 ). ENDIF. UNASSIGN . - lv_assign = `OMESSAGE->TYPE->*`. + lv_assign = `S_MSG->TYPE->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `show`. cl_abap_unit_assert=>fail( msg = 'message toast - type wrong' quit = 5 ). @@ -584,7 +641,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_timer. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_TIMER`. @@ -600,14 +657,14 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OTIMER->EVENT_FINISHED->*`. + DATA(lv_assign) = `PARAMS->S_TIMER->EVENT_FINISHED->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `TIMER_FINISHED`. cl_abap_unit_assert=>fail( msg = 'timer - event wrong' quit = 5 ). ENDIF. UNASSIGN . - lv_assign = `OTIMER->INTERVAL_MS->*`. + lv_assign = `PARAMS->S_TIMER->INTERVAL_MS->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `500`. cl_abap_unit_assert=>fail( msg = 'timer - ms wrong' quit = 5 ). @@ -618,7 +675,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_xml_popup. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_POPUP`. @@ -633,7 +690,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `VVIEWPOPUP->*`. + DATA(lv_assign) = `PARAMS->XML_POPUP->*`. ASSIGN lo_data->(lv_assign) TO . = shift_left( ). IF (9) <> `client = VALUE #( t_header = VALUE #( ( name = 'referer' value = 'dummy' ) ) - ). + ). DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). @@ -659,7 +716,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `VVIEW->*`. + DATA(lv_assign) = `PARAMS->XML_MAIN->*`. ASSIGN lo_data->(lv_assign) TO . = shift_left( ). IF NS `Step 4`. @@ -671,7 +728,7 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. METHOD test_scroll_cursor. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_SCROLL_CURSOR`. @@ -709,10 +766,30 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION. ENDMETHOD. + METHOD test_startup_path. + + z2ui5_cl_http_handler=>client = VALUE #( + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) + ). + + sv_state = `TEST_NAVIGATE`. + DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). + + DATA lo_data TYPE REF TO data. + /ui2/cl_json=>deserialize( + EXPORTING + json = lv_response + CHANGING + data = lo_data ). + + " FIELD-SYMBOLS TYPE any. + + ENDMETHOD. + METHOD test_navigate. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). sv_state = `TEST_NAVIGATE`. @@ -796,7 +873,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. METHOD test_app_change_value. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). @@ -811,14 +888,14 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OSYSTEM->ID->*`. + DATA(lv_assign) = `ID->*`. ASSIGN lo_data->(lv_assign) TO . IF IS INITIAL. cl_abap_unit_assert=>fail( msg = 'id - initial value is initial' quit = 5 ). ENDIF. DATA(lv_id) = CONV string( ). - DATA(lv_request) = `{"oUpdate":{"QUANTITY":"600"},"oSystem":{"ID": "` && lv_id && `"` && `,"CHECK_DEBUG_ACTIVE":true},"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. + DATA(lv_request) = `{"oUpdate":{"QUANTITY":"600"},"ID": "` && lv_id && `" ,"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. z2ui5_cl_http_handler=>client = VALUE #( body = lv_request ). lv_response = z2ui5_cl_http_handler=>http_post( ). @@ -830,7 +907,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. data = lo_data ). UNASSIGN . - lv_assign = `OVIEWMODEL->OUPDATE->QUANTITY->*`. + lv_assign = `OVIEWMODEL->OVIEWMODEL->OUPDATE->QUANTITY->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `600`. cl_abap_unit_assert=>fail( msg = 'data binding - frontend updated value wrong after roundtrip' quit = 5 ). @@ -841,7 +918,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. METHOD test_app_event. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_02_APP_START' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_02_APP_START' ) ) ). DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). @@ -856,14 +933,14 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `OSYSTEM->ID->*`. + DATA(lv_assign) = `ID->*`. ASSIGN lo_data->(lv_assign) TO . IF IS INITIAL. cl_abap_unit_assert=>fail( msg = 'id - initial value is initial' quit = 5 ). ENDIF. DATA(lv_id) = CONV string( ). - DATA(lv_request) = `{"oUpdate":{"QUANTITY":"700"},"oSystem":{"ID": "` && lv_id && `"},"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. + DATA(lv_request) = `{"oUpdate":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. z2ui5_cl_http_handler=>client = VALUE #( body = lv_request ). lv_response = z2ui5_cl_http_handler=>http_post( ). @@ -875,7 +952,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. data = lo_data ). UNASSIGN . - lv_assign = `OMESSAGE->TEXT->*`. + lv_assign = `S_MSG->TEXT->*`. ASSIGN lo_data->(lv_assign) TO . IF <> `tomato 700 - send to the server`. cl_abap_unit_assert=>fail( msg = 'message toast - text wrong' quit = 5 ). @@ -886,7 +963,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. METHOD test_app_dump. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_03_APP_AJAX' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_03_APP_AJAX' ) ) ). sv_state = `ERROR`. @@ -901,7 +978,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. FIELD-SYMBOLS TYPE any. UNASSIGN . - DATA(lv_assign) = `VVIEW->*`. + DATA(lv_assign) = `PARAMS->XML_MAIN->*`. ASSIGN lo_data->(lv_assign) TO . = shift_left( ). IF NS `MessagePage`. @@ -977,7 +1054,7 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. METHOD test_app_deep_data. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_04_DEEP_DATA' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_04_DEEP_DATA' ) ) ). DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). @@ -994,7 +1071,7 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. UNASSIGN . FIELD-SYMBOLS TYPE STANDARD TABLE. FIELD-SYMBOLS TYPE REF TO data. - DATA(lv_assign) = `OVIEWMODEL->OUPDATE->T_TAB->*`. + DATA(lv_assign) = `OVIEWMODEL->OVIEWMODEL->T_TAB->*`. ASSIGN lo_data->(lv_assign) TO . ASSIGN [ 1 ] TO . @@ -1024,7 +1101,7 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. METHOD test_app_deep_data_change. z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = 'LTCL_UNIT_04_DEEP_DATA' ) ) + t_header = VALUE #( ( name = '~path_info' value = 'LTCL_UNIT_04_DEEP_DATA' ) ) ). sv_status = 'CHANGE'. @@ -1042,7 +1119,7 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. UNASSIGN . FIELD-SYMBOLS TYPE STANDARD TABLE. FIELD-SYMBOLS TYPE REF TO data. - DATA(lv_assign) = `OVIEWMODEL->OUPDATE->T_TAB->*`. + DATA(lv_assign) = `OVIEWMODEL->OVIEWMODEL->OUPDATE->T_TAB->*`. ASSIGN lo_data->(lv_assign) TO . ASSIGN [ 1 ] TO . @@ -1068,7 +1145,7 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. ENDIF. UNASSIGN . - lv_assign = `OSYSTEM->ID->*`. + lv_assign = `ID->*`. ASSIGN lo_data->(lv_assign) TO . IF IS INITIAL. cl_abap_unit_assert=>fail( msg = 'id - initial value is initial' quit = 5 ). @@ -1090,43 +1167,4 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. ENDMETHOD. - METHOD test_app_all. - - DO 40 TIMES. - - DATA(Lv_ind) = shift_left( CONV string( sy-index ) ). - IF sy-index < 10. - Lv_ind = `0` && Lv_ind. - ENDIF. - DATA(lv_name) = `Z2UI5_CL_APP_DEMO_` && lv_ind. - - z2ui5_cl_http_handler=>client = VALUE #( - t_param = VALUE #( ( name = 'app' value = lv_name ) ) - ). - - sv_status = 'CHANGE'. - DATA(lv_response) = z2ui5_cl_http_handler=>http_post( ). - - DATA lo_data TYPE REF TO data. - /ui2/cl_json=>deserialize( - EXPORTING - json = lv_response - CHANGING - data = lo_data ). - - FIELD-SYMBOLS TYPE any. - UNASSIGN . - DATA(lv_assign) = `VVIEW->*`. - ASSIGN lo_data->(lv_assign) TO . - = shift_left( ). - IF (9) <> `fail( msg = 'xml view - intital view wrong' quit = 5 ). - ENDIF. - - ENDDO. - - - ENDMETHOD. - - ENDCLASS.