SAP Fiori Elements 应用中 table id 的生成逻辑

id:jerryfiorielement01::sap.suite.ui.generic.template.ListReport.view.ListReport::SEPMRA_C_PD_Product–listReport

SAP Fiori Elements 是 SAP 提供的一种开发框架,允许开发者使用预定义的页面类型(如 List Report,Object Page 等)和配置,而不是编写大量的前端代码来创建 Fiori 应用。

在 Fiori Elements 中,控件的 ID 通常由多部分构成,这些部分由 “::” 分隔。这个 ID 在运行时由框架动态生成,以保证每个控件的 ID 在应用中都是唯一的。

根据我们在 Chrome 开发者工具看到的 ID(“jerryfiorielement01::sap.suite.ui.generic.template.ListReport.view.ListReport::SEPMRA_C_PD_Product–listReport”),可以看出它由三部分组成:

  1. “jerryfiorielement01”:这是应用或组件的 ID,通常这是在应用的 manifest.json 文件中定义的,如下图所示:

  1. “sap.suite.ui.generic.template.ListReport.view.ListReport”:这部分表示的是 SAP Fiori Elements 的模板类型,这里是 ListReport。这个模板在运行时会被实例化,并根据OData 服务和 annotations 自动生成 UI。

  2. “SEPMRA_C_PD_Product–listReport”:这部分通常由你的实体集(这里是 “SEPMRA_C_PD_Product”)和视图类型(这里是 “listReport”)组成。这些信息通常来自 annotations 文件和 manifest.json 文件。

至于如何在 Chrome 开发者工具中设置断点,首先需要知道,由于这些 ID 是在运行时动态生成的,可能无法在源代码中找到具体的生成位置。但是,可以尝试在 SAPUI5 的核心代码或 Fiori Elements 的代码中设置断点,看看是否可以在控件 ID 生成时暂停执行。

具体来说,可以尝试在以下文件和方法中设置断点:

  1. sap.ui.core.Element.js 中的 sap.ui.core.Element.prototype.getId 方法。这个方法用于获取控件的 ID。
  2. sap.ui.core.mvc.Controller.js 中的 sap.ui.core.mvc.Controller.prototype.getView 方法。这个方法用于获取控件所在的视图,可能在生成控件 ID 时被调用。

让我们通过一个例子来具体了解一下这个 ID 的生成逻辑。

假设我们有一个名为 ‘myFioriApp’ 的 Fiori Elements 应用,它基于一个 OData 服务,该服务有一个名为 ‘SalesOrder’ 的 Entity Set。我们想在这个应用中创建一个列表报告视图来显示所有的销售订单。为此,我们需要在我们的应用中添加一个 ListReport 视图。

首先,我们的应用的命名空间会是 ‘myFioriApp’。这是一个全局唯一的标识,我们可以通过它来找到我们的应用。

接下来,我们需要添加一个 ListReport 视图。这个视图的命名空间会是 ‘sap.suite.ui.generic.template.ListReport.view.ListReport’。这个命名空间告诉我们这是一个 ListReport 视图的实例。

然后,我们需要指定这个视图是基于哪个 Entity Set 构建的。在这个例子中,我们的 Entity Set 是 ‘SalesOrder’。所以,我们的视图的 ID 会包含 ‘SalesOrder’ 这个部分。

最后,我们需要指定我们的控件的类型。在这个例子中,我们的控件是一个列表报告控件,所以我们的控件的 ID 会包含 ‘listReport’ 这个部分。

因此,我们的控件的 ID 会是 ‘myFioriApp::sap.suite.ui.generic.template.ListReport.view.ListReport::SalesOrder–listReport’。

猜你喜欢

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