SAPUI5 App without destination(cloudconnector) - sapui5

i have a question.. for example i dont want to use the sap cloud and want to deploy my app on a sap gatewayserver so what do i have to change? my app works trough the cloud platform with a destination (cloudconnector).. but i dont want this way anymore. So what i need to change in the manifest or the neo.js? maybe you guys have an example? bc. i dont really find anything what gives me the click in my head..
i dont want to change all the calls to ajax calls.. so there used to be a good solution to change something in the manifest or neo.. or something like that right? so you dont have to change your code
as i said the best way is to show me an example and explain me on this example.
my neo-app.js
{
"welcomeFile": "/webapp/index.html",
"routes": [
{
"path": "/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources"
},
"description": "SAPUI5 Resources"
},
{
"path": "/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources"
},
"description": "SAPUI5 Test Resources"
},
{
"path": "/sap/opu/odata",
"target": {
"type": "destination",
"name": "prototyp2",
"entryPath": "/sap/opu/odata"
},
"description": "prototyp2"
}
],
"sendWelcomeFileRedirect": true
}
as you can see the last route thats the destination via cloud connector.
and this is my manifest
{
"_version": "1.12.0",
"sap.app": {
"id": "test",
"type": "application",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"resources": "resources.json",
"ach": "ach",
"sourceTemplate": {
"id": "servicecatalog.connectivityComponentForManifest",
"version": "0.0.0"
},
"dataSources": {
"ZEITERFASSUNG_2_SRV": {
"uri": "/sap/opu/odata/sap/test_SRV/",
"type": "OData",
"settings": {
"localUri": "localService/metadata.xml"
}
}
}
},
"sap.ui": {
"technology": "UI5",
"icons": {
"icon": "",
"favIcon": "",
"phone": "",
"phone#2": "",
"tablet": "",
"tablet#2": ""
},
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
},
"supportedThemes": [
"sap_hcb",
"sap_bluecrystal"
]
},
"sap.ui5": {
"rootView": {
"viewName": "Zeiterfassung.view.timeOverview",
"type": "XML"
},
"dependencies": {
"minUI5Version": "1.66.0",
"libs": {
"sap.m": {},
"sap.ui.core": {},
"sap.ui.layout": {},
"sap.ui.table": {
"minVersion": ""
},
"sap.ui.unified": {
"minVersion": ""
}
}
},
"contentDensities": {
"compact": true,
"cozy": true
},
"models": {
"": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultOperationMode": "Server",
"defaultBindingMode": "TwoWay",
"defaultCountMode": "Request"
},
"dataSource": "test_SRV",
"preload": true
}
},
"resources": {
"css": [
{
"uri": "css/style.css"
}
]
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"async": true,
"viewPath": "Zeiterfassung.view",
"controlAggregation": "pages",
"controlId": "idAppControl"
},
"targets": {
"TargettimeOverview": {
"viewType": "XML",
"transition": "slide",
"clearAggregation": true,
"viewName": "TimeOverview"
}
}
}
},
"sap.platform.hcp": {
"uri": "webapp",
"_version": "1.3.0"
}
}
Thanks guys
:)

your neo-app.js is only for the webide.
Rename your "webapp" folder to "WebContent".
export your app
unpack
use the ui5 uploader in your backend
"/UI5/UI5_REPOSITORY_LOAD" for uploading
If you run the index.html directly ( instead of using a launchpad), be sure your script-tag in your index.html is set to src="resources/sap-ui-core.js"

Related

SAP UI5 Routing and Navigation in SplitScreen Application

