19.2. 在轮询从 OData 服务返回数据时触发集成
要在从 OData 服务获取数据时触发集成的执行,请在其启动连接时添加 OData 连接到简单的集成。当集成运行时,OData 连接会按您指定的间隔轮询服务。当连接发现满足连接配置的数据时,连接会将数据传递给集成中的下一步。
前提条件
您创建了 OData 连接。
流程
- 在左侧的 Fuse Online 面板中,单击 Integrations。
- 点 Create Integration。
- 在 Choose a connection 页面中,点您要用来开始集成的 OData 连接。
- 在 Choose a action 页面中,选择 Read 操作。
配置 Read 操作:
- 在 Resource Collection 字段中,选择要查询的 OData 资源的名称。Fuse Online 从 OData 服务获取数据,以提供可用资源集合的列表。
-
在 实体密钥 Predicate 字段中,若要获取特定实体,通过指定密钥 predicate 来识别您想要的实体。例如,指定诸如
UserName='Bob'或Categories(1)的内容。要获得多个实体,请将此字段留空。 在 Query Options 字段中输入您要应用到资源的查询。使用 OData 语法。例如,
$filter=startswith(name, 'N')为资源中有一个名称字段以N开头。您可以指定 实体键假定和查询 选项 。如果您这样做,OData 服务会获取指定的实体,并将查询应用到该实体。例如,假设您将 Entity Key Predicate 设置为
UserName='russellwhyte'/Emails,并将 Query Options 设置为$filter=contains($it,'example')。连接会创建一个请求,请求类似如下:https://services.odata.org/TripPinRESTierService/People(UserName='russellwhyte')/Emails?$filter=contains($it, 'example')
https://services.odata.org/TripPinRESTierService/People(UserName='russellwhyte')/Emails?$filter=contains($it, 'example')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该服务会返回包含域
示例的所有电子邮件地址。- 选择 Filter Old Results 复选框,以只获取特定消息一次。
如果您希望连接返回单个消息而不是消息集合,请选择 Split Results 复选框。
Fuse Online 还提供了离散的分割和聚合步骤,您可将其添加到一个流中。如果要在一个或多个步骤中处理各个消息,然后将消息聚合到一个集合中,请不要选择 Split Results 复选框。相反,复选框留空,然后在此连接后向流添加一个拆分步骤。如果您希望流程中的聚合步骤,则需要分割步骤。
- 在 Interval Before Poling Starts 字段中,接受默认值 1 秒,或者输入在连接开始轮询 OData 服务前希望放弃的时长。
- 在 Delay 字段中,接受默认值 30 秒,或者输入您要连接轮询 OData 服务的时间间隔。
在 Backoff Idle Threshold 字段中,接受默认值 1 或输入一个整数,表示可以返回任何数据的连续轮询数。轮询次数后,连接会增加后续轮询之间的间隔。连接通过 Backoff Multiplier 值乘以 Delay 值来确定轮询间隔的新长度。
例如,假设轮询间隔( Delay 值)是默认值 30 秒,则 Backoff Idle Threshold 被设置为 5,Backoff Multiplier 被设置为 12。5 连续轮询返回任何数据后,连接会在重新轮询前等待 360 秒(30 x 12)。连接会每 360 秒轮询一次,直到轮询返回数据。轮询返回数据后,连接每 30 秒恢复一次轮询。
在 Backoff Multiplier 字段中,接受默认值 1 或输入整数,如果达到 Backoff Idle Threshold 的值,则代表增加轮询间隔的倍数。
如果您接受 Backoff Multiplier 的默认 1,那么无论连续的轮询返回任何结果,连接会以指定间隔继续轮询。
为 Backoff Idle Threshold 和 Backoff Multiplier 指定的值有助于减少 CPU 开销,因为连接可以在静默期间自动轮询频率。
- 点击 Next。
结果
现在,集成具有启动连接,Fuse Online 正在提示您选择完成连接。
在执行过程中,返回的连接将取决于您在 实体键预先和查询 选项字段中指定 的内容。OData 连接可以返回:
实体或实体属性集合
例如,这可能是资源中的所有个人实体,也可能是所有 Person 实体的所有 期限 属性。这个连接会返回一条消息中的集合。Fuse Online 对集合一次执行一次流程中的每个步骤。但是,当您配置 Read 操作时,如果您选择 Split Results,则连接会在其自己的消息中返回每个实体或每个属性。Fuse Online 在每个消息执行一次每个步骤。
实体或实体属性
例如,这可能是其 UserName 属性为 Bob 的个人实体,也可能是其 UserName 为 Bob 的 Person 实体的 Age 属性。这个连接会返回流中向下一步传递的消息中的实体或实体属性。
后续步骤
添加集成完成连接以及您要包含在集成中的任何其他连接。当集成包含需要的所有连接时,如果 OData 连接返回集合,请考虑是否需要在 OData 连接后添加分割步骤。集成通常需要将 OData 连接返回的数据映射到流中后续连接可以使用的字段。有时,您可以映射集合,但更经常需要分割集合来映射到目标字段。
在 OData 连接后,在流中添加数据映射步骤。流中的具体位置取决于您希望流执行的操作。例如,在 OData 连接后,可能会添加一个基本过滤器步骤,然后添加一个数据映射程序步骤。