1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.19 | - |
4.1.7.2 | 界面优化 |
4.1.14.1 | 支持设置分组字段,可按照分组字段合并JSON字段 |
1.2 应用场景
当用户需要使用 API 输出实现将 API 数据写入指定接口时,可能需要将数据库或者其他形式的数据生成为 JSON 格式,以便进行数据交互。
1.3 功能说明
FineDataLink 支持使用 JSON 生成算子,生成 JSON 格式数据。
分组字段介绍:
注:分组字段功能可解决简道云子表单增删改同步问题,详情请参见多个简道云子表单增删改输出
2. 约束限制
JSON 配置表内,子对象至多支持三层嵌套,子数组至多支持一层嵌套、且同一嵌套层级内只允许有一个子数组。
单个字段只允许在JSON生成算子内被选择一次,已被选过的字段置灰提示。
如果字段值为数值、则生成的值为数值(不带双引号),如果字段值为true/false、则生成的值为逻辑值true/false(不带双引号),否则为字符串;
当用户选择“字符串”时,一律将值设定为字符串(带双引号);
对于子数组,只允许在前端添加一行值,且值的类型只允许为字段或子对象;
同一层级内键名不允许重名,跨层级允许键名重名。
3. 操作步骤
示例数据:dw_comment.xls
API输出 中需要将数据表中的用户数据生成 JSON 格式后,通过 API 输出对接业务系统,将数据推送写入业务系统接口中,触发业务系统流转任务,实现数据交互。
本文以 API输出 中的 JSON 生成示例详细说明用法。
3.1 取出数据
用「数据转换」节点,进入编辑界面后,拖入「DB表输入」算子,SQL 语句取出需要进行 API 输出的数据,如下图所示:
点击预览数据,如下图所示:
3.2 JSON设置
由于需要API写入的接口数据需要 JSON 格式,所以需要将原先的数据库表形式数据转换成 JSON 格式。
JSON 样式如下:
{
"fields": {
"summary": "文档很赞",
"components": {
"name": [
"FR10"
]
},
"customfield_14904": "https://help.fanruan.com/finereport10.0/doc-view-2463.html",
"description": "根据参数动态显示地图区域"
}
}
新增 JSON 生成算子,设置输出 JSON 字段名,并进行 JSON 配置。
点击 JSON 设置中的添加,开始 JSON 设置,如下图所示:
输入第一个键 fields,然后设置子对象,如下图所示:
在嵌套的子对象中,输入键并选择对应的字段「comment」作为值,如下图所示:
同时支持调整值类型,类型支持「字符串」、「数值」和「布尔型」,如下图所示:
若选择自动生成 JSON ,则效果如下:
将流入JSON生成算子的数据流字段自动生成一个对象,在对象内为每个字段创建为一个键-值,键为字段名、值为字段值、不包括嵌套。
按照上文的 JSON格式进行设置,最终生成的 JSON 如下图所示:
3.3 数据预览
配置好后,选择「数据预览」,可以看到生成的 JSON 。
然后点击指定的 JSON ,可以在右侧看到详细的 JSON 内容,并且可以复制内容,如下图所示:
后续操作可以参考:API输出
4. 运行日志说明
日志分类 | 场景 | 报错内容(不包含时间部分) |
---|---|---|
预览&选择节点时报错 | 源字段为空 | com.fr.dp.exception.FineDPException: JSON生成失败 - JSON源字段不能为空 (后端报错信息及堆栈) |
未接入前置节点 | com.fr.dp.exception.FineDPException: 未接入前置节点 - previous node of [JSON生成] is absent | |
JSON生成失败-值格式错误 | com.fr.dp.exception.FineDPException: JSON生成失败 - 值格式错误(后端报错信息及堆栈) | |
JSON生成失败(其他场景失败场景) | com.fr.dp.exception.FineDPException: JSON生成失败 - 后端报错信息及堆栈 | |
构建时报错 | 源字段为空/输出字段为空 | 任务构建失败 异常节点:【数据转换】 [JSON生成]: 源字段为空 输出字段为空 |
未接入前置节点 | 任务构建失败 异常节点:【数据转换】 [JSON生成]:未接入前置节点 | |
运行时报错 | JSON生成失败-值格式错误 | [数据转换] - 执行失败 [JSON生成]:JSON生成失败 - 值格式错误(后端报错信息) |
JSON生成失败(其他场景失败场景) | [数据转换] - 执行失败 [JSON生成]:JSON生成失败 - (后端报错信息) |