I'm facing an issue with SAPUI5 SplitScreen Concept. I have one initial view on which there is a button that leads to a SplitScreen application. Until this point everything works fine.The issue is that there a two additional views (Master.view, Detail.view) that should be routed to the SplitView.
They simply aren't loaded to it and I can't solve the problem.
I have mentioned manifest.json above.
{
"_version": "1.12.0",
"sap.app": {
"id": "curvy.SplitApp",
"type": "application",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"sourceTemplate": {
"id": "ui5template.basicSAPUI5ApplicationProject",
"version": "1.40.12"
}
},
"sap.ui": {
"technology": "UI5",
"icons": {
"icon": "",
"favIcon": "",
"phone": "",
"phone#2": "",
"tablet": "",
"tablet#2": ""
},
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"flexEnabled": false,
"rootView": {
"viewName": "curvy.SplitApp.view.App",
"type": "XML",
"async": true,
"id": "App"
},
"dependencies": {
"minUI5Version": "1.65.6",
"libs": {
"sap.ui.layout": {},
"sap.ui.core": {},
"sap.m": {}
}
},
"contentDensities": {
"compact": true,
"cozy": true
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "curvy.SplitApp.i18n.i18n"
}
}
},
"resources": {
"css": [{
"uri": "css/style.css"
}]
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"async": true,
"viewPath": "curvy.SplitApp.view",
"controlAggregation": "pages",
"controlId": "app",
"clearControlAggregation": false
},
"routes": [{
"name": "RouteApp",
"pattern": "RouteApp",
"target": ["TargetApp"]
}, {
"name": "SplitView",
"pattern": "SplitApp",
"view":"SplitView",
"controlId": "App",
"target": ["SplitView"],
"subroutes": [{
"pattern": "Route_Master",
"name": "Master",
"view": "Master",
"targetAggregation": "masterPages",
"targetControl": "splitapp",
"target": ["Master"],
"subroutes": [{
"pattern": "Route_Detail",
"name": "Detail",
"view": "Detail",
"targetAggregation": "detailPages",
"target": ["Detail"]
}]
}]
}],
"targets": {
"TargetApp": {
"viewType": "XML",
"transition": "slide",
"clearControlAggregation": false,
"viewId": "App",
"viewName": "App"
},
"SplitView": {
"viewType": "XML",
"viewName": "SplitView"
},
"Master": {
"viewType": "XML",
"viewName": "Master",
"controlId": "splitapp"
},
"Detail": {
"viewType": "XML",
"viewName": "Detail",
"controlId": "splitapp"
}
}
}
}
}

How to add a SAP UI5 application to Fiori Launchpad?

I have a MTA project and I am trying to add the UI5 application to the Fiori Launchpad. But currently, the tiles do not show up. Instead when I check the console, I see that the target mapping has not been done properly. Can you please suggest where I do the target mapping.
This is the error I receive -
The following is the manifest file of GroupManage app. There are other apps/tiles such as quickLoader, messageBuilder etc.
manifest.json -
{
"_version": "1.7.0",
"sap.app": {
"id": "com.sap.groups",
"type": "application",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"sourceTemplate": {
"id": "servicecatalog.connectivityComponent",
"version": "0.0.0"
},
"dataSources": {
"mainService": {
"uri": "/odata/sah.svc/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "localService/metadata.xml"
}
}
}
},
"sap.ui": {
"technology": "UI5",
"icons": {
"icon": "",
"favIcon": "",
"phone": "",
"phone#2": "",
"tablet": "",
"tablet#2": ""
},
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
},
"supportedThemes": [
"sap_hcb",
"sap_belize"
]
},
"sap.ui5": {
"rootView": {
"viewName": "com.sap.groups.view.groupList",
"type": "XML"
},
"dependencies": {
"minUI5Version": "1.30.0",
"libs": {
"sap.ui.core": {},
"sap.m": {},
"sap.ui.layout": {},
"sap.ushell": {},
"sap.collaboration": {},
"sap.ui.comp": {},
"sap.uxap": {}
}
},
"contentDensities": {
"compact": true,
"cozy": true
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "com.sap.groups.i18n.i18n"
}
},
"": {
"dataSource": "mainService",
"settings": {
"metadataUrlParams": {
"sap-documentation": "heading"
}
}
}
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"viewPath": "com.sap.groups.view",
"controlId": "app",
"controlAggregation": "pages",
"async": true
},
"routes": [{
"pattern": "",
"name": "groupList",
"target": "groupList"
}, {
"pattern": "details/{groupId}",
"name": "details",
"target": "groupDetails"
}],
"targets": {
"groupList": {
"viewName": "groupList",
"viewId": "groupList"
},
"groupDetails": {
"viewName": "groupDetails",
"viewId": "groupDetails"
}
}
},
"resources": {
"css": [
{
"uri": "css/style.css"
}
]
}
}
}
And the site-content.json of the project is as follows -
{
"_version": "1.0.0",
"site": {
"_version": "1.0",
"identification": {
"id": "....",
"namespace": "",
"entityType": "site",
"description": "",
"i18n": "",
"title": "{{LAUNCHPAD_SAMPLE}}"
},
"payload": {
"groupsOrder": [
"user-applications",
"configuration-applications"
],
"config": {
},
"sap.cloud.portal": {
"_version": "1.2.0",
"config": {
"theme.id": "sap_belize",
"theme.active": "[\"sap_hcb\",\"sap_belize_plus\",\"sap_belize\"]"
}
}
}
},
"catalogs": {
"sah-technical-catalog": {
"_version": "1.1",
"identification": {
"id": "sah-technical-catalog",
"namespace": "sah-tech-catalog",
"title": "{{TECH_CATALOGS}}",
"description": "",
"entityType": "catalog",
"i18n": "i18n/i18n.properties"
},
"payload": {
"appDescriptors": [{
"id":"sah-grp-manage"
}, {
"id":"sah-msg-manage"
}, {
"id":"sah-ops-activities"
}, {
"id":"sah-quick-loader"
}]
}
}
},
"roles": {
"Everyone": {
"_version": "1.0",
"identification": {
"id": "Everyone",
"title": "Everyone",
"entityType": "role"
},
"payload": {
"catalogs": [
"sah-technical-catalog"
],
"groups": [{
"id": "user-applications"
},
{
"id": "configuration-applications"
}]
}
}
},
"applications": {
"sah-grp-manage":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-grp-manage",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupManage": {
"semanticObject": "group",
"action": "manage",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/manageGroup",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "com.sap.groups",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.DISPLAY_GROUPS"]
}
},
"sah-msg-manage":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-msg-manage",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{MSG_BUILDER}}",
"description": "{{MSG_BLD_DESC}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupManage": {
"semanticObject": "message",
"action": "manage",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/manageMessage",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "com.sap.messageList",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.MANAGE_MESSAGES"]
}
},
"sah-grp-edit":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-grp-edit",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupEdit": {
"semanticObject": "group",
"action": "edit",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/editGroup",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "ALPAPP",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.DISPLAY_GROUPS"]
}
},
"sah-msg-create":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-msg-create",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{MSG_CREATE}}",
"description": "{{MSG_CREATE_DESC}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupEdit": {
"semanticObject": "message",
"action": "create",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/createMessage",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "com.sap.messageBuilder",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.MANAGE_MESSAGES"]
}
},
"sah-ops-activities":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-ops-activities",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{CONFIG_TITILE}}",
"description": "{{appDescription}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupManage": {
"semanticObject": "activities",
"action": "operation",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/operationalActivities",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "com.sap.operational_activities",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.OPERATIONS"]
}
},
"sah-quick-loader":{
"sap.app": {
"_version": "1.5.0",
"id": "sah-quick-loader",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{LOADER_TITILE}}",
"description": "{{appDescription}}",
"tags": {
"keywords": []
},
"crossNavigation": {
"inbounds": {
"groupManage": {
"semanticObject": "activities",
"action": "quickLoader",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
}
},
"outbounds": {
}
}
},
"sap.platform.hcp": {
"_version": "1.1.0",
"uri": "/quickLoader",
"appName": ""
},
"sap.flp": {
"_version": "1.1.0",
"type": "UI5",
"config": {
"skipVariantResolving": ""
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"componentName": "com.sap.quickloader",
"_version": "1.1.0"
},
"sap.platform.cf": {
"oAuthScopes": ["$XSAPPNAME.OPERATIONS"]
}
}
},
"groups": {
"user-applications": {
"identification": {
"id": "user-applications",
"i18n": "i18n/i18n.properties",
"namespace": "user.applications",
"title": "{{LAUNCHPAD_TITLE}}"
},
"payload": {
"tiles": [{
"id": "sah-grp-manage",
"title": "{{GRP_MANAGEMENT}}",
"description": "{{SAH_APP}}",
"icon": "sap-icon://family-care",
"target": {
"semanticObject": "group",
"action": "manage",
"parameters": []
}
},{
"id": "sah-msg-manage",
"title": "{{MSG_BUILDER}}",
"description": "{{MSG_BLD_DESC}}",
"icon": "sap-icon://email",
"target": {
"semanticObject": "message",
"action": "manage",
"parameters": []
}
}]
}
},
"configuration-applications": {
"identification": {
"id": "configuration-applications",
"i18n": "i18n/i18n.properties",
"title": "{{CONFIGURATIONS_TITLE}}"
},
"payload": {
"tiles": [{
"id": "sah-ops-activities",
"title": "{{OPERATIONS}}",
"description": "{{SAH_APP}}",
"icon": "sap-icon://action-settings",
"target": {
"semanticObject": "activities",
"action": "operation",
"parameters": []
}
},{
"id": "sah-quick-loader",
"title": "{{quickLoader}}",
"description": "{{SAH_APP}}",
"icon": "sap-icon://upload",
"target": {
"semanticObject": "activities",
"action": "quickLoader",
"parameters": []
}
}]
}
}
},
"siteThemes": {
"sap_hcb": {
"description": "SAP High Contrast Black",
"name": "sap_hcb",
"path": "sap_hcb"
},
"sap_belize_plus": {
"description": "SAP Belize Plus",
"name": "sap_belize_plus",
"path": "sap_belize_plus"
},
"sap_belize": {
"description": "SAP Belize",
"name": "sap_belize",
"path": "sap_belize"
}
}
}
Have you created the tiles in the launchpad manager ?
Is this on prem or on the cloud ?
This blog covers MTA sorry, missed that part of your question:- https://blogs.sap.com/2018/10/29/develop-your-first-sap-fiori-launchpad-site-with-portal-service-on-sap-cloud-platform-multi-cloud-chapter-2/
This blog shows you how to set it up for on prem with some great easy to follow screen shots https://blogs.sap.com/2017/11/19/sap-fiori-ui5-app-configuration-in-sap-fiori-launchpad/
ANd here Meredith takes you through deployment from the cloud https://developers.sap.com/uk/tutorials/teched-2017-fiori-deploy.html

