We have a Gateway system with our Fiori Launchpad with only ECC as a back-end. In the Dev environment, the gateway has to connect to ECC Dev and QA. (Not at the same time - users would use the launchpad to connect with apps to either Dev or QA).
For UI5 apps, this is no problem. By adding the sap-system parameter to the launchpad URL (for example /sap/bc/ui2/flp?sap-system=ECCQA) any UI5 app that is launched will propagate the system alias to the OData URLs (by putting ;o=ECCQA after the OData service name), so that the data is retrieved from either Dev (default as per our configuration) or QA (by specifying the system alias in the sap-system parameter).
The problem is that the tiles that launch transactions do not work the same. For some reason, the system alias is not propagated. When clicking on a transaction tile in the launchpad, the URL will look something like this:
/sap/bc/ui2/flp?sap-system=ECCQA#cust_local_txcode-mb21
This does not work, however. Strangely enough, it only works when the sap-system parameter is added after the routing hash, like so:
/sap/bc/ui2/flp#cust_local_txcode-mb21?sap-system=ECCQA
Does anyone know why it works this way? Ideally, we would like the sap-system parameter to propagate to override the system alias specified in the target mapping of the tile. Then we could address either Dev or QA simply by changing the URL. Now it seems we have to create a whole separate catalog to distinguish between Dev and QA with the same transaction tiles.