1. 概述
2. 操作步骤
2.1 准备工作
在钉钉后台中创建一个应用,并为该应用添加接口调用权限,获取企业内部应用的访问凭证 access_token 后,即可调用接口。详情请参见:如何调用新版服务端API
1)本文示例中,宜搭表单如下图所示:
ID为主键。
2)本文示例中,添加的应用是企业内部应用。
2.2 取出本次需要新增、更新的数据并输出为参数
1)新建定时任务,拖入「参数赋值」节点,取出本次需要新增、更新的数据。如下图所示:
2)将主键输出为参数。如下图所示:
此步骤中,建议设置参数默认值,便于后续节点查看效果,该默认值不会影响运行结果。
2.3 获取access_token并作为参数输出
调用 新增或更新表单实例 接口时,需要 access_token 值作为该接口的 Header 参数,获取 access_token 值需要调用 获取企业内部应用的accessToken 接口。
1)拖入「参数赋值」节点,取出 access_token 数据。如下图所示:
参数及接口详细介绍请参见:获取企业内部应用的accessToken
点击「数据预览」,如下图所示:
2)将 access_token 值作为参数输出,建议设置参数默认值,便于后续节点查看效果,该默认值不会影响运行结果。如下图所示:
2.4 设置循环容器
需要将本文 2.2 节取出的参数一条条赋值给 新增或更新表单实例 接口,因此新增「循环容器」节点。
1)拖入「循环容器」节点,选择「遍历循环」,勾选 2.2 节输出的参数。如下图所示:
2)「循环容器」节点内拖入「数据转换」节点,进入「数据转换」节点。
2.5 设置数据转换节点
本节目的是:根据 2.2 节的参数,生成 新增或更新表单实例 接口的 body 内容,调用该接口新增、更新宜搭表单数据。
2.5.1 取出需新增、更新数据
1)拖入「DB表输入」算子,根据 2.2 节的参数,获得对应的明细数据。如下图所示:
2)点击「数据预览」,如下图所示:
2.5.2 新增计算列
新增或更新表单实例 接口的 body 内容必填项包含:formUuid、searchCondition、appType、formDataJson、systemToken、userId字段,我们需要准备这些字段。
其中,searchCondition 字段又包含多个字段,具体介绍请参见:宜搭表单筛选的组件格式说明(企业内部应用)。formDataJson 字段,是我们要上传到宜搭表单的字段组成的。
1)新增计算列算子,如下图所示:
字段 | 本文示例 | 说明 |
---|---|---|
systemToken | 详情请参见:新增或更新表单实例 | |
formUuid | ||
userId | ||
appType | ||
searchCondition | key | 详情请参见:新增或更新表单实例 |
type | ||
operator | ||
componentName | ||
value(本文示例中是 aa) | ||
formDataJson | 是由 2.5.1 节数据组成的,后续步骤中直接引用 2.5.1 节数据即可 |
2)点击「数据预览」,如下图所示:
2.5.3 生成 JSON
2.5.2 节中我们准备了 新增或更新表单实例 接口的 Body 内容,本节中我们需要直接生成 Body 内容。
拖入「JSON生成」算子,将二维表数据构造成 JSON 格式。如下图所示:
需注意,formDataJson 包含的字段,需修改成对应的字段类型,比如下图中「合同总价」为数值字段,字段类型为数值。
注:formDataJson 包含的字段中,字段名需要是控件的唯一标识,可展开下图查看。
宜搭表单控件的唯一标识 |
2.5.4 JSON 解析&字段设置
新增或更新表单实例 接口的 Body 字段中,searchCondition、formDataJson 为字符串格式,而我们 2.5.3 节中,JSON 生成的 searchCondition、formDataJson 是数组格式,不符合要求。
所以本节需要将上一步生成的 JSON 解析,修改字段类型。
1)拖入「JSON 解析」算子,解析 2.5.3 节生成的 JSON 数据。如下图所示:
2)拖入「字段设置」算子,如下图所示:
2.5.5 生成 JSON
经过 2.5.4 节的处理,新增或更新表单实例 接口的 Body 内容已准备好,本节将二维表数据构造成 JSON 格式。如下图所示:
2.5.6 API 输出
1)拖入「API输出」算子,设置如下图所示:
接口为:https://api.dingtalk.com/v1.0/yida/forms/instances/insertOrUpdate
Headers 下添加x-acs-dingtalk-access-token参数,值为本文 2.3 节获取的 access_token 参数。
Body 下设置接口的 Body 内容,值为本文 2.5.5 节生成的数据。
2)点击右上角「保存」按钮。
2.6 效果查看
运行任务即可。