SAPUI5: Why i'm Not able to access data of ES4?

Why is this happening and how can i solve it?
I have a problem getting the data from hanatrial.ondemand.com, i keep getting an authentication alert:
heres my destination conf:
and heres my conf files:
neo-app.json
{
"welcomeFile": "index.html",
"routes": [{
"path": "/resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/resources"
},
"description": "SAPUI5 Resources"
}, {
"path": "/test-resources",
"target": {
"type": "service",
"name": "sapui5",
"entryPath": "/test-resources"
},
"description": "SAPUI5 Test Resources"
}, {
"path": "/destinations/ES4",
"target": {
"type": "destination",
"name": "ES4"
},
"description": "ES4 Demo Service"
}
]
}
menifest.json
{
"_version": "1.3.0",
"sap.app": {
"_version": "1.3.0",
"id": "opensap.myapp",
"type": "application",
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"applicationVersion": {
"version": "1.0.0"
},
"dataSources": {
"ES4": {
"uri": "/destinations/ES4/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/",
"type": "OData",
"settings": {
"odataVersion": "2.0"
}
}
},
"i18n": "i18n/i18n.properties"
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
},
"supportedThemes": [
"sap_bluecrystal"
]
},
"sap.ui5": {
"_version": "1.2.0",
"rootView": {
"viewName": "opensap.myapp.view.App",
"type": "XML",
"id": "app"
},
"autoPrefixId": true,
"dependencies": {
"minUI5Version": "1.34",
"libs": {
"sap.ui.core": {
"minVersion": "1.34.0"
},
"sap.m": {
"minVersion": "1.34.0"
},
"sap.ui.layout": {
"minVersion": "1.34.0"
}
}
},
"contentDensities": {
"compact": true,
"cozy": true
},
"models": {
"": {
"dataSource": "ES4"
},
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "opensap.myapp.i18n.i18n"
}
},
"address": {
"type": "sap.ui.model.json.JSONModel",
"uri": "model/Address.json"
},
"helloPanel": {
"type": "sap.ui.model.json.JSONModel",
"uri": "model/HelloPanel.json"
}
}
}
}
Why is this happening and how can i solve it?
this is the file that i'm supposed to retrive the data, but still no success:
https://sapes4.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/$metadata
So how can i solve this?
looks like the user or pw in the destination is wrong. use the same credentials in the destination configration as you would to access:
https://sapes4.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/$metadata
The dialog is for you to provide the system credentials of ES4. However, you can eliminate this by adding it in the destination of your SAP Cloud platform.
Nonetheless, the system ES4 is no more active and you can use ES5 for the sample Odata by simply creating a user.
https://sapes5.sapdevcenter.com/sap/opu/odata/iwbep/GWSAMPLE_BASIC/

