数据推送
1. 功能简介
当表单数据的发生变更时,数据推送可将变更后的数据推送至您的服务器。
2. 操作步骤
2.1 设置入口
2.2 配置方法
数据推送的配置内容如下:
1)目标服务器:可以选择自定义服务器推送,也可以选择 Finereport 服务器进行推送:
- 与 Finereport 对接选择 Finereport 服务器:FineReport 报表对接简道云插件;
- 与 FineBI 对接选择 Finereport 服务器:FineBI 报表对接简道云插件;
- 与九数云对接选择自定义服务器:同步数据源【7. 接受简道云实时推送】。
2)服务器地址:数据会以 HTTP POST 请求的形式,推送至目标服务器地址。
3)服务器连接测试:填写好服务器地址后,可以对服务器进行连接测试。当我们在进行服务器连接测试的时候,如果推送失败,也可以看到推送失败的详情。
4)Secret:点击生成 Secret 将自动生成 Secret 到文本框内,无需手动填写。
5)推送事件:当发生所选择的事件时,数据才会被推送,支持的推送事件如下:
推送事件 | 事件描述 | 备注 |
有新数据提交时推送 | 提交表单数据时触发 | 必选 |
有数据被修改时推送 | 修改表单数据的内容时触发,包括流程数据流转、修改表单数据等 | 可选,批量修改时不支持 |
有数据被删除时推送 | 删除表单数据时触发 | 可选,批量删除时不支持 |
有数据被恢复时推送 | 恢复表单数据时触发 | 可选,批量恢复时不支持 |
表单结构有变化时推送 | 修改表单结构配置时触发 | 可选 |
3. 设置字段别名
Webhook 数据推送中的字段名,和通过 API 查询接口请求返回给用户的字段名均为「widget+字段 ID」的样式,没有辨识性。通过字段别名的设置,可以使字段名称在数据推送中更具有辨识度。
数据推送、发送 API 请求和返回响应数据时,可使用字段别名来替换字段 ID。
注:字段别名仅允许使用「小写字母」、「数字」和「下划线」组合,且必须以「小写字母」开头。
4. 字段对照表及JSON样例
字段对照表及 JSON 样例包含了当前表单中的全部字段,以及每个字段对应的 ID/别名、字段类型、说明。写代码时可参照「字段对照表及 JSON 样例」进行书写。
5. 推送内容
5.1 推送事件列表
推送事件 | 描述 | 备注 |
有新数据提交时推送 | 通过表单提交一条数据时触发 | 必选;不支持批量导入数据 |
有数据被修改时推送 | 修改一条数据的内容时触发,包括流程数据流转、普通表单修改数据、管理员修改数据等 | 可选;不支持批量修改 |
有数据被删除时推送 | 删除一条数据时触发 | 可选;不支持批量删除 |
有数据被恢复时推送 | 恢复一条数据时触发 | 可选;不支持批量恢复 |
数据结构定义如下:
参数 | 说明 |
op | 推送事件;包括data_create(数据提交)、data_update(数据修改)、data_remove(数据删除)、data_recover(数据恢复) |
opTime | 推送事件触发时间戳,精确到毫秒 |
data | 具体数据内容 |
5.1.1 新数据提交 / 数据修改 / 数据恢复
可根据数据推送配置界面的「字段对照表及 JSON 样例」参考当前表单推送数据的格式及内容。
1)简道云表单字段类型与数据类型对照表如下:
字段类型 | 数据类型 | 备注 |
单行文本 | string | —— |
多行文本 | string | |
流水号 | string | 表单新增流水号控件时,历史数据无流水号 |
数字 | number | —— |
日期时间 | string | |
单选按钮组 | string | |
复选框组 | array | |
下拉框 | string | |
下拉复选框 | array | |
分割线 | 不推送 | |
地址 | json | 格式为 { “province”: “江苏省”, “city”: “无锡市”, “district”: “梁溪区”, “detail”: “清扬路 138 号茂业天地”} 如果选择了部分属性,则未选择的属性以空字符串补齐。如未选择区和地址详情时,格式为{ “province”: “江苏省”, “city”: “无锡市”, “district”: “”, “detail”: “”} |
定位 | json | 格式为{“province”: “江苏省”,“city”: “无锡市”,“district”: “梁溪区”,“detail”: “清扬路 138 号茂业天地”,“lnglatXY”: [120.31237,31.49099]} 省、市、区、地址详情属性中如果只输入了部分属性,则其中未输入属性以空字符串补齐 (API 接口推送数据时可以仅输入部分属性) |
图片 | array | 推送数据中包含的url为图片链接,15 天内有效 |
附件 | array | 推送数据中包含的url为附件链接,15 天内有效 |
手写签名 | json | 推送数据中包含的url为手写签名的图片链接,15 天内有效 |
子表单 | array | —— |
查询 | 不推送 | |
关联数据 | json | —— |
聚合计算 | number | |
成员单选 | json | status 对应的逻辑: -1 离职 0 未加入 1 已加入 |
成员多选 | array | status 对应的逻辑: -1 离职 0 未加入 1 已加入 |
部门单选 | json | —— |
部门多选 | array | |
手机 | json | 格式为 {“phone”:“15852540044”,“verified”:false} |
流程状态(仅流程表单) | number | 2 表示流程手动结束 1 表示流程已完成 0 表示流程进行中 |
表单名称 | string | —— |
数据id | string | |
提交人 | json | status 对应的逻辑: -1 离职 0 未加入 1 已加入 |
修改人 | json | status 对应的逻辑: -1 离职 0 未加入 1 已加入 |
删除人 | json | status 对应的逻辑: -1 离职 0 未加入 1 已加入 |
提交时间 | string | 使用utc时间戳,请根据所在时区处理 |
修改时间 | string | 使用utc时间戳,请根据所在时区处理 |
删除时间 | string | 使用utc时间戳,请根据所在时区处理 |
微信OpenID | string | —— |
用户昵称 | string | |
用户性别 | string |
2)CRM 中的特殊字段的数据类型如下:
字段类型 | 数据类型 |
客户名称 | string |
线索池 | json |
所属公海 | json |
销售阶段 | json |
联系人 | string |
跟进主体 | json |
跟进商机 | json |
关于空值的说明:字符串类型数据为空时可能为 null 或空字符串, json 格式数据为空时可能为 null 或空 json。在解析数据时,将 null、空字符串、空 json 均作为控件空值处理。
5.1.2 数据删除
字段 | 字段类型 | 说明 |
formName | String | 表单名称 |
_id | String | 删除数据的ID |
deleter | json | 删除操作执行人 |
deleteTime | String | 删除时间 |
5.2 推送失败
当数据推送失败时,管理员会收到通知。管理员可调整配置后,在「数据推送」处点击「重新推送」,重新推送失败的数据。
注:
1)数据推送失败时,管理员可以选择重新推送失败缓存里的数据,也可以放弃缓存。失败数据仅可保留 7 天,超时后无法再进行重新推送。
2)当失败记录达到 100 条,会关闭数据推送功能,同时管理员会收到一条数据推送关闭的消息提醒,需要在数据推送设置中重新启动数据推送,数据推送才会继续推送。
6. 推送日志
在数据推送页面,点击推送事件后的「推送日志」,即可查看推送失败/成功的记录,还可以在记录中查看推送详情:
- 推送日志里仅保留近六个月的推送记录;
- 支持根据推送失败、推送成功、全部日志去筛选查询推送记录;
- 推送日志里记录了每条推送记录的时间、地址、结果,当推送失败了还可以查看推送详情:
7. 代码示例
我们为开发者提供了一些不同语言版本的代码样例,仅供参考: