提示:1)场景一:4.2.18.1 之前的工程
2)场景二:同时满足下面两个条件
目前已升级到 4.2.18.1 及之后版本,但升级前,4.2.18.1 之前版本的工程使用数据接收至少创建过 1 个 API
创建数据接收 API 时,服务接收方式选择:配置地址并接收数据
其他场景请参见本文。
1. 概述
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 4.2.18.1 | 创建数据接收 API 时,无需配置数据来源和数据去向,仅是生成一个 API地址 |
1.2 应用场景
用户使用 简道云输入 算子将表单数据落库,为确保数据时效性给定时任务设置了分钟级的执行频率,但由于简道云表单数据并非频繁更新,导致定时任务出现无效执行的情况。
用户希望仅在表单数据发生变更时才触发数据同步,避免无意义的任务执行。
1.3 功能简介
1)数据服务功能中,发布数据接收 API 时,数据接收方式可选择「仅配置地址」,仅完成 API 接口配置,不进行数据写入。

2)实时任务中新增「Webhook输入」算子,接入数据接收发布的「仅配置地址」的 API,当简道云表单数据变化(增删改)后,通过该接口将表单数据进行实时同步,在实时任务中经过数据处理后进行输出。如下图所示:

1.4 前提条件
1)该功能受数据服务(基础)、应用系统(实时)、接口协议(实时)功能点控制,用户可联系技术支持进行试用(技术支持联系方式:前往「服务」,选择「在线支持」、电话「400-811-8890」)。
2)简道云和 FineDataLink 工程需要能互相连通或支持做内网穿透。
3)需要配置一个简道云数据连接
4)需要根据实际情况选择「内存队列」还是「消息队列中间件」。详情请参见:传输队列类型说明
1.5 注意事项
1)删除简道云表单数据时,若同时删除多条不会进行数据推送操作,只有删除单条时才会推送。
2)简道云推送失败后会额外重试 4 次,所以在 FineDataLink 中会显示 5 条调用记录。

3)若目标库为低版本 Oracle(例如 Oracle 11g),由于 Oracle 数据库特性原因,简道云删除数据后,FineDataLink 无法显示准确的删除行数(仅影响执行详情展示,不影响目标库实际结果)。
4)一个仅配置地址的数据接收 API,仅支持在一个实时任务中调用。
2. 示例
2.1 场景模拟
「报名表」表单中包含子表单,现希望仅在表单数据发生变更时,触发数据同步,主表和子表数据分别同步到对应的数据库表中。表单数据如下图所示:

2.2 简道云表单准备
建议为简道云表单设置字段别名,否则接入到 FineDataLink 中时会使用字段原始名,不便于在 FineDataLink 中进行业务处理。详情请参见:设置字段别名
2.3 新建数据接收 API
进入 FDL 工程,点击「数据服务」,新建一个数据接收 API 。如下图所示:

2.4 配置数据接收 API
注:右上角的服务接收方式说明请参见:服务接收方式(必看)

2.4.1 基础属性
| 设置项 | 说明 |
|---|---|
| 请求方式 | 只支持选择POST |
| API路径 | 配置要发布的API路径。 API路径不允许重复。 默认为空,支持指定英文、数字、下划线(_)、连字符(-)、正斜杠(/);不支持以正斜杠(/)开头和结尾 例如以下完整的API请求路径示例: http://192.168.5.175:8089/webroot/service/publish/应用ID/demo 注1:service前的部分为发布API所在的当前 FineDataLink 服务器地址 注2:应用ID是API被绑定应用的ID,详情参见绑定API至应用 |
| 超时时间 | 填写响应超时时间,如果在指定时间后仍没有返回查询结果,则接口返回超时错误 默认10000ms,必填 |
| 绑定应用 | API 若想被调用必须绑定应用;若本文 2.7.1 节设置数据推送步骤中,生成了 Secret,应用认证方式需要选择「简道云推送认证」 1)用户可在创建API时将其添加到某个应用上 点击「添加」按钮,可将 API 绑定到已有应用上;点击「添加」按钮后,可再点击「去创建」按钮新建应用,将该 API 绑定在新建应用上
2)或者创建 API 后,在应用列表Tab下,将 API 绑定在应用上(具体说明请参见:绑定API至应用);绑定应用后,可复制完整访问路径
|
2.4.2 接口请求
注:Query 禁用。
| 设置项 | 说明 |
|---|---|
| 请求 Body 格式 | 只支持 application/json |
| Body 整体绑定 | 默认开启且禁止关闭 |
2.4.3 接口响应