Error in application dependency 'sap.m': 'No descriptor was found'

deploying my application on Fiori launchpad I found the following errors on the console:
Error in application dependency 'sap.ui.core': 'No descriptor was found'
Error in application dependency 'sap.m': 'No descriptor was found'
Error in application dependency 'sap.ui.layout': 'No descriptor was found'
In the manifest.json file , I declared the following dependencies:
"dependencies": {
"minUI5Version": "1.34.0",
"libs": {
"sap.ui.core": {
"minVersion": "1.34.0"
},
"sap.m": {
"minVersion": "1.34.0"
},
"sap.ui.layout": {
"minVersion": "1.34.0"
}
}
},
I don't know what's the problem, could someone help me?
Thanks.
The full manifest.json is:
{
"_version": "1.3.0",
"sap.app": {
"_version": "1.3.0",
"id": "com.roberto",
"type": "application",
"i18n": "i18n/i18n.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"sourceTemplate": {
"id": "ui5template.basicSAPUI5ApplicationProject",
"version": "1.38.11"
}
},
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
},
"supportedThemes": [
"sap_bluecrystal"
]
},
"sap.ui5": {
"_version": "1.2.0",
"rootView": {
"viewName": "com.roberto.view.CollectionBoard",
"type": "XML"
},
"dependencies": {
"minUI5Version": "1.34.0",
"libs": {
"sap.ui.core": {},
"sap.m": {},
"sap.ui.layout": {}
}
},
"contentDensities": {
"compact": false,
"cozy": true
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "com.roberto.i18n.i18n"
}
},
"CollectionTree": {
"type": "sap.ui.model.json.JSONModel",
"uri": "model/prdt_collections_tree.json"
}
},
"resources": {
"css": [
{
"uri": "css/custom.css"
}
]
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"viewPath": "com.roberto.view",
"controlId": "collboard",
"controlAggregation": "pages",
"bypassed": {
"target": "notFound"
}
},
"routes": [
{
"pattern": "",
"name": "collections",
"target": "TargetCollections"
},
{
"pattern": "detail/{collectionPath}",
"name": "RouteDetails",
"target": "TargetDetails"
},
{
"pattern": "AddCollection",
"name": "RouteAdd",
"target": "TargetAdd"
}
],
"targets": {
"TargetCollections": {
"viewName": "CollectionBoard",
"viewType": "XML",
"viewLevel": 1
},
"TargetDetails": {
"viewName": "CollectionDetails",
"viewType": "XML",
"viewLevel": 2
},
"TargetAdd": {
"viewName": "AddCollection",
"viewType": "XML",
"viewLevel": 2
},
"notFound": {
"viewName": "NotFound",
"transition": "show"
}
}
}
},
"sap.platform.hcp": {
"uri": "webapp",
"_version": "1.1.0"
}
}
Did you include the following somewhere above what you wrote?
"sap.ui": {
"_version": "1.3.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
},
"supportedThemes": [
"sap_bluecrystal"
]

How can i get the value from an sapui5 application URL in the controller.xml

