This is the recommend configuration because in Fiori Launchpad it is possible to set and store application specific information (Cost Center Area etc.). This information is stored on the Frontend System and can only be applied properly if all requests are forwarded to the frontend system and are then routed via RFC destinations to the backend system. Another reason is that the configuration is similar to the configuration of S4 OData requests and therefore well known by admins.
Prerequisites
- Gateway / Frontend Server is separate from Backend Server
- The version of the UI5 distribution used on the Frontend Server is 1.44 or newer
- Design Studio Embedded analytics applications are used
Configuration
A Test Web Dispatcher interference
In case you used a Web Dispatcher configuration before to route InA requests to the backend server then this configuration must be undone first to use this kind of setup. This docu shows the original configuration.
Fire this URL in a browser:
https://<frontend-host>:<port>/sap/bw/ina/GetServerInfo?sap-client=<xxx>
See trouble shooting chapter for more details.
Verify that SESSIONID cookie must come from your frontend server / client.
B Backend System
B1 Activate INA services
In transaction SICF activate the following InA services:
- sap/bw/ina/GetServerInfo
- sap/bw/ina/GetResponse
B2 Test InA Services using Internet Control Framework
In transaction SICF select "Test Service" in the context menu of the service:sap/bw/ina/GetServerInfo
You should see a response. The tag ServerInfo must contain the backend system id and client.
B3 Test InA Services using HTTP/HTTPS settings of system
call transaction SMICM. In Menu select Goto > Services. Note down Host and Port of current system.
Using host and port from protocol HTTPS call the InA Service "GetServerInfo" from your browser or call transaction IWFND/GW_CLIENT (preferred since error log can be viewed)
https://<hostname>:<port>/sap/bw/ina/GetServerInfo[?sap-client=<client>&sap-language="<lang>"]
You should see a response. The tag ServerInfo must contain the backend system id and client.
C Frontend System
C1 RFC Destination + System Alias
Typically the RFC destination has already been created during the ODATA configuration. If not these are the steps to do:
C1.1 RFC Destination to backend server
Create an RFC destination for the appropriate Client on the Backend Server
call transaction SM59 and create an ABAP connection
or
call transaction SPRO > open the SAP Reference IMG and navigate to: SAP NetWeaver > SAP Gateway > OData Channel > Configuration > Connection Settings > SAP Gateway to SAP System > Manage RFC Destinations
C1.2 System Alias
Create a system alias pointing to the RFC destination configured above like this:
call transaction /IWFND/ROUTING
or
call transaction SPRO > open the SAP Reference IMG and navigate to: SAP NetWeaver > SAP Gateway > OData Channel > Configuration > Connection Settings > SAP Gateway to SAP System > Manage SAP System Aliases
ATTENTION:
If you require the configuration for a specific S/4 area then use the system alias required by the S/4 area.
C1.3 SSO Config
it is also necessary that Single Sign-On is correctly configured between the Frontend and the Backend Server.
C1.4 Test RFC Destination
Call transaction SM59. Under "ABAP Connection" double click the RFC Destination to check. In Menu Utilities > Test you will find 3 connection checks:
- Connection Test
This attempts to make a connection with the remote system and hence validates IP address / Hostname and other connection details. If both systems are not able to connect, it throws an error. On success, it displays the table with response times. This test is just to check if the calling system can reach the remote system - Authorization Test
It is used to validate the User ID and Password (provided under 'logon and security' tab for the target system) and also the authorizations that are provided. If a test is successful, then the same screen will appear as shown above for the connection test. - Unicode Test
It is to check if the Target system is a Unicode or not.
Perform the Connection and Authorization Test and ensure the tests do not fail.
C1.5 Test System Alias:
Call transaction /IWFND/ROUTING. Select the System Alias to be checked. Press Button "Check Connection". Ensure the connection test does not fail.
C2 InA Default System Alias (Do not use!!! not required since should occur via RFC Dispatching)
C2.1 Config
Note: this is only required in distributed Landscapes where Queries are located on a different system than frontend/gateway system.
Set the Default System Alias which should be used by the InA service for data access. The Default System Alias is set by the RSADMIN paramter RSBICS_INA_RFC_DEFAULT_ALIAS. This can be set by using the Report SAP_RSADMIN_MAINTAIN (on the front-end server). Simply specify RSBICS_INA_RFC_DEFAULT_ALIAS as OBJECT and the desired system alias (from above) as VALUE.
C2.2 Test
Call transaction SE12. Enter database table RSADMIN and execute. In menu select Utilities > Table Contents > Display to view the table content and execute. Ensure the OBJECT RSBICS_INA_RFC_DEFAULT_ALIAS is contained within the list and has a VALUE (system alias) assigned to it. Ensure the value contains the correct name of the system alias (from above).
C3 InA services
C3.1 Activation
In transaction SICF activate the following InA services:
- sap/bw/ina/GetServerInfo
- sap/bw/ina/GetResponse
C3.2 Test InA Service using Internet Control Framework
In transaction SICF select "Test Service" in the context menu of the service:sap/bw/ina/GetServerInfo
You should see a response. The tag ServerInfo must contain the frontend system id and client or when default system alias for BW has been configured the backend system id and client.
Be aware that there is no RFC forward to the backend system as the system alias URL parameter is missing. This test comes in the next step.
C3.3 Test InA Service using HTTP/HTTPS settings of system
call transaction SMICM. In Menu select Goto > Services. Note down Host and Port of current system.
Using host and port from protocol HTTPS call the InA Service "GetServerInfo" from your browser or call transaction /IWFND/GW_CLIENT (preferred since error log can be viewed)
https://<hostname>:<port>/sap/bw/ina/GetServerInfo[?sap-client=<client>&sap-language="<lang>"]
You should see a response. The tag ServerInfo must contain the frontend system id and client or when default system alias for BW has been configured the backend system id and client.
Be aware that there is no RFC forward to the backend system as the system alias URL parameter is missing. This test comes in the next step.
C3.4 Test InA Service using System Alias
To verify the forwarding via RFC to the backend server use the system alias configured in the steps before and fire this URL using transaction IWFND/GW_CLIENT:
https://<frontend-host>:<port>/sap/bw/ina/GetServerInfo;o=<system-alias>?sap-client=<client>
This HTTP response should now come from the frontend server and thus only contains the SESSIONID cookie of the frontend server. See trouble shooting chapter for more details.
The response body, the JSON must contain the backend system id and client.
C3.5 Test InA Service using Host and Port of your Fiori Launchpad
Should your Host and Port differ for some reason from the one used in C3.3 (e.g. WebDispatcher usage) then please verify this host and port in the same manner as above.
<TODO screenshot>
Should you also need to verify the system alias then please verify this too
<TODO screenshot>
Trouble Shooting
SessionID cookie identifying server/client
Press F12 in Chrome and check the network requests and response for cookies. You must only see the cookie of your frontend system otherwise the web dispatcher forwards the cookies to some other server / client.
Alternatively you can use the Fiddler HTTP sniffer. Be aware that the cookie need not be in the request if this was the first request. Then you will find it in the response under set-cookie.
The cookie identiying the answering server looks like this where XYZ is the system ID of the answering server and 123 is the client.
SAP_SESSIONID_XYZ_123
Could not instantiate data source "DS_1" for Query <Query> / Query <Query> is unknown
Perform all test steps in the configuration docu above.
Additionally check if Query exists on Backend System
Call transaction RSRT on your backend system for Query <Query> and execute. Ensure the Query is displayed by the BW Query Test Tool.
If the Query exists and error still occurs:
Launch the App in the Browser but open the Debug Tools of the Browser first (e.g. press F12 in Chrome Browser before launching the App URL with ENTER).
Note down the Error reported in the console and also have a look under "Network" at the responses of the requests
- GetServerInfo
was it successful or was the service refused?
is the System and client mentioned in the response the correct Backend System? E.g. launch transaction RSRT in this system with the Query mentioned in the URL (e.g. XQUERY). - GetResponse
was is successful or was the service refused?
was an error reported? Did it say that system alias is missing? If so then this means the Application requires the configuration of a system alias which has not yet been configured in the system. ==> Run through all tests in this document again and make sure system alias is configured.
400 CX_BICS_INA_RFC_ERROR - System alias <systemAlias> does not exist
{"Messages":[{"Type":2,"MessageClass":"/IWFND/CM_COS","Number":2,"Text":"System alias '' does not exist","ExceptionClass":"CX_BICS_INA_RFC_ERROR","OlapMessageClass":0},{"Type":2,"MessageClass":"SY","Number":530,"Text":"An exception was raised.","ExceptionClass":"/IWFND/CX_COF","OlapMessageClass":0},{"Type":2,"MessageClass":"/IWFND/CM_COS","Number":2,"Text":"System alias 'S4PRC' does not exist....
Run through all tests in the frontend configuration section.
S. "Could not instantiate data source "DS_1" for Query <Query>" paragraph
Query <Query> is unknown
S. "Could not instantiate data source "DS_1" for Query <Query>" paragraph
InfoObject name is initial.
In this case please follow instructions from BW InA Note 2541557