diff --git a/app/webapp/controller/App.controller.js b/app/webapp/controller/App.controller.js index 739285ca..a5330ce2 100644 --- a/app/webapp/controller/App.controller.js +++ b/app/webapp/controller/App.controller.js @@ -5,7 +5,8 @@ sap.ui.define(["sap/ui/core/mvc/Controller", onInit: async function () { - z2ui5.oConfig.pathname = this.getView().getModel().sServiceUrl; + z2ui5.oModel2 = this.getView().getModel(""); + z2ui5.oConfig.pathname = this.getView().getModel("http").sServiceUrl; if (z2ui5?.checkLocal == true ) { z2ui5.oConfig.pathname = window.location.href; }; diff --git a/app/webapp/controller/View1.controller.js b/app/webapp/controller/View1.controller.js index 36f48cbf..0eac6a04 100644 --- a/app/webapp/controller/View1.controller.js +++ b/app/webapp/controller/View1.controller.js @@ -241,6 +241,14 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/ break; } break; + case 'SET_ODATA_MODEL': + sap.ui.require([ + "sap/ui/model/odata/v2/ODataModel" + ], async (ODataModel) => { + var oModel = new ODataModel({ serviceUrl : args[1] }); + z2ui5.oView.setModel( oModel , args[2] ); + }); + break; case 'DOWNLOAD_B64_FILE': var a = document.createElement("a"); a.href = args[1]; @@ -337,11 +345,13 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/ z2ui5.isBusy = true; BusyIndicator.show(); z2ui5.oBody = {}; - if (args[0][3]) { - z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX; - z2ui5.oBody.VIEWNAME = 'MAIN'; - } else if (z2ui5.oController == this) { - z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX; + if (args[0][3] || z2ui5.oController == this ) { + if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true ){ + var oModel = z2ui5.oView.getModel( "http"); + }else{ + oModel = z2ui5.oView.getModel(); + } + z2ui5.oBody.XX = oModel.getData().XX; z2ui5.oBody.VIEWNAME = 'MAIN'; } else if (z2ui5.oControllerPopup == this) { if (z2ui5.oViewPopup) { @@ -364,9 +374,6 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/ } } ) - // if (args[0][1]) { - // z2ui5.oController.ViewDestroy(); - // } z2ui5.oBody.ID = z2ui5.oResponse.ID; z2ui5.oBody.ARGUMENTS = args; z2ui5.oBody.ARGUMENTS.forEach((item, i) => { @@ -445,48 +452,21 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/ }; if ( oParams.icon = 'None' ) { delete oParams.icon }; MessageBox[params[msgType].TYPE](params[msgType].TEXT, oParams); - return; - - switch (params[msgType].TYPE) { - case 'error': - MessageBox.error(params[msgType].TEXT, oParams); - break; - case 'warning': - MessageBox.error(params[msgType].TEXT, oParams); - break; - default: - MessageBox.shwo(params[msgType].TEXT, oParams); - break; } - return; - - if (params[msgType].TYPE) { - MessageBox[params[msgType].TYPE](params[msgType].TEXT); - } else { - MessageBox.show(params[msgType].TEXT, { - styleClass: params[msgType].STYLECLASS ? params[msgType].STYLECLASS : '', - title: params[msgType].TITLE ? params[msgType].TITLE : '', - onClose: params[msgType].ONCLOSE ? Function("sAction", "return " + params[msgType].ONCLOSE) : null, - actions: params[msgType].ACTIONS ? params[msgType].ACTIONS : 'OK', - emphasizedAction: params[msgType].EMPHASIZEDACTION ? params[msgType].EMPHASIZEDACTION : 'OK', - initialFocus: params[msgType].INITIALFOCUS ? params[msgType].INITIALFOCUS : null, - textDirection: params[msgType].TEXTDIRECTION ? params[msgType].TEXTDIRECTION : 'Inherit', - icon: params[msgType].ICON ? params[msgType].ICON : 'NONE', - details: params[msgType].DETAILS ? params[msgType].DETAILS : '', - closeOnNavigation: params[msgType].CLOSEONNAVIGATION ? true : false - }) - } - } } }, setApp(oApp) { this._oApp = oApp; }, async displayView(xml, viewModel) { - let oview_model = new JSONModel(viewModel); + let oview_model = new JSONModel(viewModel); + var oModel = oview_model; + if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true){ + oModel = z2ui5.oModel2; + } z2ui5.oView = await XMLView.create({ definition: xml, - models: oview_model, + models: oModel, controller: z2ui5.oController, id: 'mainView', preprocessors: { @@ -498,6 +478,9 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/ui/core/mvc/XMLView", "sap/ui/ } }); z2ui5.oView.setModel(z2ui5.oDeviceModel, "device"); + if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true){ + z2ui5.oView.setModel(oview_model, "http"); + } this._oApp.removeAllPages(); this._oApp.insertPage(z2ui5.oView); }, diff --git a/app/webapp/manifest.json b/app/webapp/manifest.json index 240b887c..946607e9 100644 --- a/app/webapp/manifest.json +++ b/app/webapp/manifest.json @@ -16,6 +16,15 @@ }, "dataSources": { "mainService": { + "uri": "/sap/opu/odata/DMO/API_TRAVEL_U_V2/", + "type": "OData", + "settings": { + "annotations": [], + "localUri": "localService/metadata.xml", + "odataVersion": "2.0" + } + }, + "http": { "uri": "/sap/bc/z2ui5", "type": "OData", "settings": { @@ -78,6 +87,11 @@ "dataSource": "mainService", "preload": true, "settings": {} + }, + "http": { + "dataSource": "http", + "preload": true, + "settings": {} } }, "resources": { diff --git a/src/01/02/z2ui5_cl_core_client.clas.abap b/src/01/02/z2ui5_cl_core_client.clas.abap index 1ce36cde..9ae24bba 100644 --- a/src/01/02/z2ui5_cl_core_client.clas.abap +++ b/src/01/02/z2ui5_cl_core_client.clas.abap @@ -291,6 +291,7 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION. METHOD z2ui5_if_client~view_display. mo_action->ms_next-s_set-s_view-xml = val. + mo_action->ms_next-s_set-s_view-switchDefaultModel = switchDefaultModel. ENDMETHOD. @@ -309,7 +310,10 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION. custom_filter = custom_filter custom_mapper = custom_mapper tab = z2ui5_cl_util=>conv_get_as_data_ref( tab ) - tab_index = tab_index ) ). + tab_index = tab_index + switchDefaultModel = switchDefaultModel ) ). + + ENDMETHOD. @@ -324,7 +328,8 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION. custom_mapper = custom_mapper custom_mapper_back = custom_mapper_back tab = z2ui5_cl_util=>conv_get_as_data_ref( tab ) - tab_index = tab_index ) ). + tab_index = tab_index + switchDefaultModel = switchDefaultModel ) ). ENDMETHOD. @@ -334,7 +339,8 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION. result = lo_bind->main_local( val = val config = VALUE #( path_only = path custom_mapper = custom_mapper - custom_filter = custom_filter ) ). + custom_filter = custom_filter + switchDefaultModel = switchDefaultModel ) ). ENDMETHOD. @@ -365,7 +371,8 @@ CLASS z2ui5_cl_core_client IMPLEMENTATION. DATA(lv_check_sticky) = CAST z2ui5_if_app( mo_action->mo_app->mo_app )->check_sticky. IF lv_check_sticky = abap_true AND stateful = abap_true. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = `STATEFUL_ALREADY_ACTIVATED_ERROR`. + EXPORTING + val = `STATEFUL_ALREADY_ACTIVATED_ERROR`. ENDIF. IF stateful = abap_true. mo_action->ms_next-s_set-s_stateful-active = 1. diff --git a/src/01/02/z2ui5_cl_core_srv_bind.clas.abap b/src/01/02/z2ui5_cl_core_srv_bind.clas.abap index 92210e1a..14b66138 100644 --- a/src/01/02/z2ui5_cl_core_srv_bind.clas.abap +++ b/src/01/02/z2ui5_cl_core_srv_bind.clas.abap @@ -97,7 +97,8 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. IF mr_attri->bind_type <> mv_type. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = |
Binding Error - Two different binding types for same attribute used ({ mr_attri->name }).|. + EXPORTING + val = |
Binding Error - Two different binding types for same attribute used ({ mr_attri->name }).|. ENDIF. IF mr_attri->custom_mapper IS BOUND. @@ -106,18 +107,21 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. DATA(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 val = |
Binding Error - Two different mapper for same attribute used ({ mr_attri->name }).|. + EXPORTING + val = |
Binding Error - Two different mapper for same attribute used ({ mr_attri->name }).|. ENDIF. ENDIF. IF mr_attri->custom_mapper_back IS BOUND AND mr_attri->custom_mapper_back <> ms_config-custom_mapper_back. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = |
Binding Error - Two different mapper back for same attribute used ({ mr_attri->name }).|. + EXPORTING + val = |
Binding Error - Two different mapper back for same attribute used ({ mr_attri->name }).|. ENDIF. IF mr_attri->custom_filter IS BOUND AND mr_attri->custom_filter <> ms_config-custom_filter. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = |
Binding Error - Two different filter for same attribute used ({ mr_attri->name }).|. + EXPORTING + val = |
Binding Error - Two different filter for same attribute used ({ mr_attri->name }).|. ENDIF. ENDMETHOD. @@ -129,7 +133,8 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. DATA(lo_dummy) = CAST if_serializable_object( mr_attri->custom_filter_back ) ##NEEDED. CATCH cx_root. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = `
custom_filter_back used but it is not serializable, please use if_serializable_object`. + EXPORTING + val = `
custom_filter_back used but it is not serializable, please use if_serializable_object`. ENDTRY. ENDIF. @@ -220,10 +225,15 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. IF |/{ z2ui5_if_core_types=>cs_ui5-two_way_model }| = result. RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING val = `
Name of variable not allowed - x is reserved word - use anoter name for your attribute`. + EXPORTING + val = `
Name of variable not allowed - x is reserved word - use anoter name for your attribute`. ENDIF. + IF ms_config-switchdefaultmodel = abap_true. + result = |http>{ result }|. + ENDIF. + IF ms_config-path_only = abap_false. result = |\{{ result }\}|. ENDIF. @@ -277,6 +287,10 @@ CLASS z2ui5_cl_core_srv_bind IMPLEMENTATION. result = |/{ lv_id }|. + IF ms_config-switchdefaultmodel = abap_true. + result = |http>{ result }|. + ENDIF. + IF config-path_only = abap_false. result = |\{{ result }\}|. ENDIF. diff --git a/src/01/02/z2ui5_if_core_types.intf.abap b/src/01/02/z2ui5_if_core_types.intf.abap index 1282c0d1..2946cf89 100644 --- a/src/01/02/z2ui5_if_core_types.intf.abap +++ b/src/01/02/z2ui5_if_core_types.intf.abap @@ -43,6 +43,7 @@ INTERFACE z2ui5_if_core_types custom_filter_back TYPE REF TO z2ui5_if_ajson_filter, tab TYPE REF TO data, tab_index TYPE i, + switchDefaultModel TYPE abap_bool, END OF ty_s_bind_config. TYPES: @@ -67,6 +68,7 @@ INTERFACE z2ui5_if_core_types BEGIN OF ty_s_next_frontend, BEGIN OF s_view, xml TYPE string, + switchDefaultModel TYPE abap_bool, check_destroy TYPE abap_bool, check_update_model TYPE abap_bool, END OF s_view, diff --git a/src/01/03/z2ui5_cl_app_app_js.clas.abap b/src/01/03/z2ui5_cl_app_app_js.clas.abap index 0d3b0366..31c99abb 100644 --- a/src/01/03/z2ui5_cl_app_app_js.clas.abap +++ b/src/01/03/z2ui5_cl_app_app_js.clas.abap @@ -25,7 +25,8 @@ CLASS z2ui5_cl_app_app_js IMPLEMENTATION. `` && |\n| && ` onInit: async function () {` && |\n| && `` && |\n| && - ` z2ui5.oConfig.pathname = this.getView().getModel().sServiceUrl;` && |\n| && + ` z2ui5.oModel2 = this.getView().getModel("");` && |\n| && + ` z2ui5.oConfig.pathname = this.getView().getModel("http").sServiceUrl;` && |\n| && ` if (z2ui5?.checkLocal == true ) {` && |\n| && ` z2ui5.oConfig.pathname = window.location.href;` && |\n| && ` };` && |\n| && @@ -517,9 +518,9 @@ CLASS z2ui5_cl_app_app_js IMPLEMENTATION. ` var file = z2ui5.oUpload.oFileUpload.files[0];` && |\n| && ` var reader = new FileReader();` && |\n| && `` && |\n| && - ` reader.onload = function (evt) {` && |\n| && |\n|. result = result && + ` reader.onload = function (evt) {` && |\n| && ` var vContent = evt.currentTarget.result;` && |\n| && ` this.setProperty("value", vContent);` && |\n| && ` this.fireUpload();` && |\n| && diff --git a/src/01/03/z2ui5_cl_app_manifest_json.clas.abap b/src/01/03/z2ui5_cl_app_manifest_json.clas.abap index 456cde76..636ddc58 100644 --- a/src/01/03/z2ui5_cl_app_manifest_json.clas.abap +++ b/src/01/03/z2ui5_cl_app_manifest_json.clas.abap @@ -36,6 +36,15 @@ CLASS z2ui5_cl_app_manifest_json IMPLEMENTATION. ` },` && ` "dataSources": {` && ` "mainService": {` && + ` "uri": "/sap/opu/odata/DMO/API_TRAVEL_U_V2/",` && + ` "type": "OData",` && + ` "settings": {` && + ` "annotations": [],` && + ` "localUri": "localService/metadata.xml",` && + ` "odataVersion": "2.0"` && + ` }` && + ` },` && + ` "http": {` && ` "uri": "/sap/bc/z2ui5",` && ` "type": "OData",` && ` "settings": {` && @@ -98,6 +107,11 @@ CLASS z2ui5_cl_app_manifest_json IMPLEMENTATION. ` "dataSource": "mainService",` && ` "preload": true,` && ` "settings": {}` && + ` },` && + ` "http": {` && + ` "dataSource": "http",` && + ` "preload": true,` && + ` "settings": {}` && ` }` && ` },` && ` "resources": {` && diff --git a/src/01/03/z2ui5_cl_app_view1_js.clas.abap b/src/01/03/z2ui5_cl_app_view1_js.clas.abap index 56d597d3..f1eeb88b 100644 --- a/src/01/03/z2ui5_cl_app_view1_js.clas.abap +++ b/src/01/03/z2ui5_cl_app_view1_js.clas.abap @@ -261,6 +261,14 @@ CLASS z2ui5_cl_app_view1_js IMPLEMENTATION. ` break;` && |\n| && ` }` && |\n| && ` break;` && |\n| && + ` case 'SET_ODATA_MODEL':` && |\n| && + ` sap.ui.require([` && |\n| && + ` "sap/ui/model/odata/v2/ODataModel"` && |\n| && + ` ], async (ODataModel) => {` && |\n| && + ` var oModel = new ODataModel({ serviceUrl : args[1] });` && |\n| && + ` z2ui5.oView.setModel( oModel , args[2] );` && |\n| && + ` });` && |\n| && + ` break;` && |\n| && ` case 'DOWNLOAD_B64_FILE':` && |\n| && ` var a = document.createElement("a");` && |\n| && ` a.href = args[1];` && |\n| && @@ -357,11 +365,13 @@ CLASS z2ui5_cl_app_view1_js IMPLEMENTATION. ` z2ui5.isBusy = true;` && |\n| && ` BusyIndicator.show();` && |\n| && ` z2ui5.oBody = {};` && |\n| && - ` if (args[0][3]) {` && |\n| && - ` z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX;` && |\n| && - ` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| && - ` } else if (z2ui5.oController == this) {` && |\n| && - ` z2ui5.oBody.XX = z2ui5.oView.getModel().getData().XX;` && |\n| && + ` if (args[0][3] || z2ui5.oController == this ) {` && |\n| && + ` if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true ){` && |\n| && + ` var oModel = z2ui5.oView.getModel( "http");` && |\n| && + ` }else{` && |\n| && + ` oModel = z2ui5.oView.getModel();` && |\n| && + ` }` && |\n| && + ` z2ui5.oBody.XX = oModel.getData().XX;` && |\n| && ` z2ui5.oBody.VIEWNAME = 'MAIN';` && |\n| && ` } else if (z2ui5.oControllerPopup == this) {` && |\n| && ` if (z2ui5.oViewPopup) {` && |\n| && @@ -384,9 +394,6 @@ CLASS z2ui5_cl_app_view1_js IMPLEMENTATION. ` }` && |\n| && ` }` && |\n| && ` )` && |\n| && - ` // if (args[0][1]) {` && |\n| && - ` // z2ui5.oController.ViewDestroy();` && |\n| && - ` // }` && |\n| && ` z2ui5.oBody.ID = z2ui5.oResponse.ID;` && |\n| && ` z2ui5.oBody.ARGUMENTS = args;` && |\n| && ` z2ui5.oBody.ARGUMENTS.forEach((item, i) => {` && |\n| && @@ -465,48 +472,21 @@ CLASS z2ui5_cl_app_view1_js IMPLEMENTATION. ` };` && |\n| && ` if ( oParams.icon = 'None' ) { delete oParams.icon };` && |\n| && ` MessageBox[params[msgType].TYPE](params[msgType].TEXT, oParams);` && |\n| && - ` return;` && |\n| && - `` && |\n| && - ` switch (params[msgType].TYPE) {` && |\n| && - ` case 'error':` && |\n| && - ` MessageBox.error(params[msgType].TEXT, oParams);` && |\n| && - ` break;` && |\n| && - ` case 'warning':` && |\n| && - ` MessageBox.error(params[msgType].TEXT, oParams);` && |\n| && - ` break;` && |\n| && - ` default:` && |\n| && - ` MessageBox.shwo(params[msgType].TEXT, oParams);` && |\n| && - ` break;` && |\n| && ` }` && |\n| && - ` return;` && |\n| && - `` && |\n| && - ` if (params[msgType].TYPE) {` && |\n| && - ` MessageBox[params[msgType].TYPE](params[msgType].TEXT);` && |\n| && - ` } else {` && |\n| && - ` MessageBox.show(params[msgType].TEXT, {` && |\n| && - ` styleClass: params[msgType].STYLECLASS ? params[msgType].STYLECLASS : '',` && |\n| && - ` title: params[msgType].TITLE ? params[msgType].TITLE : '',` && |\n| && - ` onClose: params[msgType].ONCLOSE ? Function("sAction", "return " + params[msgType].ONCLOSE) : null,` && |\n| && - ` actions: params[msgType].ACTIONS ? params[msgType].ACTIONS : 'OK',` && |\n| && - ` emphasizedAction: params[msgType].EMPHASIZEDACTION ? params[msgType].EMPHASIZEDACTION : 'OK',` && |\n| && - ` initialFocus: params[msgType].INITIALFOCUS ? params[msgType].INITIALFOCUS : null,` && |\n| && - ` textDirection: params[msgType].TEXTDIRECTION ? params[msgType].TEXTDIRECTION : 'Inherit',` && |\n| && - ` icon: params[msgType].ICON ? params[msgType].ICON : 'NONE',` && |\n| && - ` details: params[msgType].DETAILS ? params[msgType].DETAILS : '',` && |\n| && - ` closeOnNavigation: params[msgType].CLOSEONNAVIGATION ? true : false` && |\n| && - ` })` && |\n| && - ` }` && |\n| && - ` }` && |\n| && ` }` && |\n| && ` },` && |\n| && ` setApp(oApp) {` && |\n| && ` this._oApp = oApp;` && |\n| && ` },` && |\n| && ` async displayView(xml, viewModel) {` && |\n| && - ` let oview_model = new JSONModel(viewModel);` && |\n| && + ` let oview_model = new JSONModel(viewModel);` && |\n| && + ` var oModel = oview_model;` && |\n| && + ` if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true){` && |\n| && + ` oModel = z2ui5.oModel2;` && |\n| && + ` }` && |\n| && ` z2ui5.oView = await XMLView.create({` && |\n| && ` definition: xml,` && |\n| && - ` models: oview_model,` && |\n| && + ` models: oModel,` && |\n| && ` controller: z2ui5.oController,` && |\n| && ` id: 'mainView',` && |\n| && ` preprocessors: {` && |\n| && @@ -518,8 +498,9 @@ CLASS z2ui5_cl_app_view1_js IMPLEMENTATION. ` }` && |\n| && ` });` && |\n| && ` z2ui5.oView.setModel(z2ui5.oDeviceModel, "device");` && |\n| && - |\n|. - result = result && + ` if (z2ui5.oResponse.PARAMS.S_VIEW?.SWITCHDEFAULTMODEL == true){` && |\n| && + ` z2ui5.oView.setModel(oview_model, "http");` && |\n| && + ` }` && |\n| && ` this._oApp.removeAllPages();` && |\n| && ` this._oApp.insertPage(z2ui5.oView);` && |\n| && ` },` && |\n| && diff --git a/src/02/z2ui5_cl_xml_view.clas.abap b/src/02/z2ui5_cl_xml_view.clas.abap index a8bc25a7..9e67622f 100644 --- a/src/02/z2ui5_cl_xml_view.clas.abap +++ b/src/02/z2ui5_cl_xml_view.clas.abap @@ -81,7 +81,7 @@ CLASS z2ui5_cl_xml_view DEFINITION sanitizecontent TYPE clike OPTIONAL visible TYPE clike OPTIONAL id TYPE clike OPTIONAL - PREFERRED PARAMETER content + PREFERRED PARAMETER content RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -194,7 +194,7 @@ CLASS z2ui5_cl_xml_view DEFINITION fixedlayout TYPE clike OPTIONAL backgrounddesign TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER items + PREFERRED PARAMETER items RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -252,7 +252,7 @@ CLASS z2ui5_cl_xml_view DEFINITION visible TYPE clike OPTIONAL showclosebutton TYPE clike OPTIONAL enableformattedtext TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -681,7 +681,7 @@ CLASS z2ui5_cl_xml_view DEFINITION valuestatetext TYPE clike OPTIONAL placeholder TYPE clike OPTIONAL showsuggestion TYPE clike OPTIONAL - VISIBLE type CLIKE optional + visible TYPE clike OPTIONAL RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -740,7 +740,7 @@ CLASS z2ui5_cl_xml_view DEFINITION enabletableautopopinmode TYPE clike OPTIONAL arialabelledby TYPE clike OPTIONAL ariadescribedby TYPE clike OPTIONAL - PREFERRED PARAMETER value + PREFERRED PARAMETER value RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -765,7 +765,7 @@ CLASS z2ui5_cl_xml_view DEFINITION type TYPE clike OPTIONAL titlealignment TYPE clike OPTIONAL state TYPE clike OPTIONAL - PREFERRED PARAMETER title + PREFERRED PARAMETER title RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -840,7 +840,7 @@ CLASS z2ui5_cl_xml_view DEFINITION autopopinwidth TYPE clike OPTIONAL class TYPE clike OPTIONAL headermenu TYPE clike OPTIONAL - PREFERRED PARAMETER width + PREFERRED PARAMETER width RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1178,7 +1178,7 @@ CLASS z2ui5_cl_xml_view DEFINITION showsubheader TYPE clike OPTIONAL titlealignment TYPE clike OPTIONAL titlelevel TYPE clike OPTIONAL - PREFERRED PARAMETER title + PREFERRED PARAMETER title RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1258,7 +1258,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL focusable TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER height + PREFERRED PARAMETER height RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1290,7 +1290,7 @@ CLASS z2ui5_cl_xml_view DEFINITION singlecontainerfullsize TYPE clike OPTIONAL visible TYPE clike OPTIONAL width TYPE clike OPTIONAL - PREFERRED PARAMETER title + PREFERRED PARAMETER title RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1320,7 +1320,7 @@ CLASS z2ui5_cl_xml_view DEFINITION width TYPE clike OPTIONAL wrappingtype TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1420,7 +1420,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL class TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1477,7 +1477,7 @@ CLASS z2ui5_cl_xml_view DEFINITION name TYPE clike OPTIONAL datevalue TYPE clike OPTIONAL initialfocuseddatevalue TYPE clike OPTIONAL - PREFERRED PARAMETER value + PREFERRED PARAMETER value RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1514,7 +1514,7 @@ CLASS z2ui5_cl_xml_view DEFINITION change TYPE clike OPTIONAL aftervaluehelpopen TYPE clike OPTIONAL aftervaluehelpclose TYPE clike OPTIONAL - PREFERRED PARAMETER value + PREFERRED PARAMETER value RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1524,7 +1524,7 @@ CLASS z2ui5_cl_xml_view DEFINITION placeholder TYPE clike OPTIONAL enabled TYPE clike OPTIONAL valuestate TYPE clike OPTIONAL - PREFERRED PARAMETER value + PREFERRED PARAMETER value RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1707,7 +1707,7 @@ CLASS z2ui5_cl_xml_view DEFINITION hspacing TYPE clike OPTIONAL vspacing TYPE clike OPTIONAL width TYPE clike OPTIONAL - PREFERRED PARAMETER default_span + PREFERRED PARAMETER default_span RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1723,7 +1723,7 @@ CLASS z2ui5_cl_xml_view DEFINITION linebreak TYPE clike OPTIONAL indentl TYPE clike OPTIONAL indentm TYPE clike OPTIONAL - PREFERRED PARAMETER span + PREFERRED PARAMETER span RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1812,7 +1812,7 @@ CLASS z2ui5_cl_xml_view DEFINITION textdirection TYPE clike OPTIONAL showvaluestatemessage TYPE clike OPTIONAL showexceededtext TYPE clike OPTIONAL - PREFERRED PARAMETER value + PREFERRED PARAMETER value RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1889,13 +1889,13 @@ CLASS z2ui5_cl_xml_view DEFINITION VALUE(result) TYPE REF TO z2ui5_cl_xml_view. METHODS harveyballmicrochartitem - IMPORTING + IMPORTING id TYPE clike OPTIONAL color TYPE clike OPTIONAL fraction TYPE clike OPTIONAL fractionScale TYPE clike OPTIONAL - class TYPE clike OPTIONAL - RETURNING + class TYPE clike OPTIONAL + RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. METHODS step_input @@ -1938,7 +1938,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL visible TYPE clike OPTIONAL enabled TYPE clike OPTIONAL - PREFERRED PARAMETER selected_key + PREFERRED PARAMETER selected_key RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1963,7 +1963,7 @@ CLASS z2ui5_cl_xml_view DEFINITION name TYPE clike OPTIONAL valuestate TYPE clike OPTIONAL required TYPE clike OPTIONAL - PREFERRED PARAMETER selected + PREFERRED PARAMETER selected RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2002,7 +2002,7 @@ CLASS z2ui5_cl_xml_view DEFINITION wrappingtype TYPE clike OPTIONAL id TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2019,7 +2019,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL class TYPE clike OPTIONAL controls TYPE clike OPTIONAL - PREFERRED PARAMETER htmltext + PREFERRED PARAMETER htmltext RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2232,7 +2232,7 @@ CLASS z2ui5_cl_xml_view DEFINITION flex TYPE clike OPTIONAL selectionbehavior TYPE clike OPTIONAL rowmode TYPE clike OPTIONAL - PREFERRED PARAMETER rows + PREFERRED PARAMETER rows RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2251,7 +2251,7 @@ CLASS z2ui5_cl_xml_view DEFINITION minwidth TYPE clike OPTIONAL resizable TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER width + PREFERRED PARAMETER width RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2339,14 +2339,14 @@ CLASS z2ui5_cl_xml_view DEFINITION sidecontentvisibility TYPE clike OPTIONAL showsidecontent TYPE clike OPTIONAL containerquery TYPE clike OPTIONAL - PREFERRED PARAMETER id + PREFERRED PARAMETER id RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. METHODS side_content IMPORTING width TYPE clike OPTIONAL - PREFERRED PARAMETER width + PREFERRED PARAMETER width RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2387,7 +2387,7 @@ CLASS z2ui5_cl_xml_view DEFINITION showrowheaders TYPE clike OPTIONAL multipleappointmentsselection TYPE clike OPTIONAL showintervalheaders TYPE clike OPTIONAL - PREFERRED PARAMETER rows + PREFERRED PARAMETER rows RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2429,7 +2429,7 @@ CLASS z2ui5_cl_xml_view DEFINITION appointmentresize TYPE clike OPTIONAL id TYPE clike OPTIONAL class TYPE clike OPTIONAL - PREFERRED PARAMETER appointments + PREFERRED PARAMETER appointments RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2441,7 +2441,7 @@ CLASS z2ui5_cl_xml_view DEFINITION standarditems TYPE clike OPTIONAL columnwidth TYPE clike OPTIONAL visible TYPE clike OPTIONAL - PREFERRED PARAMETER items + PREFERRED PARAMETER items RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2451,7 +2451,7 @@ CLASS z2ui5_cl_xml_view DEFINITION type TYPE clike OPTIONAL tooltip TYPE clike OPTIONAL color TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2471,7 +2471,7 @@ CLASS z2ui5_cl_xml_view DEFINITION width TYPE clike OPTIONAL visible TYPE clike OPTIONAL class TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -2494,7 +2494,7 @@ CLASS z2ui5_cl_xml_view DEFINITION tentative TYPE clike OPTIONAL key TYPE clike OPTIONAL selected TYPE clike OPTIONAL - PREFERRED PARAMETER startdate + PREFERRED PARAMETER startdate RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -3928,6 +3928,45 @@ CLASS z2ui5_cl_xml_view DEFINITION RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + METHODS smart_filter_bar + IMPORTING + id TYPE clike OPTIONAL + persistencyKey TYPE clike OPTIONAL + entitySet TYPE clike OPTIONAL + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + + METHODS control_configuration + IMPORTING + id TYPE clike OPTIONAL + prevInitDataFetchInValHelpDia TYPE clike OPTIONAL + visibleInAdvancedArea TYPE clike OPTIONAL + key TYPE clike OPTIONAL + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + + METHODS _control_configuration + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + + METHODS smart_table + IMPORTING + id TYPE clike OPTIONAL + smartFilterId TYPE clike OPTIONAL + tableType TYPE clike OPTIONAL + editable TYPE clike OPTIONAL + initiallyVisibleFields TYPE clike OPTIONAL + entitySet TYPE clike OPTIONAL + useVariantManagement TYPE clike OPTIONAL + useExportToExcel TYPE clike OPTIONAL + useTablePersonalisation TYPE clike OPTIONAL + header TYPE clike OPTIONAL + showRowCount TYPE clike OPTIONAL + enableExport TYPE clike OPTIONAL + enableAutoBinding TYPE clike OPTIONAL + RETURNING + VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + METHODS form_toolbar RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -4076,13 +4115,13 @@ CLASS z2ui5_cl_xml_view DEFINITION width TYPE clike OPTIONAL initialzoom TYPE clike OPTIONAL RETURNING - VALUE(result) TYPE REF TO z2ui5_cl_xml_view. + VALUE(result) TYPE REF TO z2ui5_cl_xml_view. METHODS spots IMPORTING id TYPE clike OPTIONAL items TYPE clike OPTIONAL - PREFERRED PARAMETER items + PREFERRED PARAMETER items RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -4801,7 +4840,7 @@ CLASS z2ui5_cl_xml_view DEFINITION IMPORTING id TYPE clike OPTIONAL items TYPE clike OPTIONAL - PREFERRED PARAMETER items + PREFERRED PARAMETER items RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -4814,7 +4853,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL text TYPE clike OPTIONAL color TYPE clike OPTIONAL - PREFERRED PARAMETER text + PREFERRED PARAMETER text RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -4823,7 +4862,7 @@ CLASS z2ui5_cl_xml_view DEFINITION id TYPE clike OPTIONAL items TYPE clike OPTIONAL caption TYPE clike OPTIONAL - PREFERRED PARAMETER items + PREFERRED PARAMETER items RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -7586,7 +7625,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ns = `vk` t_prop = VALUE #( ( n = `id` v = id ) - ( n = `autoAdjustHeight` v = z2ui5_cl_util=>boolean_abap_2_json( autoadjustheight ) ) + ( n = `autoAdjustHeight` v = z2ui5_cl_util=>boolean_abap_2_json( autoadjustheight ) ) ( n = `showHome` v = z2ui5_cl_util=>boolean_abap_2_json( showHome ) ) ) ). ENDMETHOD. @@ -10406,6 +10445,8 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ( n = `form` v = `sap.ui.layout.form` ) ( n = `editor` v = `sap.ui.codeeditor` ) ( n = `mchart` v = `sap.suite.ui.microchart` ) + ( n = `smartFilterBar` v = `sap.ui.comp.smartfilterbar` ) + ( n = `smartTable` v = `sap.ui.comp.smarttable` ) ( n = `webc` v = `sap.ui.webc.main` ) ( n = `uxap` v = `sap.uxap` ) ( n = `sap` v = `sap` ) @@ -10745,6 +10786,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ENDMETHOD. METHOD HarveyBallMicroChartItem. + result = _generic( name = `HarveyBallMicroChartItem` ns = `mchart` t_prop = VALUE #( ( n = `id` v = id ) @@ -10754,6 +10796,59 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ( n = `fractionScale` v = fractionScale ) ) ). ENDMETHOD. + METHOD smart_filter_bar. + + result = _generic( name = `SmartFilterBar` + ns = `smartFilterBar` + t_prop = VALUE #( ( n = `id` v = id ) + ( n = `entitySet` v = entitySet ) + ( n = `persistencyKey` v = persistencyKey ) ) ). + + ENDMETHOD. + + METHOD control_configuration. + + result = me. + _generic( name = `ControlConfiguration` + ns = `smartFilterBar` + t_prop = VALUE #( ( n = `id` v = id ) + ( n = `key` v = key ) + ( n = `visibleInAdvancedArea` v = z2ui5_cl_util=>boolean_abap_2_json( visibleInAdvancedArea ) ) + ( n = `preventInitialDataFetchInValueHelpDialog` v = z2ui5_cl_util=>boolean_abap_2_json( prevInitDataFetchInValHelpDia ) ) + ) ). + + ENDMETHOD. + + METHOD smart_table. + + result = _generic( name = `SmartTable` + ns = `smartTable` + t_prop = VALUE #( + ( n = `id` v = id ) + ( n = `smartFilterId` v = smartFilterId ) + ( n = `tableType` v = tableType ) + ( n = `editable` v = z2ui5_cl_util=>boolean_abap_2_json( editable ) ) + ( n = `initiallyVisibleFields` v = initiallyVisibleFields ) + ( n = `entitySet` v = entitySet ) + ( n = `useVariantManagement` v = z2ui5_cl_util=>boolean_abap_2_json( useVariantManagement ) ) + ( n = `useExportToExcel` v = z2ui5_cl_util=>boolean_abap_2_json( useExportToExcel ) ) + ( n = `useTablePersonalisation` v = z2ui5_cl_util=>boolean_abap_2_json( useTablePersonalisation ) ) + ( n = `header` v = header ) + ( n = `showRowCount` v = z2ui5_cl_util=>boolean_abap_2_json( showRowCount ) ) + ( n = `enableExport` v = z2ui5_cl_util=>boolean_abap_2_json( enableExport ) ) + ( n = `enableAutoBinding` v = z2ui5_cl_util=>boolean_abap_2_json( enableAutoBinding ) ) + ) ). + + ENDMETHOD. + + METHOD _control_configuration. + + result = _generic( name = `controlConfiguration` + ns = `smartFilterBar` + ). + + ENDMETHOD. + METHOD viz_dataset. result = _generic( name = 'dataset' ns = 'viz' ). diff --git a/src/02/z2ui5_if_client.intf.abap b/src/02/z2ui5_if_client.intf.abap index ab3d1fdc..60c490c0 100644 --- a/src/02/z2ui5_if_client.intf.abap +++ b/src/02/z2ui5_if_client.intf.abap @@ -15,6 +15,7 @@ INTERFACE z2ui5_if_client popup_nav_container_to TYPE string VALUE `POPUP_NAV_CONTAINER_TO`, download_b64_file TYPE string VALUE `DOWNLOAD_B64_FILE`, set_size_limit TYPE string VALUE `SET_SIZE_LIMIT`, + set_odata_model TYPE string VALUE `SET_ODATA_MODEL`, END OF cs_event. CONSTANTS: @@ -30,7 +31,8 @@ INTERFACE z2ui5_if_client METHODS view_display IMPORTING - val TYPE clike. + val TYPE clike + switchDefaultModel TYPE abap_bool DEFAULT abap_false. METHODS view_model_update. @@ -154,14 +156,15 @@ INTERFACE z2ui5_if_client METHODS _bind IMPORTING - val TYPE data - !path TYPE abap_bool DEFAULT abap_false - custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL - custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL - !tab TYPE data OPTIONAL - tab_index TYPE i OPTIONAL + val TYPE data + !path TYPE abap_bool DEFAULT abap_false + custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL + custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL + !tab TYPE data OPTIONAL + tab_index TYPE i OPTIONAL + switchDefaultModel TYPE abap_bool DEFAULT abap_false RETURNING - VALUE(result) TYPE string. + VALUE(result) TYPE string. METHODS _bind_edit IMPORTING @@ -174,17 +177,19 @@ INTERFACE z2ui5_if_client custom_filter_back TYPE REF TO z2ui5_if_ajson_filter OPTIONAL !tab TYPE data OPTIONAL tab_index TYPE i OPTIONAL + switchDefaultModel TYPE abap_bool DEFAULT abap_false RETURNING VALUE(result) TYPE string. METHODS _bind_local IMPORTING - val TYPE data - !path TYPE abap_bool DEFAULT abap_false - custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL - custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL + val TYPE data + !path TYPE abap_bool DEFAULT abap_false + custom_mapper TYPE REF TO z2ui5_if_ajson_mapping OPTIONAL + custom_filter TYPE REF TO z2ui5_if_ajson_filter OPTIONAL + switchDefaultModel TYPE abap_bool DEFAULT abap_false RETURNING - VALUE(result) TYPE string. + VALUE(result) TYPE string. METHODS follow_up_action IMPORTING