I have a business requirement where in i am developing a sapui5 employee leave application deployed in HCP using cloud based sap webide tool.
Two types of employees will access this application using two different url with parameters either 'IT' or 'BPO':
https://webidetesting453789-inf98834.dispatcher.int.sap.hana.ondemand.com/webapp/index.html#/IT
https://webidetesting453789-inf98834.dispatcher.int.sap.hana.ondemand.com/webapp/index.html#/BPO
Backend : I have developed a REST service which is giving me the employee details in jSON format when i do a GET request using the following url either for IT or BPO specific employees like:
/irc.com/ircit/empleave/rest/empleave/item/requestor/IT
or
/irc.com/ircit/empleave/rest/empleave/item/requestor/BPO
View:
I have used a xml view MyRequestList which will show me all the request both from IT and BPO in tabular format.
Requirement:
I need to fetch the data according to the parameter passed in the url.For example when the user click on the below url,the title of the MyRequestView should be IT Employee and requests for only IT employees should appear and same for BPO.
https://webidetesting453789-inf98834.dispatcher.int.sap.hana.ondemand.com/webapp/index.html#/IT
Question:
How to get the parameter 'IT' or 'BPO' from the application url and pass on to the view from the controller.
Jquery.sap.GetURIParameter.Get("MyParam") is not fetching the url parameter 'IT' or 'BPO'.What method should I use.
RouterConfig:
{
"_version": "1.1.0",
"sap.app": {
"_version": "1.1.0",
"id": "ircit.irc",
"type": "application",
"i18n": "/webapp/i18n/i18n.properties",
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"applicationVersion": {
"version": "1.0.0"
}
},
"sap.ui": {
"_version": "1.1.0",
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": false,
"phone": false
},
"supportedThemes": [
"sap_bluecrystal"
]
},
"sap.ui5": {
"_version": "1.1.0",
"rootView": "ircit.irc.view.App",
"dependencies": {
"minUI5Version": "1.30",
"libs": {
"sap.m": {}
}
},
"contentDensities": {
"compact": true,
"cozy": true
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "ircit.irc.i18n.i18n"
}
}
},
"resources": {
"css": [
{
"uri": "/webapp/css/style.css"
}
]
},
"routing": {
"config": {
"routerClass": "ircit.generic.utils.CustomRouter",
"viewType": "XML",
"viewPath": "ircit.irc.view",
"controlId": "app",
"fullWidth": true,
"controlAggregation": "pages",
"bypassed": {
"target": [
"notFound"
]
}
},
"routes": [
/*{
"pattern": "",
"name": "myRequests",
"target": "myRequests"
},*/
{
"pattern": "/{id}",
"name": "myRequests",
"target": "myRequests"
},
{
"pattern": "/create",
"name": "create",
"target": "create"
},
{
"pattern": "/create/{id}",
"name": "copy",
"target": "create"
},
{
"pattern": "/id={id}",
"name": "Display",
"target": "display"
}
],
"targets": {
"myRequests": {
"viewName": "MyRequests",
"viewId": "myRequests",
"viewLevel": 1
},
"display": {
"viewName": "Display",
"viewId": "display",
"viewLevel": 2
},
"create": {
"viewName": "Create",
"viewId": "create",
"viewLevel": 2
},
"copy": {
"viewName": "Create",
"viewId": "create",
"viewLevel": 2
},
"notFound": {
"viewName": "NotFound",
"viewId": "notFound"
}
}
}
},
"sap.platform.hcp": {
"uri": "webapp",
"_version": "1.1.0"
}
}
MyRequestController:
onInit: function() {
// set create option (cteate and copy button)
var bValue = jQuery.sap.getUriParameters().get("showCreate");
var oBtn = this.byId("btnCreate");
oBtn.setVisible(bValue !== "false");
var oColumn = this.byId("colCopy");
oColumn.setVisible(bValue !== "false");
this.getRouter().attachRouteMatched(jQuery.proxy(this.onRouteMatched, this));
},
I would declare two more routes: 1. IT and 2. BPO. Clearly, you want to navigate to 'myRequests' so will skip creating any new targets for them. So, two routes:
{
"pattern": "IT",
"name": "IT",
"target": "myRequests"
},
{
"pattern": "BPO",
"name": "BPO",
"target": "myRequests"
},
Next up is how do we know which route was hit and handle it accordingly. So, what we do is, fetch the route and associate a handler with it :
onInit: function() {
var oComponent = this.getOwnerComponent();
this._router = oComponent.getRouter();
this._router.getRoute("IT").attachPatternMatched(this._routePatternMatchedForIT, this);
this._router.getRoute("BPO").attachPatternMatched(this._routePatternMatchedForBPO, this);
},
_routePatternMatchedForIT: function (oEvent) {
console.log('Shout for IT');
var sRouteName = oEvent.getParameter('name');
// Call the service : /irc.com/ircit/empleave/rest/empleave/item/requestor/IT
},
_routePatternMatchedForBPO: function (oEvent) {
console.log('Shout for BPO');
// Call the service : /irc.com/ircit/empleave/rest/empleave/item/requestor/BPO
var sRouteName = oEvent.getParameter('name');
}
Notice there are two different handlers for two different paths. And which handler will be called will be completely based on how the URL was formed ( with IT or with BPO).
Let me know if this helps.