部署在云上的Fiori launchpad,其tile信息是从哪里取出来的

时间:2022-06-22
本文章向大家介绍部署在云上的Fiori launchpad,其tile信息是从哪里取出来的,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.blog.csdn.net/article/details/85019456

这里的云指FaaS,Fiori-as-a-Service

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

我很好奇这些tile的数据源是什么,于是研究了一下。

Here below is my research result.

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

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

{
            "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.

The call will delegate to FIORI_DAO:

FIORI_DAO is a subclass of WORKSPACE_DAO:

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

Finally the HANA procedure GET_APPSITE will be called:

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