Appearance
工作流专题:「数据修复」
当我们对应用导入既有业务数据,或者在试用期间对应用增减字段来作修改时,往往需要对既有业务数据进行一定的修改,来满足后续业务需求。这种场景我们称之为数据修复。
点击获取本节教程所用Demo应用: 数据修复Demo
1:应用场景说明
假设在销售线索管理场景中,存在应用启用前的既有数据【线索档案】和【成交客户档案】两个表单。
【线索档案】表单包含所有客户的记录,包含【客户名称】等基础信息字段。
并在本次应用搭建中,新增了自动编号控件作为【客户编号】;
新增了单选控件作为【成交状态】,包含“未成交”和“已成交”两个选项。

【成交客户档案】表单包含客户中成交客户的记录,存在【客户名称】字段和【线索档案】表单中相同。
并在本次应用搭建中,新增了文本控件作为【客户编号】;
新增了关联记录控件作为【线索】,关联对应的【线索档案】记录。

提示
对【线索档案】和【成交客户档案】两个表单,按照【客户名称】进行匹配对应,相同名称的记录视为代表同一个客户,存在数据修复需求如下:
一、对存在对应【成交客户档案】记录的【线索档案】记录,修改【成交状态】为“已成交”;
二、对【成交客户档案】,查询对应的【线索档案】记录,并设置为【成交客户档案】记录中的【线索】关联记录控件的值;
三、对【成交客户档案】,查询对应的【线索档案】记录中的【客户编号】自动编号控件值,并更新在【成交客户档案】记录中的【客户编号】文本控件中。
2:数据修复工作流搭建
2.1 创建功能按钮工作流
新建一个表单,并在其中添加功能按钮,工作流执行方式选择每条记录单独执行,启用目标选择对表单启用。

2.2 查询成交的【客户名称】
设置查询记录节点,选择表单设置【成交客户档案】;
筛选条件选择记录ID,设置非空;
查询数量选择查询多条;
查询字段选择需要的【客户名称】。

2.3 更新成交状态
设置更新记录节点,选择表单设置【线索档案】;
更新配置勾选更新多条;
筛选条件选择【客户名称】,设置任意属于,选择流程参数【客户名称(查询所有成交客户档案)】;
更新字段设置将【成交状态】设为“已成交”。

此时对所有【线索档案】记录,满足第一项数据修复需求。
2.4 逐条修复【成交客户档案】
设置业务流程,用于对单条【成交客户档案】记录进行数据修复。
2.4.1 创建业务流程
设置业务流程节点,点击创建业务流程。
在新打开的标签页中,设置业务流程的输入参数。
文本类型的【客户名称】;
文本类型的【成交客户档案记录ID】。

2.4.2 查询对应的客户编号
设置查询记录节点,选择表单设置【线索档案】;
筛选条件设置【客户名称】等于【客户名称(业务流程触发)】;
查询数量选择查询单条;
查询字段选择需要的【客户编号】。

2.4.3 更新客户编号和线索
设置更新记录节点,选择表单设置【成交客户档案】;
更新配置勾选更新单条;
筛选条件设置记录ID等于【成交客户档案记录ID(业务流程触发)】;
更新字段设置将【客户编号】设为【客户编号(查询对应的线索档案)】,将【线索】设为【记录ID(查询对应的线索档案)】。

此时对单个【成交客户档案】,满足第二项和第三项数据修复需求。
2.4.4 调用业务流程
回到原本的按钮触发工作流中,业务流程节点中调用刚设置的业务流程。
执行次数选择多次执行,多次执行数据源勾选数据节点,并选择2.2中设置的查询记录节点。
参数传递中,【客户名称】和【成交客户档案记录ID】选择其中对应参数。

2.5 执行结果
启用工作流后,点击按钮执行工作流,得到如下结果,数据修复完成。


3:总结
在数据修复工作流设置中,使用了更新记录节点和业务流程多次调用两种方式。
直接使用更新记录节点的方式,对应修复范围内的每条数据都执行完全相同的操作。
提示
对应第一项数据修复要求,对【线索档案】记录,若存在对应【成交客户档案】记录,【成交状态】都设为“已成交”。
业务流程多次调用的方式,对应修复范围内每条记录采用相同处理逻辑,但是更新内容并不相同的情况。
提示
对应第二项数据修复要求,如【成交客户档案】中A和C两条客户的记录,都需要查询对应【线索记录】得到【客户编号】,但是更新的值分别对应“客户编号-00000001”和“客户编号-00000003”。