修改数据节点
1. 简介
1.1 功能简介
修改数据是指,当「智能助手Pro」执行到该节点时,修改节点所指向的数据或目标表单中满足条件的已有数据;若找不到对应数据,还可直接新增数据。
注:在使用修改数据节点前,建议先参考 修改数据节点使用说明 来学习如何使用修改数据节点。
1.2 应用场景
- 进销存场景 中,当退货单审批完成后,自动修改库存表中货物的在库状态;
- 设备管理 场景中,当设备保养单的数据修改后,自动修改设备档案表中的设备保养状态;
- 学生管理场景中,当迎新表中的学生状态标记为已报到后,自动将该学生的信息同步到学籍表中,如果学籍表中没有该学生的信息,则在学籍表中新增一条记录。
1.3 预期效果
以学生管理为例,通过「智能助手Pro」实现当「迎新表」中学生的状态被标记为已报到后,同步修改「学籍表」中的学生状态;如果「学籍表」中没有该学生的信息,则新增一条数据。效果如下:
1)「学籍表」中存在对应学生信息,进行修改操作。
2)「学籍表」中无对应学生信息,进行新增操作。
2. 操作步骤
2.1 添加节点
根据业务需求,在已有节点后添加一个修改数据节点:
2.2 选择修改对象
修改数据节点支持如下 2 种修改对象,且各自适用场景不同:
- 选择表单修改数据:前置节点上不存在要修改的数据,需要额外从表单中获取数据并修改;
- 选择节点修改数据:前置节点中已存储/指向了要修改的数据,直接选择对应节点进行修改即可。
注:修改数据操作实质上包括两个步骤:获取数据,对其进行修改。在「智能助手Pro」中,部分节点(如触发节点、查询单/多条节点等)可实现获取数据,因此可以直接对节点进行修改,从而实现修改数据操作。
2.2.1 选择表单修改数据
选择表单修改数据是指,修改目标表单中满足条件的数据,支持选择当前应用以及 跨应用 表单:
2.2.2 选择节点修改数据
选择节点修改数据是指,对节点所指向的数据进行修改操作。支持选择触发节点、查询单条/多条数据节点、新增数据节点。具体实现效果如下:
- 触发节点:修改触发该「智能助手Pro」的数据;
- 新增数据:修改已新增的数据,用于修正或更新先前添加的数据;
- 查询单条/多条数据:修改查询到的数据,用于修改目标表单中的特定数据。
注:
1)触发方式为 HTTP触发 时,不支持选择触发节点;
2)查询单条/多条数据节点,仅能查询出整条数据,不支持单独查询出子表单中的部分数据;
3)若修改节点在某条分支上,则不支持选择其他分支上的节点;若不在任意分支上,则不支持选择分支上的节点。
2.3 筛选出要修改的数据
当修改对象为「选择表单修改数据」时,可以添加过滤条件,仅从目标表单中筛选出符合条件的主数据,用于后续修改(下文会将此处筛选出的待修改数据统称为目标数据)。
过滤条件需要设置的内容及说明如下:
- 多个条件的关系:当存在多个过滤条件时,可以选择满足「所有」或「任一」条件;
- 所有:多个过滤条件之间的关系为「且」,仅过滤出满足所有条件的数据;
- 任一:多个过滤条件之间的关系为「或」,将过滤出满足任一条件的数据;
- 目标表单字段:选择目标表单中的字段,或部分系统字段(提交人、提交时间、更新时间、流程状态);
- 过滤关系:根据目标表单的字段类型,设置不同的过滤关系,如等于/不等于、包含/不包含、为空/不为空等;
- 过滤值:可选择「节点字段值」、「自定义」或「空值」,选择自定义时,字段值需手动输入。
注:
1)即使在过滤条件中使用了子表单字段,筛选对象仍为整条数据,无法单独筛选出子表单中的某几条数据。
可以参考本文 2.5.1 节设置匹配条件,使得只对匹配上的子表单数据进行修改,未匹配上的则不做修改;
2)不同类型的目标表单字段可设置的过滤关系与过滤值不同,详情参见:过滤值说明;
3)部分目标表单字段不能设置过滤条件,包括:分割线、查询、选择数据、手机、微信头像、文字识别、按钮、微信OpenID、流程状态、当前节点、当前负责人以及系统字段(提交人、提交时间、更新时间);
4)支持引用字段值的前置节点包括:触发节点、查询单条/多条数据节点、新增数据(单条/多条)、计算节点和插件节点。其中,当触发方式为「定时触发 >> 自定义时间」时,不可引用触发节点的字段值。
2.4 选择修改方式
通过以下选项,可以确定数据的修改方式:
- 不勾选:修改方式为「修改已有数据」,在未能过滤出/找不到目标数据时的执行逻辑如下:
- 未能过滤出需要修改的数据时,跳过执行该节点;
- 已过滤出要修改的数据,但赋值数据源未能找到要修改的数据,不执行修改操作,继续进行下一轮查找;
- 勾选:修改方式为「修改或新增数据」,若找不到/匹配不到需要修改的目标数据,则会直接向目标表单中新增数据。
注:
1)未能过滤出需要修改的数据,有以下两类情况:
- 修改对象为「选择表单修改数据」,但过滤条件筛选出的数据为空;
- 修改对象为「选择节点修改数据」,但所选节点查询到的数据为空。
2)找不到需要修改的数据是指,已过滤出需要修改的数据,但在执行修改的过程中,赋值数据源无法根据本文 2.5.1 节设置的匹配/修改条件,找到对应数据。(该场景仅会在修改多条数据/子表单数据时出现)
如果对修改数据节点中的过滤配置、匹配条件配置存有疑惑,可参考 修改数据节点使用说明【第三节】中提供的执行逻辑图和示例,进行了解学习。
2.5 设置字段值
2.5.1 修改数据字段值
1)添加修改字段
点击「添加字段」,从目标数据中选取需要修改值的字段并设置其新值(支持修改为:节点字段值、自定义值或空值)。
注:
1)目标表单中不支持设置的字段包括:分割线、选择数据、查询、手写签名、流水号、手机以及系统字段(提交人、提交时间、更新时间);
2)不同类型字段的字段值设置方式不同,详情参见本文 3.2 节。
2)设置匹配关系/修改条件(选做,仅需要在特定场景下进行配置)
当目标数据为多条数据/子表单数据时,「修改数据」节点在执行修改的过程中会遇到一个问题:取到赋值数据源中的一条数据后,它不知道应该去修改哪一条或几条数据。
因此,需设置目标数据和赋值数据源间的 匹配关系/修改条件,确保节点能够找到对应的目标数据并进行修改。
2.5.2 新增数据字段值
若修改方式为「修改或新增数据」,相应地,在字段值设置处将会出现「新增数据」区域,用于设置新增数据时每个字段的值:
注:
1)新增数据时,不同类型字段的字段值设置方式不同,详情参见:新增数据。
2)在「修改或新增」同一子表单字段,或多条数据的主字段时,若使用了多值字段进行赋值,则需确保在新增/修改赋值,以及匹配关系/修改条件设置中使用的所有多值字段,来源相同。详情参见:子表单赋值规则。
3)同时对某个主字段进行修改、新增赋值设置时,若修改赋值/匹配关系/修改条件中使用到了多值字段,则新增赋值时,可以使用同一来源的多值字段,或单值字段进行赋值。
4)同时对某个子字段进行修改、新增赋值设置时,若修改赋值/匹配关系/修改条件中使用到了多值字段,则新增赋值时,可以使用同一来源的多值字段,或单值字段进行赋值。否则,仅可使用单值字段进行赋值。
3. 注意事项
3.1 通用说明
1)通过修改数据节点修改表单数据时,可以触发数据推送(仅在修改单条数据时触发),不会触发推送提醒。
2)目标表单中的定位、图片、附件字段,只能设置为触发表单字段值或空值,不支持自定义。
3)对子表单字段进行修改赋值时,需要遵循 子表单赋值规则。在赋值过程中,为防止即将选择的字段与已选字段冲突,导致赋值失效,字段选择面板中会自动隐藏冲突字段,仅提供当前配置下不产生冲突的字段供选用。
如需查看所有字段,可将鼠标移动至字段选择面板底部的 上方,并点击「显示所有字段」即可。如下所示:
4)在调用前置节点上的数据,对目标数据进行过滤和赋值时,若所调用的数据不存在,则修改数据节点的执行效果会受到影响,详情参见:执行节点详解。
3.2 修改数量限制
1)修改数据节点每次最多支持修改 200 条数据。在一次修改过程中,若满足修改条件的数据或前置节点指向的数据超过 200 条,则不会执行该次修改操作,并进行报错提示。
2)如下类型的字段值设置,可对多条子表单数据进行修改。当匹配数据时的计算量SUM(目标数据.子表单数据量 * 赋值数据源的数据量 * 匹配条件数) 小于等于 100 万时,可继续进行修改操作,否则会修改失败。
- 使用「多条数据的主字段」修改「目标表单的子表单字段」
- 使用「单条数据的子表单字段」修改「目标表单的子表单字段」
以同步变更入库数据为例,若发起了采购变更申请,对同一商品在多个仓库的采购数量进行变更,则需要同步修改入库单中的多条入库数据,计算量为:sum(1*2*2,2*2*2) = 12:
若因为计算量超出限制而导致修改失败,可以减少匹配条件或修改数据条数。
3.3 字段值说明
字段值可以设置为以下三种:节点字段值、自定义以及空值。
注:「节点字段值」,即该「智能助手Pro」中前置节点(包括触发节点和执行节点)上所存储的数据字段值,下文将统一称为「前置节点字段值」。
3.3.1 节点字段值
1)支持将「目标表单的字段值」修改为「前置节点字段值」,即将「智能助手Pro」中前置节点上存储的数据应用到目标表单的相应字段上。
2)修改为节点字段值时,支持引用触发节点、新增数据节点、查询单条数据节点、查询多条数据节点、计算节点、插件节点中存储的数据。其中:
- 当存在多个前置节点时,可同时引用多个节点中的数据进行赋值修改。
- 当触发方式为「定时触发 >> 自定义时间」时,不可引用触发节点进行赋值。
3)对于不同类型的目标表单字段,可以设置的前置节点字段类型如下:
目标表单字段 | 前置节点字段 |
单行文本 下拉框 单选按钮组 CRM.客户表-客户名称 CRM.线索表-客户名称 | |
多行文本 | |
数字 | 数字、子表单(数字)、聚合计算 |
复选框组 下拉复选框 | 复选框组、下拉复选框、子表单(复选框组、下拉复选框) |
日期时间 | 日期时间、子表单(日期时间)、提交时间、更新时间 触发时间(仅当触发方式为 按钮触发 时,可从触发节点处选用) |
子表单字段 | 子表单字段 |
图片 | 图片、子表单(图片) |
附件 | 附件、子表单(附件)、生成打印文件节点 输出的打印文件 |
地址 | 地址、子表单(地址) |
定位 | 定位、子表单(定位) |
成员单选 | 成员单选、子表单(成员单选)、提交人 触发人(仅当触发方式为 按钮触发 时,可从触发节点处选用) |
成员多选 | 成员多选、子表单(成员多选) |
部门单选 | 部门单选、子表单(部门单选) |
部门多选 | 部门多选、子表单(部门多选) |
关联数据 | 关联数据、数据ID 具体使用方式:如何在智能助手Pro中使用关联数据字段? |
4)当目标表单字段与前置节点字段的设置存在以下区别时,将作为特殊情况处理:
目标表单字段 | 前置节点字段 | 特殊情况的处理方法 |
图片字段仅允许上传一张 | 图片字段可上传多张 | 将前置节点中图片字段中的第一张图赋值给目标表单的图片字段 |
附件字段仅允许上传一个 | 附件字段可上传多个文件 | 将前置节点中附件字段中的第一个文件赋值给目标表单的附件字段 |
地址字段无详细地址 | 地址字段有详细地址 | 将前置节点中地址字段中的省、市、区赋值给目标表单中的地址字段,丢弃详细地址 |
地址字段有详细地址 | 地址字段无详细地址 | 将前置节点中地址字段中的省、市、区赋值给目标表单中的地址字段,目标表单的详细地址置空 |
日期时间字段只显示日期 | 日期时间字段显示日期 + 时间 | 将前置节点中日期时间字段件中的日期赋值给目标表单中的日期时间字段,丢弃时间 |
日期时间字段显示日期 + 时间 | 日期时间字段只显示日期 | 将前置节点中日期时间字段中的日期赋值给目标表单中的日期时间字段,时间设置为00:00:00 |
定位字段不显示经纬度 | 定位字段显示经纬度 | 将前置节点中定位字段中的地址赋值给目标表单中的地址字段,但不显示经纬度 |
定位字段显示经纬度 | 定位字段不显示经纬度 | 将前置节点中定位字段中的地址赋值给目标表单中的地址字段,目标表单中经纬度置空 |
3.3.2 自定义
1)支持自定义目标表单的字段值。如下图所示:
2)对于不同类型的目标表单字段,自定义值的设置方法如下:
目标表单字段 | 设置方法 |
单行文本、多行文本、单选按钮组、下拉框 | 直接输入文本 |
复选框组、下拉复选框 | 可以输入多个文本,多个值用 enter 隔开 |
数字 | 直接输入数字,如果输入非数字内容,视为空值 |
日期时间 | 直接选择日期/日期时间 |
地址(显示详细地址/不显示详细地址) | 直接选择地址以及输入详细地址 |
成员单选、成员多选 | 点击选择成员 |
部门单选、部门多选 | 点击选择部门 |
CRM.商机—销售阶段 | 点击选择销售阶段 |
3.3.3 空值
支持将「目标表单的字段值」修改为「空值」。如下图所示: