深入创建集成数据结构
当创建微应用程序时,你可能会发现需要访问目标记录系统中的表,这些表与父表之间有两个级别以上的分隔。由于目前在HTTP集成中发现的限制,围绕这一问题的解决方案是可能的。
本文提供了关于如何在出现此用例时访问目标Record系统中的表的信息。这个解决方案不是直接的,但是如果您遵循下面的描述,您可以创建更深入的数据结构。
用例
您希望构建一个微应用程序,允许用户在ServiceNow上批准请求。要使用这个微应用程序,用户必须能够:
- 接收并打开通知
- 接收一个页面,其中包含要审批的项目列表
- 查看每个项目的详细信息
- 查看是谁发送了请求
- 通过这些请求
为每个步骤构建操作或页面所需的详细信息存储在通过端点检索的表中。但是,包含审批者数据的表(包含包含项目列表的数据的表)距离另一个数据位置不止两个表。
解决方案的先决条件
要创建此解决方案,您需要结合使用子API调用链接和表合并配置集成.
先决条件:
- 你已经定义了你的端到端用例,了解什么必须在你的微应用中运行,什么信息你的终端用户查看和操作。
- 您已经创建了从目标System of Record返回所需表数据的端点。
注意:
初始设置后无法编辑已配置的表和主键。
- 你已经熟悉了添加额外的API调用而且合并表HTTP集成中的特性。
查看并构建数据结构
当构建你的微应用程序时,microapps平台支持的传统模型是用于仅隔一步的表之间(N+1模型)。
您可以通过检查在HTTP集成期间设置的集成配置来看到这一点。例如,你可以看到票有一步之遥吗标签,但两者都没有直接连接到comments_w_users.
一些关系是在端点配置期间自动创建的,您可以在集成的表引用中看到它们。但是,对于这个特定的用例,您必须创建一些手动定义来创建表之间的关系。
数据结构合并策略
在此场景中,当设计构建微应用程序的数据结构时,请考虑以下要点:
- 根据构建微应用时必须实现的数据结构选择父API调用。考虑如何对数据集和只返回更新后的数据结构的API使用增量同步。这个API必须设置为父API。
- 在可能的情况下,只配置一对多而不是多对一。多对一配置会导致重复的API调用,并会影响数据同步效率。
- 考虑您需要的通知的来源,以及如何配置它,以便在配置表合并和数据可以复制的情况下,用户将只收到一个通知。
- 父API必须始终是最不稳定的对象。
使用下面的合并表具体案例处理方法:
- 一对一的——使用合并的细节.这将导致数据库中只存储一条记录,其中包含来自父api和子api的所有属性。当属性同时出现在父API和子API调用中时,将使用子值。
- 一对多——使用合并的子表.所有父属性存储在每个子记录中。
- 多对一-通常多对一不是Child API调用的场景。您必须考虑最合适的方法,是使用表合并还是手动设置实体关系(不应用合并)。如果没有应用合并,则只存储第一个子节点,由于重复的主键检测,其他子节点将被忽略。
定义手动关系
若要手动定义关系,两个表中必须有一个公共列用于构建关系。您可以在数据集成的表和关系部分检查这一点。如果两个分开的表有一个相同的列,您可以手动创建它们之间的关系。如果没有公共列,则必须在下面的过程中显示的示例中创建关系。
先进的用例
如果不能使用公共列关系创建n+1以外的数据结构,可以使用API子调用和表合并组合创建扁平化的数据结构。一般的“高级用例”遵循以下基本原则:
- 设置您的集成。
- 编辑表格结构。
- 创建从主表到要合并到的表的API调用链。
- 通过自顶向下的方法合并表(例如,从父到子)。
- 当创建大表时,返回到父表并为所有表实体设置ignore。
例如,用需求列表>项目列表> >审批人项目细节
,微应用程序必须能够为审批者显示请求和详细信息,但由于目前只有n+1关系的限制,不能。您可以使用表合并特性来解决这个问题。
在构建数据端点时,从父数据端点传播表结构(需求列表
)到子端点(审批人
)。
然后可以设置为使用表合并策略合并从父数据端点到子API的所有内容。结果是父表中的所有内容都显示在子API的数据结构中(项目列表
).
以这种方式配置会导致在一个大型数据库表中包含三个级别的数据。这个新表可用于根据开始构建微应用程序时定义的用例构建页面。此方法可用于所需的任意级别。
API子调用和表合并的例子
下面的示例演示了创建表结构以访问n+1关系以外的数据的一般工作流程。每个单独的使用都必须基于你想要为你的微应用构建的单独的用例。确保你熟悉你的目标记录集成系统,并且当你使用这种方法时,你对你的结构的结果有一个很好的理解。
创建API调用链
- 导航到数据加载您的整合页面:
- 根据需要,从根端点添加尽可能多的子API调用到目标子端点:
完成后,您可以在主data Loading页面上查看数据结构。
合并父API调用和子API调用
现在,按顺序合并根/父表和子端点,直到到达目标表:
- 选择编辑从省略号菜单中获取。
- 选择编辑根集成的子端点的省略号菜单。
- 导航到底部编辑数据端点页面并选择编辑选择配置表合并:
对序列中的每个子表重复这个过程,直到到达目标表,从而可以构建微应用程序。
忽略重复的API调用
当你完成了合并“链”返回到根端点。遵循以下步骤:
- 选择编辑.
- 将所有表设置为忽略了状态:
这样就可以避免将表两次加载到缓存中,从而提高性能。你现在可以使用你的链接/合并表来构建你的微应用。
重要的注意事项
在使用此方法构建数据时,请始终考虑以下几点:
- 所有父API和子API调用都有自己的数据结构。
- 这些结构是不同的数据集。
- 如果数据结构被合并(从父数据结构合并到子数据结构),那么所有属性都会显示在子数据结构中。
- 如果保留完整的链,数据会存储“两次”——确保父调用中的数据结构被完全删除,因为每个属性都出现在子数据结构中。
- 不要让父API调用的数据结构保持原样——尽可能地删除它。