After I log on HCP via my own user, I could see many tiles:

https://fiorilaunchpad-xe84733bd.dispatcher.neo.ondemand.com/sap/hana/uis/clients/ushell-app/shells/fiori/FioriLaunchpad.html

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP

I am very curious how and where this tile information is retrieved from HANA cloud.

Here below is my research result.

The tile information is fetched via restful service observed in network tab:

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP

It is a json stream, use list a small part of it here:


```json

{
            "ID": "70c4b7f1-5579-4517-bc09-e7231f5add96-1426085327112",
            "packageID": "",
            "objectName": "",
            "type": "chips.tiles.applauncherdynamic.DynamicTile",
            "templateProperties": [
                {
                    "key": "navigation_target_url",
                    "value": "#flp-runApp?html5App=cuscrmopportunity&SAPUI5.Component=cus.crm.opportunity&url=/"
                },
                {
                    "key": "formFactor",
                    "value": "{\"desktop\":true,\"tablet\":true,\"phone\":true}"
                },
                {
                    "key": "service_url",
                    "value": "/sap/opu/odata/sap/CRM_OPPORTUNITY/Opportunities/$count"
                },
                {
                    "key": "sap.hana.uis.flp.app.intentSemanticObject",
                    "value": ""
                },
                {
                    "key": "sap.hana.uis.flp.app.intentAction",
                    "value": ""
                },
                {
                    "key": "navigation_component_url",
                    "value": "/"
                },
                {
                    "key": "service_refresh_interval",
                    "value": "300"
                },
                {
                    "key": "navigation_component_name",
                    "value": "cus.crm.opportunity"
                },
                {
                    "key": "allow_unknown_parameters",
                    "value": "true"
                },
                {
                    "key": "tile_size",
                    "value": "1x1"
                },
                {
                    "key": "html5_application_name",
                    "value": "cuscrmopportunity"
                },
                {
                    "key": "sap.hana.uis.flp.app.type",
                    "value": "SAP_UI5_Component"
                },
                {
                    "key": "display_icon_url",
                    "value": "sap-icon://Fiori2/F0012"
                },
                {
                    "key": "display_title_text",
                    "value": "My Opportunities"
                }
            ]
        },

```

The restful service is implemented via consumption_service, whose source code could be found in HANA studio.

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHPSAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHPSAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP


The call will delegate to FIORI_DAO:

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHPSAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP

FIORI_DAO is a subclass of WORKSPACE_DAO:

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP


And workspace DAO just issue the query to HANA database via call getResultSet():

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP


Finally the HANA procedure GET_APPSITE will be called:

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP


Inside the procedure we can know the tile information in HANA HCP is retrieved based on the union of the two HANA tables below:

SAP云平台上的Fiori Launchpad tile数据是如何从后台取出来的-LMLPHP
12-04 13:47
查看更多