深入创建集成数据结构

创建 microapp 时,您可能会发现要求访问目标记系统中与父表之间由两个以上级别隔开的表。由于目前在 HTTP 集成中发现的限制,因此可以找到一个解决方案。

本文提供了有关如何在出现此使用案例时访问目标记录系统中的表的信息。此解决方案并不简单,但如果您按照下面的说明操作,则可以创建更深层次的数据结构。

用例

您希望构建允许用户在 ServiceNow 上批准请求的微应用。要使用此微应用,用户必须能够:

  • 接收并打开通知
  • 接收包含要批准的项目列表的页面
  • 查看每个项目的详细信息
  • 查看发送请求的人
  • 批准这些请求

为每个步骤构建操作或页面所需的详细信息存储在通过端点检索的表中。但是,包含批准者数据的表(包含项目列表的数据的表)与另一个数据位置之间的距离大于两个表。

解决方案先决条件

要创建此解决方法,您需要使用子 API 调用链接和表合并的组合,如配置集成中所述。

必备条件:

  • 您已经定义了端到端使用案例,了解必须在微应用中运行哪些内容以及您的最终用户查看和操作的信息。
  • 您已创建端点以从目标记录系统返回所需的表数据。

    注意! 在初始设置后,无法编辑已配置的表和主键。

  • 您已熟悉 HTTP 集成中的 添加其他 API 调用合并表 功能。

查看和构建数据结构

在构建微应用时,Microapp 平台支持的传统模型适用于只有一步之遥的表之间(N+1 型号)。

您可以通过检查 HTTP 集成期间设置的集成配置来查看这一点。例如,您可以看到票证距离标签有一步之遥,但两者都没有直接连接到 comments_w_users

N+2

某些关系是在端点配置期间自动创建的,您可以在集成的表引用中看到这些关系。但是,对于此特定用例,您必须创建一些手动定义以创建表之间的关系。

数据结构合并策略

在这种情况下设计数据结构以构建微应用时,请考虑以下重要事项:

  • 根据构建微应用时必须实现的数据结构选择父 API 调用。考虑如何对数据集和仅返回更新数据结构的 API 使用增量同步。必须将此 API 设置为父级。
  • 在可能的情况下,只配置一对多而不是多对一。多对一配置会导致重复性 API 调用,并会影响数据同步效率。
  • 请考虑所需通知的来源及其配置方式,以便在配置表合并且可以复制数据的情况下,用户只会收到一个通知。
  • 父 API 必须始终是最易失性的对象。

对于特定情况,请使用以下合并表方法:

  • 一对一 -使用合并作为详细信息。这将导致只存储在数据库中的一条记录,其中包含来自父 API 和子 API 的所有属性。当属性存在于父 API 调用和子 API 调用中时,将使用子值。
  • 一对多 -使用合并作为子列表。所有父属性都与每个子记录一起存储。
  • 多对一 -通常多对一不是子 API 调用的场景。您必须考虑最合适的方法,无论是使用表合并还是手动设置实体关系(不应用合并)。如果未应用合并,则仅存储第一个子项,其他子项将由于重复的主键检测而被忽略。

定义人工关系

要手动定义关系,两个表中必须有一个公用列来构建关系。您可以在数据集成的表和关系部分中检查这一点。如果两个分隔的表具有共同的列,则可以手动创建它们之间的关系。如果没有公用列,则必须在以下过程中显示的示例中创建关系。

高级使用案例

如果您无法使用公共列关系创建 n+1 以外的数据结构,则可以使用 API 子调用和表合并的组合创建扁平数据结构。一般的“高级使用案例”遵循以下基本原则:

  1. 设置集成。
  2. 编辑表结构。
  3. 从主表创建 API 调用链到要合并到的表。
  4. 通过自上而下的方法(例如,父对子)中的表合并来合并表。
  5. 创建大表时,返回到父表并为所有表实体设置“忽略”。

例如,使用 request-list>item list>item details>approver 构建微应用,微应用必须能够显示批准者的请求和详细信息-但由于当前仅限 n+1 关系的限制而无法显示。您可以使用表合并功能来修复此问题。

构建数据端点时,将表结构从父数据端点 (request-list) 传播到项目列表中的子端点 (approver)。

然后,您可以设置为使用表合并策略将父数据端点到此子 API 的所有内容合并。结果是父表中的所有内容都显示在子 API (item-list) 的数据结构中。

通过这种方式进行配置会导致三个级别的数据包含在一个大型数据库表中。此新表可用于根据开始构建微应用时定义的用例构建页面。此方法可用于需要多个级别。

API 子调用和表合并示例

以下示例说明了创建表结构以达到 n+1 关系以外的数据的一般工作流程。每个单独的使用必须基于您想要为微应用构建的单独使用案例。确保您熟悉您的目标集成系统的记录,并且在使用此方法时对结构的结果有很好的了解。

创建 API 调用链

  1. 导航至数据加载页以进行集成: 数据加载
  2. 根据需要将根端点中的任意数量的子 API 调用添加到目标子端点: 添加子 API 完成后,您可以在主数据加载页面上查看数据结构。

将父级合并到子级 API 调用

现在,按顺序将根/父表合并到子端点,直到达目标表:

  1. 从省略号菜单中选择编辑以进行集成。
  2. 从根集成的子端点的省略号菜单中选择编辑
  3. 导航到“编辑数据端点”页底部,然后选择“编辑”以选择配置表合并: 合并编辑 根据需要重复此过程顺序中的每个子表,直到您到达将允许您构建微应用的目标表。

忽略重复的 API 调用

当您完成合并“链”返回到根端点。请按照以下步骤进行操作:

  1. 选择编辑
  2. 将所有表设置为已忽略状态: 忽略数据 这样会阻止表两次加载到缓存中,从而提高性能。您现在可以使用链接/合并表来构建微应用。

重要注意事项

使用此方法构建数据时,请务必考虑以下事项:

  • 所有父 API 调用和子 API 调用都有自己的数据结构。
  • 这些结构是不同的数据集。
  • 如果合并了数据结构(从父级到子级),则所有属性都会显示在子级数据结构中。
  • 如果保留完整链,数据存储“两次”-确保父调用中的数据结构被完全删除,因为每个属性都出现在子数据结构中。
  • 不要将父 API 调用保持原样的数据结构-尽可能删除它。

深入创建集成数据结构