update-view (#657)

* update-view

* abaplint

* update abaplint fixes

* Update README.md
This commit is contained in:
oblomov 2023-11-20 18:13:16 +01:00 committed by GitHub
parent 8b43cbb158
commit ed0f251b84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 368 additions and 50 deletions

View File

@ -76,6 +76,9 @@ METHOD if_http_extension~handle_request.
ENDMETHOD.
```
##### ABAP for Cloud :cloud:
<details>
<summary>show code...</summary>
```abap
METHOD if_http_service_extension~handle_request.
@ -89,6 +92,9 @@ METHOD if_http_service_extension~handle_request.
ENDMETHOD.
```
</details>
#### Usage
Implement the abap2UI5 interface as shown in the following example:
```abap

View File

@ -14,7 +14,6 @@ CLASS ltcl_integration_test DEFINITION FINAL FOR TESTING
METHODS test_bind_two_way FOR TESTING RAISING cx_static_check.
METHODS test_message_toast FOR TESTING RAISING cx_static_check.
METHODS test_message_box FOR TESTING RAISING cx_static_check.
METHODS test_timer FOR TESTING RAISING cx_static_check.
METHODS test_landing_page FOR TESTING RAISING cx_static_check.
METHODS test_scroll_cursor FOR TESTING RAISING cx_static_check.
METHODS test_navigate FOR TESTING RAISING cx_static_check.
@ -174,34 +173,6 @@ CLASS ltcl_integration_test IMPLEMENTATION.
ENDMETHOD.
METHOD test_timer.
* z2ui5_cl_fw_integration_test=>sv_state = `TEST_TIMER`.
* DATA(lv_response) = z2ui5_cl_fw_http_handler=>http_post(
* `{ "OLOCATION" : { "SEARCH" : "app_start=z2ui5_cl_fw_integration_test"}}` ).
*
* DATA lo_data TYPE REF TO data.
* /ui2/cl_json=>deserialize( EXPORTING json = lv_response
* CHANGING data = lo_data ).
*
* FIELD-SYMBOLS <val> TYPE any.
*
* UNASSIGN <val>.
* DATA(lv_assign) = `PARAMS->S_TIMER->EVENT_FINISHED->*`.
* ASSIGN lo_data->(lv_assign) TO <val>.
* IF <val> <> `TIMER_FINISHED`.
* cl_abap_unit_assert=>fail( msg = 'timer - event wrong'
* quit = 5 ).
* ENDIF.
*
* UNASSIGN <val>.
* lv_assign = `PARAMS->S_TIMER->INTERVAL_MS->*`.
* ASSIGN lo_data->(lv_assign) TO <val>.
* IF <val> <> `500`.
* cl_abap_unit_assert=>fail( msg = 'timer - ms wrong'
* quit = 5 ).
* ENDIF.
ENDMETHOD.
METHOD test_xml_popup.
@ -343,7 +314,7 @@ CLASS ltcl_integration_test IMPLEMENTATION.
DATA(lv_id) = CONV string( <val> ).
DATA(lv_request) = `{"EDIT":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"ARGUMENTS": [{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}]}`.
DATA(lv_request) = `{"EDIT":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"ARGUMENTS": [{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}], "VIEWNAME" : "MAIN"}`.
lv_response = z2ui5_cl_fw_http_handler=>http_post( lv_request ).
CLEAR lo_data.
@ -355,7 +326,8 @@ CLASS ltcl_integration_test IMPLEMENTATION.
UNASSIGN <val>.
ASSIGN (`LO_DATA->PARAMS->*`) TO <val>.
ASSIGN (`<VAL>->S_MSG_TOAST->TEXT->*`) TO <val>.
ASSIGN (`<VAL>-S_MSG_TOAST->*`) TO <val>.
ASSIGN (`<VAL>-TEXT->*`) TO <val>.
cl_abap_unit_assert=>assert_not_initial( <val> ).
* cl_abap_unit_assert=>assert_equals(

View File

@ -7,6 +7,7 @@ CLASS z2ui5_cl_fw_utility_xml DEFINITION
DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
DATA mt_ns TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line.
DATA mv_name TYPE string.
DATA mv_content TYPE string.
DATA mv_ns TYPE string.
DATA mo_root TYPE REF TO z2ui5_cl_fw_utility_xml.
DATA mo_previous TYPE REF TO z2ui5_cl_fw_utility_xml.

View File

@ -27,7 +27,11 @@ CLASS z2ui5_cl_ui5 DEFINITION
v TYPE clike
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
METHODS _ns
METHODS _add_c
IMPORTING val TYPE clike
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
METHODS _ns
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5.
METHODS _ns_ndc
@ -48,6 +52,9 @@ CLASS z2ui5_cl_ui5 DEFINITION
METHODS _ns_html
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_html.
METHODS _ns_webc
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS constructor
IMPORTING node TYPE REF TO z2ui5_cl_fw_utility_xml OPTIONAL.
@ -84,10 +91,6 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
ENDMETHOD.
METHOD _2xml.
IF obj->_node->mv_name = `ZZPLAIN`.
result = obj->_node->mt_prop[ n = `VALUE` ]-v.
RETURN.
ENDIF.
DATA lt_prop TYPE z2ui5_if_client=>ty_t_name_value.
lt_prop = VALUE #( ( n = `` v = `sap.m` )
@ -106,12 +109,14 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
( n = `z2ui5` v = `z2ui5` )
( n = `mchart` v = `sap.suite.ui.microchart` )
( n = `editor` v = `sap.ui.codeeditor` )
( n = `wf` v = `sap.ui.webc.fiori` )
( n = `wm` v = `sap.ui.webc.main` )
( n = `html` v = `http://www.w3.org/1999/xhtml` )
* ( n = `core:require` v = `{ MessageToast: 'sap/m/MessageToast' }` )
* ( n = `core:require` v = `{ URLHelper: 'sap/m/library/URLHelper' }` )
( n = `xmlns:webc` v = `sap.ui.webc.main` )
* ( n = `xmlns:webc` v = `sap.ui.webc.main` )
( n = `xmlns:uxap` v = `sap.uxap` )
( n = `xmlns:text` v = `sap.ui.richtexteditor` )
( n = `xmlns:html` v = `http://www.w3.org/1999/xhtml` )
( n = `xmlns:fb` v = `sap.ui.comp.filterbar` )
( n = `xmlns:u` v = `sap.ui.unified` )
( n = `xmlns:gantt` v = `sap.gantt.simple` )
@ -136,8 +141,8 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
CATCH cx_root.
data(lv_text) = cond #( when lv_ns_tmp is initial then `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
else `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
DATA(lv_text) = COND #( WHEN lv_ns_tmp IS INITIAL THEN `XML_VIEW_NOT_VALID_NAMESPACE_EMPTY`
ELSE `XML_VIEW_NOT_VALID_NAMESPACE_NOT_FOUND failure: ` && lv_ns_tmp ).
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
EXPORTING
@ -160,13 +165,19 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
result = |{ result }<{ lv_ns }{ lv_element }{ lv_prop }|.
IF obj->_node->mt_child IS INITIAL.
IF obj->_node->mt_child IS INITIAL AND obj->_node->mv_content IS INITIAL.
result = |{ result }/>|.
RETURN.
ENDIF.
result = |{ result }>|.
IF obj->_node->mv_content IS NOT INITIAL.
result = result && obj->_node->mv_content.
result = |{ result }</{ lv_ns }{ lv_element }>|.
RETURN.
ENDIF.
LOOP AT obj->_node->mt_child INTO DATA(lr_child).
DATA(lo_child) = NEW z2ui5_cl_ui5( lr_child ).
result = result && _2xml( lo_child ).
@ -206,7 +217,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
DATA(lv_n) = COND #( WHEN check_popup = abap_true THEN `FragmentDefinition` ELSE `View` ).
DATA(lv_ns) = COND #( WHEN check_popup = abap_true THEN `sap.ui.core` ELSE `sap.ui.core.mvc` ).
result = result->_add( n = lv_n ns = lv_ns ).
result->_node->mv_name = lv_n.
result->_node->mv_ns = lv_ns.
INSERT lv_ns INTO TABLE result->_node->mo_root->mt_ns.
"( n = lv_n ns = lv_ns ).
IF check_popup = abap_false.
result->_add_p( n = `displayBlock` v = `true` ).
@ -226,6 +240,11 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
ENDMETHOD.
METHOD _go_up.
IF _node = _node->mo_root.
RAISE EXCEPTION TYPE z2ui5_cx_fw_error
EXPORTING
val = `XML_VIEW_PARSER_ERROR - go_up on root element not possible`.
ENDIF.
result = NEW #( _node->mo_parent ).
ENDMETHOD.
@ -237,6 +256,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
result = NEW #( _node ).
ENDMETHOD.
METHOD _ns_webc.
result = NEW #( _node ).
ENDMETHOD.
METHOD _ns_ndc.
result = NEW #( _node ).
ENDMETHOD.
@ -261,4 +284,10 @@ CLASS z2ui5_cl_ui5 IMPLEMENTATION.
METHOD _ns_suite.
result = NEW #( _node ).
ENDMETHOD.
METHOD _add_c.
_node->mv_content = val.
result = me.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,113 @@
CLASS ltcl_unit_test DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
METHODS:
test_factory FOR TESTING RAISING cx_static_check,
test_factory_popup FOR TESTING RAISING cx_static_check,
test_add FOR TESTING RAISING cx_static_check,
test_add_p FOR TESTING RAISING cx_static_check,
test_go FOR TESTING RAISING cx_static_check,
test_ns FOR TESTING RAISING cx_static_check,
test_add_add FOR TESTING RAISING cx_static_check.
ENDCLASS.
CLASS ltcl_unit_test IMPLEMENTATION.
METHOD test_factory.
DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
DATA(lv_result) = lo_tree->_stringify( ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = `<mvc:View displayBlock="true" height="100%" xmlns:mvc="sap.ui.core.mvc"/>`
).
ENDMETHOD.
METHOD test_factory_popup.
DATA(lo_tree) = z2ui5_cl_ui5=>_factory( check_popup = abap_true ).
DATA(lv_result) = lo_tree->_stringify( ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = `<core:FragmentDefinition xmlns:core="sap.ui.core"/>`
).
ENDMETHOD.
METHOD test_add.
DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
lo_tree->_add( n = 'XML' ns = `sap.ui.core` t_p = VALUE #( ( n = `test` v = `test_value` ) ) ).
DATA(lv_result) = lo_tree->_stringify( ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = `<mvc:View displayBlock="true" height="100%" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"><core:XML test="test_value"/></mvc:View>`
).
ENDMETHOD.
METHOD test_add_p.
DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
lo_tree->_add( n = 'Test' ns = `sap.ui.core`
)->_add_p( n = `test_p` v = `test_p_v` ).
DATA(lv_result) = lo_tree->_stringify( ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = `<mvc:View displayBlock="true" height="100%" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"><core:Test test_p="test_p_v"/></mvc:View>` ).
ENDMETHOD.
METHOD test_add_add.
DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
lo_tree->_add( n = 'Test' ns = `sap.ui.core`
)->_add( n = `test_p` ns = `sap.ui.core` ).
DATA(lv_result) = lo_tree->_stringify( ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = `<mvc:View displayBlock="true" height="100%" xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc"><core:Test><core:test_p/></core:Test></mvc:View>`
).
ENDMETHOD.
METHOD test_go.
* DATA(lo_tree) = z2ui5_cl_ui5=>_factory( ).
* DATA(lo_parent) = lo_tree->_add( n = 'XML' ns = `core` ).
* DATA(lo_child) = lo_parent->_add( n = `XML_CHILD` ns = `core` ).
* IF lo_parent->_go_new( )->_ <> lo_child.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* IF lo_child->_go_root( ) <> lo_parent.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
*
* IF lo_child->_go_up( ) <> lo_parent.
* cl_abap_unit_assert=>abort( ).
* ENDIF.
ENDMETHOD.
METHOD test_ns.
DATA(lo_html) = NEW z2ui5_cl_ui5( )->_ns_html( ) ##NEEDED.
DATA(lo_m) = NEW z2ui5_cl_ui5( )->_ns_m( ) ##NEEDED.
DATA(lo_ndc) = NEW z2ui5_cl_ui5( )->_ns_ndc( ) ##NEEDED.
DATA(lo_suite) = NEW z2ui5_cl_ui5( )->_ns_suite( ) ##NEEDED.
DATA(lo_zcc) = NEW z2ui5_cl_ui5( )->_ns_zcc( ) ##NEEDED.
ENDMETHOD.
ENDCLASS.

View File

@ -10,6 +10,7 @@
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>

View File

@ -34,10 +34,9 @@ CLASS z2ui5_cl_ui5_html IMPLEMENTATION.
ENDMETHOD.
METHOD script.
result = me.
_add( n = `script`
result = _add( n = `script`
ns = `http://www.w3.org/1999/xhtml`
t_p = VALUE #( ( n = `src` v = src ) ) ).
t_p = VALUE #( ( n = `src` v = src ) ) )->_ns_html( ).
ENDMETHOD.
METHOD style.

View File

@ -78,6 +78,25 @@ CLASS z2ui5_cl_ui5_m DEFINITION
PREFERRED PARAMETER text
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
METHODS bar
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_ui5_m .
METHODS content_middle
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_ui5_m .
METHODS panel
IMPORTING
!expandable TYPE clike OPTIONAL
!expanded TYPE clike OPTIONAL
!headertext TYPE clike OPTIONAL
stickyheader TYPE clike OPTIONAL
height TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_ui5_m.
METHODS button
IMPORTING text TYPE clike OPTIONAL
icon TYPE clike OPTIONAL
@ -243,6 +262,17 @@ ENDCLASS.
CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
METHOD panel.
result = _add( n = `Panel` ns = `sap.m`
t_p = VALUE #( ( n = `expandable` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expandable ) )
( n = `expanded` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( expanded ) )
( n = `stickyHeader` v = z2ui5_cl_fw_utility=>boolean_abap_2_json( stickyheader ) )
( n = `height` v = height )
( n = `headerText` v = headertext ) ) )->_ns_m( ).
ENDMETHOD.
METHOD additionalcontent.
result = _add( ns = `sap.m` n = `additionalContent` )->_ns_m( ).
ENDMETHOD.
@ -470,9 +500,18 @@ CLASS z2ui5_cl_ui5_m IMPLEMENTATION.
ENDMETHOD.
METHOD shell.
result = _add( n = `Shell` ns = `sap.m` )->_ns_m( ).
result = _add( n = `Shell` ns = `sap.m` )->_ns_m( ).
ENDMETHOD.
METHOD bar.
result = _add( n = `Bar` ns = `sap.m` )->_ns_m( ).
ENDMETHOD.
METHOD content_middle.
result = _add( n = `contentMiddle` ns = `sap.m` )->_ns_m( ).
ENDMETHOD.
METHOD input.
result = me.
_add( n = `Input`

View File

@ -0,0 +1,142 @@
CLASS z2ui5_cl_ui5_ui_webc DEFINITION
PUBLIC
FINAL
CREATE PUBLIC INHERITING FROM z2ui5_cl_ui5.
PUBLIC SECTION.
METHODS button
IMPORTING id TYPE clike OPTIONAL
icon TYPE clike OPTIONAL
text TYPE clike OPTIONAL
tooltip TYPE clike OPTIONAL
design TYPE clike OPTIONAL
click TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS bar
IMPORTING id TYPE clike OPTIONAL
design TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS label
IMPORTING
id TYPE clike OPTIONAL
text TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS panel
IMPORTING id TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS header
IMPORTING id TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS input
IMPORTING id TYPE clike OPTIONAL
text type clike OPTIONAL
click type clike optional
value TYPE clike OPTIONAL
width TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
METHODS toast
IMPORTING id TYPE clike OPTIONAL
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_ui5_ui_webc.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS Z2UI5_CL_UI5_UI_WEBC IMPLEMENTATION.
METHOD bar.
result = _add( n = `Bar`
ns = 'sap.ui.webc.fiori'
t_p = VALUE #( ( n = `id` v = id )
( n = `design` v = design )
) )->_ns_webc( ).
ENDMETHOD.
METHOD button.
result = me.
_add( n = `Button`
ns = 'sap.ui.webc.main'
t_p = VALUE #( ( n = `id` v = id )
( n = `icon` v = icon )
( n = `tooltip` v = tooltip )
( n = `text` v = text )
( n = `click` v = click )
( n = `design` v = design ) ) )->_ns_webc( ).
ENDMETHOD.
METHOD header.
result = _add( n = `header`
ns = 'sap.ui.webc.main'
t_p = VALUE #( ( n = `id` v = id ) ) )->_ns_webc( ).
ENDMETHOD.
METHOD input.
result = me.
_add( n = `Input`
ns = 'sap.ui.webc.main'
t_p = VALUE #(
( n = `id` v = id )
( n = `text` v = text )
( n = `click` v = click )
( n = `width` v = width )
( n = `value` v = value )
) )->_ns_webc( ).
ENDMETHOD.
METHOD label.
result = me.
_add( n = `Label`
ns = 'sap.ui.webc.main'
t_p = VALUE #(
( n = `id` v = id )
( n = `text` v = text )
) )->_ns_webc( ).
ENDMETHOD.
METHOD panel.
result = _add( n = `Panel`
ns = 'sap.ui.webc.main'
t_p = VALUE #(
( n = `id` v = id )
) )->_ns_webc( ).
ENDMETHOD.
METHOD toast.
result = me.
_add( n = `Toast`
ns = 'sap.ui.webc.main'
t_p = VALUE #(
( n = `id` v = id )
) )->_ns_webc( ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>Z2UI5_CL_UI5_UI_WEBC</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ns - sap.ui.webc</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -40,7 +40,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
lt_config = VALUE #(
( n = `data-sap-ui-theme` v = `sap_horizon` )
( n = `src` v = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` )
( n = `data-sap-ui-libs` v = `sap.m` )
* ( n = `data-sap-ui-libs` v = `sap.m` )
( n = `data-sap-ui-bindingSyntax` v = `complex` )
( n = `data-sap-ui-frameOptions` v = `trusted` )
( n = `data-sap-ui-compatVersion` v = `edge` ) ).
@ -432,11 +432,11 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
|\n| &&
` sap.z2ui5.oController.ViewDestroy();` && |\n| &&
|\n| &&
` new sap.ui.core.mvc.XMLView.create({` && |\n| &&
` new sap.ui.core.mvc.XMLView.create({` && |\n| &&
` definition: sap.z2ui5.oResponse.PARAMS.S_VIEW.XML,` && |\n| &&
` controller: sap.z2ui5.oController,` && |\n| &&
` }).then(oView => {` && |\n| &&
` oView.setModel(new sap.ui.model.json.JSONModel(sap.z2ui5.oResponse.OVIEWMODEL));` && |\n| &&
` oView.setModel(new sap.ui.model.json.JSONModel(sap.z2ui5.oResponse.OVIEWMODEL));` && |\n| &&
` if (sap.z2ui5.oParent) {` && |\n| &&
` sap.z2ui5.oParent.removeAllPages();` && |\n| &&
` sap.z2ui5.oParent.insertPage(oView);` && |\n| &&
@ -497,7 +497,7 @@ CLASS Z2UI5_CL_FW_HTTP_HANDLER IMPLEMENTATION.
` sap.z2ui5.checkNestAfter = false;` && |\n| &&
` sap.z2ui5.checkNestAfter2 = false;` && |\n| &&
|\n| &&
* ` debugger;` && |\n| &&
* ` debugger;` && |\n| &&
` sap.z2ui5.oBody.OLOCATION = {` && |\n| &&
` ORIGIN: window.location.origin,` && |\n| &&
` PATHNAME: sap.z2ui5.pathname,` && |\n| &&