1)展示调用 API 后返回的数据格式(JSON 格式)。
2)反映异常信息按钮:默认勾选且不可关闭,接口异常信息将反映在 HTTP 状态码上。如下图所示:

3)支持用户自动调整返回的数据格式;点击「快捷生成」按钮,下拉框中可选择自动生成、按JSON模板生成,详细说明请参见:JSON生成 文档。
4)点击「测试调用」按钮,调整 Body 值,会触发数据库实际执行操作;测试调用时,会校验传输队列是否配置成功,若未配置,无法使用测试调用功能。
2.4.4 高级配置

数据写入有两个过程:接收到数据后先把数据存入到 Kafka,再把 Kafka 中的数据进行写入。
注:「消息队列中间件」按钮关闭时,不支持该功能。
| 按钮状态 | 说明 |
|---|---|
| 开启 | 调用发布的 API 时,监控数据是否通过该接口入库成功: API 接口将先进行数据缓存,等待数据入库操作完成后,返回入库结果 注:简道云超时时间很短仅有 5 秒,该按钮开启后会等待较长时间,一般情况下建议关闭该按钮 |
| 关闭 | 接收到数据且数据缓存进 Kafka 后进行通知,监控数据是否通过该接口推送成功:
|
2.5 API 详情页
点击「保存」按钮后进入 API 详情页。
该接口在实时任务的「Webhook输入」算子中用到后,接口状态自动更改为上线;实时任务运行失败,接口状态自动更改为未上线。

2.6 绑定 API 至应用
API 若想被调用必须绑定应用。
用户可在本文 2.4 节步骤中给 API 绑定应用,或者 2.5 节结束后,参考 绑定API至应用 给 API 绑定应用。
注:若本文 2.7.1 节设置数据推送步骤中,生成了 Secret,应用认证方式需要选择「简道云推送认证」。
2.7 调用 API
2.7.1 简道云表单配置
1)打开需要下云的简道云表单,点击「扩展功能>数据推送>新建数据推送」,输入已发布的 API 地址后,设置推送事件,点击「保存」按钮即可。如下图所示:
注:数据推送中,推送事件只支持有数据提交时、有数据被修改时、有数据被删除时。

2)点击「字段对照表及JSON样例」,复制下 JSON 样例,便于在实时任务中使用。

2.7.2 配置实时任务
1)新建一个实时任务。
2)实时任务中拖入「Webhook输入」算子,调用 2.4 节配置的 API,样本设置处填写 2.7.1 节复制的 JSON 样例(便于在后续节点中查看效果),如下图所示:

点击「数据预览」,如下图所示:

3)拖入两个「JSON解析」算子,以及两个「DB表输出」算子,对简道云表单的主子表分别解析,进行处理后输出。

4)「JSON解析」算子中解析子表数据,如下图所示:

「JSON解析1」算子中解析主表数据,如下图所示:

5)根据实际情况配置「DB表输出」算子,将主子表数据输出,启动实时任务。
子表目标表:name和cource作为逻辑主键确定数据唯一性。
主表目标表:registration_number作为逻辑主键确定数据唯一性。
2.8 效果查看
1)「报名表」表单中新增数据,如下图所示:

2)子表目标表数据如下图所示:

主表目标表数据如下图所示:

2.9 知识扩展
支持查看 API 的调用详情,比如调用 API 时的请求内容、返回内容,具体说明可参见:显示数据服务API调用详情

