SAP Cloud Platform上Fiori launchpad tile的读取原理

简介: 下图是Fiori on HANA HCP的architecture:我们的Fiori UI不再是存在netweaver的BSP application里,而是存在HCP的cloud repository里了。Fiori Launchpad及相关配置,按照wiki的介绍,现在tile configuration的内容最终是存放在HANA native的table里,通过XSE暴露的service给client端调用。

image.png

image.pngimage.png

{
"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"
}
]
},

image.png

image.png

image.png

image.png

CREATE PROCEDURE UIS.GET_APPSITE(IN PACKAGE_ID NVARCHAR(256), IN OBJECT_NAME NVARCHAR(256), OUT APPSITE_DATA GET_APPSITE_TABLE_TYPE)
LANGUAGE SQLSCRIPT
SQL SECURITY DEFINER
DEFAULT SCHEMA UIS
READS SQL DATA AS
internal_site_id integer;
ws_count integer;
session_usr varchar(256);
locale nvarchar(256);
BEGIN
internal_site_id := -1;
SELECT count(*) into ws_count FROM "_SYS_RT"."_UIS_APPSITES" WHERE PACKAGE_ID LIKE :package_id AND OBJECT_NAME LIKE :object_name;
IF :ws_count > 0 THEN
SELECT INTERNAL_SITE_ID INTO internal_site_id FROM "_SYS_RT"."_UIS_APPSITES" WHERE PACKAGE_ID LIKE :package_id AND OBJECT_NAME LIKE :object_name;
END IF;
select session_context('LOCALE') INTO locale from SYS.dummy;
session_usr := SESSION_USER;
    APPSITE_DATA =
        SELECT
            site_name,
            site_layout,
            pg_layout_id,
            pg_id,
            pg_name,
            pg_layout,
            wg_layout_id,
            wg_id,
            wg_name,
            src,
            icon,
            type as wg_type,
            key,
            value,
            parent_page_id,
            'site' as record_type
        FROM "UIS"."sap.hana.uis.db::UIS_APPSITES_DATA_VIEW"
        WHERE INTERNAL_SITE_ID = :internal_site_id
        UNION ALL
        select
            NULL as site_name,
            NULL as site_layout,
            NULL as pg_layout_id,
            NULL as pg_id,
            NULL as pg_name,
            NULL as pg_layout,
            NULL as wg_layout_id,
            wg_id,
            NULL as wg_name,
            NULL as src,
            NULL as icon,
            NULL as wg_type,
            key,
            value,
            NULL as parent_page_id,
            'userwidgetprops' as record_type
        FROM "_SYS_RT"."_UIS_USER_WIDGET_PROPERTIES"
        WHERE INTERNAL_SITE_ID like :internal_site_id AND USER_NAME LIKE :session_usr
        UNION ALL
        select
            NULL as site_name,
            NULL as site_layout,
            NULL as pg_layout_id,
            NULL as pg_id,
            NULL as pg_name,
            NULL as pg_layout,
            NULL as wg_layout_id,
            NULL as wg_id,
            NULL as wg_name,
            NULL as src,
            NULL as icon,
            NULL as wg_type,
            text_id as key,
            content as value,
            NULL as parent_page_id,
            'translations' as record_type
            from _SYS_REPO.TEXT_ACCESSOR(:package_id, :object_name, 'xsappsite', :locale);
END;


相关文章
|
2月前
|
数据库 API
启用SAP Fiori之前的一些注意事项
启用SAP Fiori之前的一些注意事项
|
2月前
|
JavaScript 前端开发
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
试读版:如何找出 SAP 标准 Fiori 应用某个按钮点击后执行的 JavaScript 源代码
|
2月前
|
机器学习/深度学习 存储 人工智能
SAP Business Technology Platform 支持的技术栈
SAP Business Technology Platform 支持的技术栈
SAP UI5 Link 控件的使用方法介绍 - 后续学习 Fiori Elements Smart Link 的基础试读版
SAP UI5 Link 控件的使用方法介绍 - 后续学习 Fiori Elements Smart Link 的基础试读版
|
2月前
|
UED
什么是 SAP Fiori 的 Technical Catalog 和 Business Catalog
什么是 SAP Fiori 的 Technical Catalog 和 Business Catalog
|
2月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
2月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
2月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
|
2月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
|
2月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