天天看點

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

這裡的雲指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
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

我很好奇這些tile的資料源是什麼,于是研究了一下。

Here below is my research result.

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

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

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

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

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

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

The call will delegate to FIORI_DAO:

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的
部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

FIORI_DAO is a subclass of WORKSPACE_DAO:

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

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

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

Finally the HANA procedure GET_APPSITE will be called:

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的

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

部署在雲上的Fiori launchpad,其tile資訊是從哪裡取出來的