使用子表数据修改子表数据
1. 简介
1.1 功能简介
1.2 应用场景
在订单管理中,有一张「订单表」和一张「订单变更表」。如想要修改原来「订单表」中的订单明细信息,可以在「订单变更表」中提交变更后的订单明细,当变更申请被审核通过后,便可触发「智能助手Pro」进行修改。
1.3 预期效果
在「订单变更表」的子表单中录入变更后的订单明细,提交申请且被审核通过后,触发「智能助手Pro」,自动修改原来「订单表」中的订单明细信息。
2. 表单搭建
1)首先新建一个「订单表」,在表单添加一个子表单作为订单明细,字段设置如下:
字段名称 | 字段类型 | 字段设置 |
订单号 | 流水号 | —— |
下单时间 | 日期时间 | |
下单员 | 成员单选 | |
客户名称 | 单行文本 | |
订单明细 | 子表单 | |
订单明细.商品名称 | 子字段-下拉框 | |
订单明细.单位 | 子字段-下拉框 | |
订单明细.数量 | 子字段-数字 | |
订单明细.单价 | 子字段-数字 | |
订单明细.小计 | 子字段-数字 | |
商品总价 | 数字 |
2)再创建一个流程表单「订单变更表」,在表单中添加一个子表单作为变更后订单明细,字段设置如下:
字段名称 | 字段类型 | 字段设置 |
申请人 | 成员单选 | —— |
申请时间 | 日期时间 | |
订单号 | 流水号 | |
变更后订单明细 | 子表单 | 子表单字段整体设置 数据联动,联动「订单表」中的订单明细 |
变更后订单明细.商品名称 | 子字段-下拉框 | |
变更后订单明细.单位 | 子字段-下拉框 | |
变更后订单明细.数量 | 子字段-数字 | |
变更后订单明细.单价 | 子字段-数字 | |
变更后订单明细.小计 | 子字段-数字 | |
变更后商品总价 | 数字 | —— |
审批结果 | 单选按钮组 | 选项设置为是、否 |
3)流程表单的流程可在流程设定处进行设置,包括各节点的负责人和字段的可见属性等。详情参见:流程设定
- 流程发起节点设置字段可见、可编辑权限如下:
- 审批节点设置字段权限设置为全部可见、可编辑,并设置节点负责人,负责人可以收到流程待办消息。
3. 设置智能助手Pro
3.1 新建智能助手Pro
表单搭建完成后,直接切换到「扩展功能」处,新建一个「智能助手Pro」并设置好名称,触发方式选择「表单触发」,触发表单选择「订单变更表」。如下图所示:
3.2 设置触发节点
选中触发节点,并进行如下设置,使得「智能助手Pro」在订单变更申请被审批通过后方可触发:
- 添加触发动作:「节点流转时」;
- 选择流程节点:「审批节点」;
- 选择节点行为:「提交」;
- 添加触发条件:「审批结果」等于「通过」;
3.3 添加修改数据节点
在触发节点下方添加一个「修改数据」节点,如下图所示:
3.4 设置修改数据节点
进一步对「修改数据」节点进行设置,具体如下:
3.4.1 选择修改对象
选择修改对象为「选择表单修改数据」,目标表单为「订单表」:
3.4.2 筛选出需要修改的数据
添加过滤条件「订单号」等于「触发数据.订单号」,从「订单表」中筛选出与触发数据中订单号一致的数据,用于进行后续修改:
注:此处的过滤条件仅是将需要修改的整条数据过滤出来,并未执行任何修改操作。
3.4.3 设置字段值
对已经过滤出的订单数据进行修改,设置步骤如下:
- 添加要修改的字段并设置其字段值:将订单数据中的相关信息修改为触发数据中的对应信息,且如下子表字段将使用「触发数据的子表单字段」进行赋值;
- 「订单明细.数量」等于「触发数据--变更后订单明细.数量」
- 「订单明细.单价」等于「触发数据--变更后订单明细.单价」
- 「订单明细.小计」等于「触发数据--变更后订单明细.小计」
- 「商品总价」等于「触发数据--变更后商品总价」
- 设置待修改数据与数据源的匹配关系:在修改过程中,「触发数据子表单中的多条商品明细数据」,会在通过商品名称匹配到「订单数据子表单中的相应商品数据」后,进行字段值的修改;
- 「订单明细.商品名称」等于「触发数据--变更后订单明细.商品名称」
注:
1)订单数据子表单中未被匹配到的商品数据,将不做修改;
2)触发数据子表单中的一条商品明细,可以通过商品名称匹配到「订单数据子表单中的多条商品数据」并修改,即一条子表数据可以修改另一表单的多条子表数据,但仍有修改条数限制,详情参考:修改数据;
3.5 保存并启用
全部设置完成后,点击「保存并启用」按钮,将「智能助手Pro」投入实际使用。如下图所示:
3.6 效果演示
效果参见本文【1.3 预期效果】
4. 注意事项
1)暂不支持通过子表单删除子表单数据。
2)修改数据时,子表单的赋值规则可参考:子表单赋值规则 。
3)子表单修改子表单数据的「智能助手Pro」中,可以同时对主表和子表数据进行修改。