SAP Fiori Launchpad Tile 点击后跳转的调试技巧

在 SAP Fiori launchpad 里点击某个 tile 之后,后台会计算出跳转的目标 url 返回给前台。
下图中一个个白色的方框就成为 tile。每个 tile 点击之后,会打开一个对应的 Fiori 应用。

本文介绍如何在后台调试这个跳转目标的计算逻辑。
首先我们可以直接在浏览器里点击 tile 或者用 Postman 手动触发这个跳转目标的 url 解析请求:

在后台使用事务码 SICF, 在该 icf node 的 handler class 的 HANDLE_REQUEST 里设置断点:

在 Postman 里触发请求,断点触发,在第 61 行里从 Fiori 的前台系统执行进入 Fiori 后台系统的执行。

关于 Fiori 前后台系统的区分,参考我的微信公众号文章SAP Fiori应用的三种部署方式
后台执行逻辑: 首先拿元数据 metadata

再取实际数据。下图是数据请求正文:


得到 action 名称:

然后根据 action 名称调用对应的处理逻辑:

首先从 cache 里读取:


cache 没命中:

于是去数据库取:


得到结果。下图解析的结果 SAPUI5.Component=后面的字符串 cus.crm.mycalendar 就是 tile 点击之后待打开的 Fiori 应用。字段 URL 的值就是该应用对应的 BSP 应用的存储位置。

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

版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/7dab9541b59afb11f002c6d25】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论