BSP application names and SICF nodes for SAPUI5 on ABAP server
The SAPUI5 developer guide describes how to deploy a SAPUI5 application project to the SAPUI5 repository on the ABAP server in minute detail (https://sapui5.hana.ondemand.com/sdk/docs/guide/UI5BSPRepository.html). Technically, the files of the SAPUI5 application are stored as a BSP application on the server. You can create a BSP application with the wizard in Eclipse or use an application already existing on the server or create a new one manually on the server. What I miss from the guide are the subtle details around names if you create the BSP application manually. The name of the BSP application as well as the location and the name of the SICF service node must follow some rules.
According to the guide, the SAPUI5 application node in SICF has to be created in the branch /sap/bc/ui5_ui5/<namespace>. Usually, the namespace would be sap, which is what it has to be if you use the Eclipse wizard. But you can pick your own namespace as well, if you have one registered in the system. To use a custom namespace, you need to add a node with its name exactly like the namepsace as a child node of /sap/bc/ui5_ui5/. Your applications must then be published as child nodes of your namespace node e.g. /sap/bc/ui5_ui5/iprocon/testui5.
The reason for this comes from the logic in the http handler classes for SAPUI5, that are registered with the node /sap/bc/ui5_ui5. The mapping of the URL to the BSP application resources is done inside these classes.
All put together, if you want to use a custom namespace, then you need to create a child node for ui5_ui5 named as your namespace and add a child node to your namespace node with just the name of your BSP application without namespace prefix. The BSP application name itself nevertheless must contain the namespace prefix:
- SICF node for the SAPUI5 application in custom namespace: /sap/bc/ui5_ui5/iprocon/testui5
- BSP application name in custom namespace: /IPROCON/TESTUI5
If you do not want to use a custom namespace, you can simply pick any BSP application name from the customer namespace and create a sicf node with your application name as child of /sap/bc/ui5_ui5/sap.
- SICF node for the SAPUI5 application: /sap/bc/ui5_ui5/sap/ztestui5
- BSP application name: ZTESTUI5