历史版本12 :将包含两个子表单的简道云表单数据落库 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

简道云表单中包含两个子表单,其中一个子表单中包含成员单选、部门单选控件。如下图所示:

1696934652944651.png

已有数据如下图所示,现希望将该表单的数据落库。

1696934678149706.png

1.2 实现思路

使用「简道云输入」算子读取表单数据,将主表单数据、零部件明细子表单、负责人子表单分别存储到三张表中。

注:简道云表单数据若存储到一张数据表中,会造成数据膨胀。

1.3 注意事项

注:本文方式适用于 4.1.6.2 及之后版本;4.1.6.2 之前版本,2.5.2 节JSON解析时请参见:历史版本 的 2.5.2 节内容。

本文示例场景中,若后续简道云表单中数据增加或更新时,子表单数据也想跟随增加/更新(本文示例选择的方案一):

1)方案一:

子表单数据落库前写入方式选择「清空目标表,再写入数据」。

2)方案二:

子表单数据解析后,保留子表单 id 字段作为落库后的主键(例如 2.4.2、2.5.2 节中 json 解析时勾选 _id 字段),落库前自动建表时,将 _id 作为主键,写入方式选择「追加写入数据」,设置主键冲突策略为「主键冲突,覆盖目标表的数据」。

1697437254652456.png

2. 操作步骤编辑

2.1 简道云表单字段处理

在简道云表单接入前,建议提前设置字段别名,否则接入到 FineDataLink 中时会使用字段原始名,不便于在 FineDataLink 中进行业务处理。

进入简道云应用,进入表单的编辑界面,点击「扩展功能>数据推送>设置字段别名」。如下图所示:

点击展开更多
71.png

2.2 新建简道云数据连接

需要 新建简道云数据连接,以便「简道云输入」算子读取简道云数据。

2.3 主表单数据落库

将主表单数据落库,主表单数据如下图所示:

2.3.1 读取简道云表单数据

1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。

2)拖入「简道云输入」算子,选择要读取的简道云表单。

其中,数据连接处显示有权限的,且已配置的简道云数据连接,此处选择前面配置好的数据连接「简道云」;设置要读取的简道云表单及它所在的应用。如下图所示:

点击「数据预览」,可看到子表单数据为 JSON 格式,若想将子表单数据落库,落库前需要解析。如下图所示:

74.png

2.3.2 剔除不必要字段

由于我们要将主表单数据落库,一些不需要的字段需要在落库前剔除。

1)拖入「字段设置」算子,只保留number、date、equipment_name、total_price字段,其余字段都删除。如下图所示:

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

2.3.3 主表单数据输出

1)拖入DB表输出算子,将主表单数据输出。如下图所示:

2)「写入方式」Tab 下,写入方式选择清空目标表,再写入数据」,将主表单数据全量写入目标表中。

注:为便于后续更新落库后的主表单数据、落库后的两个子表单数据,写入方式选择「清空目标表,再写入数据」。

3)点击右上角保存按钮。

2.3.4 效果查看

1)右键点击节点,选择运行节点」。如下图所示:

2)运行成功后,可看到主表单数据已落库。如下图所示:

2.4 子表单-零部件明细数据落库

最终输出的数据应包括子表单数据(component_name、component_types、component_model、unit_price_of_components、number_of_components、prices)、number 字段(主表单主键字段便于之后子表单与主表单数据关联)。如下图所示:

2.4.1 读取简道云表单数据

再拖入一个「数据转换」节点,进入数据转换节点,拖入「简道云输入」算子,选择要读取的简道云表单。

步骤与本文 2.3.1 节相同。

2.4.2 解析子表单数据

由于子表单字段(part_detail_information)为 JSON 格式数据,所以落库前需要进行解析。

拖入JSON解析算子,解析 part_detail_information 字段;由于要保留 number 字段(主表单主键字段便于之后子表单与主表单数据关联),需要勾解析后保留所有上游输出字段」按钮。如下图所示:

2.4.3 剔除不必要字段

拖入「字段设置」算子,保留主表单主键字段(本文示例中为 number),便于之后可与主表单数据合并;保留解析后的子表单字段。

即保留:number、component_name、component_types、component_model、unit_price_of_components、number_of_components、prices 字段,删除其余字段。数据预览结果如下:

2.4.4 子表单数据输出

参考本文 2.3.3 节内容,将子表单数据输出。

2.4.5 效果查看

参考本文 2.3.4 节步骤,运行该数据转换节点,可看到子表单数据已落库。如下图所示:

2.5 子表单-负责人数据落库

最终输出的数据应包括子表单数据(level 字段,部门名称、成员名称字段)、number 字段(主表单主键字段便于之后子表单与主表单数据关联)。

2.5.1 读取简道云表单数据

再拖入一个「数据转换」节点,进入「数据转换」节点,拖入「简道云输入」算子,选择要读取的简道云表单。

步骤与本文 2.3.1 节相同。

2.5.2 解析子表单数据

简道云表单中若包含部门单选字段、成员单选字段,使用「简道云输入」算子读取后,解析说明请参见:解析字段

由于子表单字段(head)为 JSON 格式数据,所以落库前需要进行解析,需要解析出 level 字段,部门名称、成员名称字段。

拖入「JSON解析」算子,解析 head 字段;由于我们要保留主表单的 number 字段,所以勾解析后保留所有上游输出字段」按钮;解析 level、department-name、member-name 字段。如下图所示:

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

2.5.3 剔除不必要字段

拖入「字段设置」算子,保留主表单主键字段(本文示例中为 number),便于之后可与主表单数据合并;保留解析后的子表单字段。

即保留:number、 level、name、name_1 字段,删除其余字段。

2.4.4 子表单数据输出

参考本文 2.3.3 节内容,将子表单数据输出。

2.4.5 效果查看

参考本文 2.3.4 节步骤,运行该数据转换节点,可看到子表单数据已落库。如下图所示: