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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/i042416/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

clipboard1

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

Here below is my research result.

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

clipboard2

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.
clipboard3

clipboard4

clipboard5

The call will delegate to FIORI_DAO:

clipboard6

clipboard7

FIORI_DAO is a subclass of WORKSPACE_DAO:

clipboard8

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

Finally the HANA procedure GET_APPSITE will be called:
clipboard10

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

clipboard11

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

猜你喜欢

转载自blog.csdn.net/i042416/article/details/85019456