how the Fiori tile information is retrieved from HANA HCP
Sent: Tuesday, March 31, 2015 7:02 PM
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
![](https://user-images.githubusercontent.com/5669954/32760189-1fad52f6-c928-11e7-896c-6daa082978cc.png)
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:
![](https://user-images.githubusercontent.com/5669954/32760190-1fe1ee44-c928-11e7-9ddd-1f7ed60e6bf3.png)
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.
![](https://user-images.githubusercontent.com/5669954/32760191-20161de0-c928-11e7-9311-a4f63a8b3542.png)
![](https://user-images.githubusercontent.com/5669954/32760192-204b50fa-c928-11e7-9020-21f2a6bf78aa.png)
-
The call will delegate to FIORI_DAO:
![](https://user-images.githubusercontent.com/5669954/32760193-207f12aa-c928-11e7-9b06-3caa18bfe3da.png)
![](https://user-images.githubusercontent.com/5669954/32760194-20b7c7d0-c928-11e7-92d5-56e235ff9de3.png)
-
FIORI_DAO is a subclass of WORKSPACE_DAO:
![](https://user-images.githubusercontent.com/5669954/32760195-20efd58a-c928-11e7-907c-cf9d034058f8.png)
And workspace DAO just issue the query to HANA database via call getResultSet():
![](https://user-images.githubusercontent.com/5669954/32760196-212820ca-c928-11e7-9a51-813a4a8dc53a.png)
![](https://user-images.githubusercontent.com/5669954/32760197-215ea866-c928-11e7-933f-ac9728d0e0d2.png)
Inside the procedure we can know the tile information in HANA HCP is retrieved based on the union of the two HANA tables below:
![](https://user-images.githubusercontent.com/5669954/32760198-2192e752-c928-11e7-9e77-3ab078dff705.png)
![](https://user-images.githubusercontent.com/5669954/32760199-21c798c6-c928-11e7-91fd-24186d5e97e0.png)
如果想要debug,需要用HCP 专门的workbench打开server端的实现,把debugger attach到client端的session上,然后trigger断点。这个debugger功能很弱,比如看不到callstack。一般情况下如果遇到HCP相关的incident,一旦能排除不是我们application的问题,我一般都直接FW到HCP的component让他们去看。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- 【踩坑实录】-java.sql.SQLException: The MySQL server is running with the LOCK_WRITE_GROWTH option so it ca
- 解决The HTTP request is not acceptable for the requested resource
- ORA-01378: The logical block size (string) of file string is not compatible with the disk sector size (media sector size is string and host sector size is string) ORACLE 报错 故障修复 远程处理
- ORA-22900: the SELECT list item of THE subquery is not a collection type ORACLE 报错 故障修复 远程处理
- ORA-29820: the statistics type is not present ORACLE 报错 故障修复 远程处理
- ORA-44730: XML Index string is not usable at the moment ORACLE 报错 故障修复 远程处理
- ORA-46014: The value of the “aclFile” element is too long. ORACLE 报错 故障修复 远程处理
- ORA-48168: the ADR sub-system is not initialized ORACLE 报错 故障修复 远程处理
- ORA-48463: The value buffer reached the maximum length [string] ORACLE 报错 故障修复 远程处理
- ORA-53253: The metadata for the new DICOM object is invalid. ORACLE 报错 故障修复 远程处理
- ORA-53254: The SOP INSTANCE UID for the new DICOM object is invalid. ORACLE 报错 故障修复 远程处理
- ORA-01209: data file is from before the last RESETLOGS ORACLE 报错 故障修复 远程处理
- ORA-01378: The logical block size (string) of file string is not compatible with the disk sector size (media sector size is string and host sector size is string) ORACLE 报错 故障修复 远程处理
- ORA-13615: The task or object string is greater than the maximum allowable length of 30 characters. ORACLE 报错 故障修复 远程处理
- ORA-13906: The tablespace is not of the right type. ORACLE 报错 故障修复 远程处理
- ORA-16744: the DG_CONFIG list of LOG_ARCHIVE_CONFIG parameter is full ORACLE 报错 故障修复 远程处理
- Exploring the Key Characteristics of Redis: A Comprehensive Overview(redis特点)