历史版本3 :提取简道云表单多值字段并显示为一行 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

1.1 应用场景

公司人员信息保存在简道云表单中,在公司内部,有些人可能会同时担任多个职位,如王小明既是总经理又在财务部工作。在王小明出差时,为了方便报销,需要将他所在的多个部门展示出来,方便后续各部门的报销费用分摊。

1.2 实现思路

若一个人担任多个职位,使用「简道云输入」算子读取表单数据后,字段值示例如下:

28.png

若使用「JSON 解析」算子直接解析该字段,若一个人有多个部门,数据将会被拆成多行,例如:

1690790677285072.png

本文使用 regexp_replace 函数提取 department 字段中的中文即可,将部门名称提取出来。

注:若部门名称包含英文,本文方案不适用。

2. 示例编辑

2.1 场景模拟

公司出差表单中,包含「部门多选」字段,有些成员担任多个职位,属于多个部门。

29.png

希望将简道云数据保存到数据库中,且用一个字段代表成员的所属部门。

2.2 设置字段别名

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

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

30.png

2.3 准备简道云数据连接

用户需要有一个 简道云数据连接 的使用权限,以便「简道云输入」算子读取简道云表单的数据。

31.png

2.4 新建定时任务

新建定时任务,拖入「数据转换」节点。如下图所示:

32.png

2.5 读取简道云表单数据

1)进入「数据转换」节点,拖入「简道云输入」算子,读取简道云表单数据。如下图所示:

33.png

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

34.png

2.6 提取多值字段部门的值并显示为一行

1)拖入「Spark SQL」算子,筛选出 department 字段中的汉字。SQL 语句为:select *, regexp_replace(简道云输入.department ,'[^\\u4e00-\\u9fa5]','') as str1 from 简道云输入

注:表名为上游节点的名称;语句不能直接复制,「简道云输入」需点击生成。

36.png

公式含义
\u4e00-\u9fa5“\u4e00”和“\u9fa5”是unicode编码,并且正好是中文编码的开始和结束的两个值,所以这个正则表达式可以用来判断字符串中是否包含中文。
regexp_replace