工作流插件使用常见问题
======================

**场景1：**

提单被驳回到人工节点，此时单据是暂存状态，用户在单据列表界面删除了此单据，但是消息中心待办任务中仍有此被驳回的任务，那么在消息中心怎么删除此待办任务？

**问题原因**：流程设置-\>单据例外中没有设置删除单据时流程终止（工作流发版时默认已经配置过），如下图所示：

![](media/04b4ee1f51079bfedddc598640d36e22.png)

**处理方法**：

步骤1：在流程管理中找到此流程并打开，在流程设置中添加单据例外，删除单据时终止流程，如上图所示，确保以后不会出现同样的问题

步骤2：根据单据编号，在流程实例中找到待办任务中需要删除的流程实例并强制终止掉，如下图所示：

![](media/59bc3846e4d404cacc7eaec40799925a.png)

**场景2：**

提单被驳回到人工节点，此时单据是暂存状态，用户在单据列表界面废弃了此单据，但是消息中心待办任务中仍有此被驳回的任务，此时在消息中心怎么删除此待办任务？

**问题原因**：流程设置-\>单据例外中没有设置废弃单据时流程终止，如下图所示：

![](media/bae9aca6b0ad08ac14023f7d22b5e91f.png)

**处理方法**：

步骤1：在流程管理中找到此流程并打开，在流程设置中添加单据例外，废弃单据时终止流程，如上图所示，确保以后不会出现同样的问题

步骤2：根据单据编号，在流程实例中找到待办任务中需要删除的流程实例并强制终止掉，如下图所示：

![](media/59bc3846e4d404cacc7eaec40799925a.png)

**场景3：**

强制终止一个“审批中”状态的流程后，流程已经终止，但是单据列表界面看到此单据状态仍然是“审批中”

**问题原因**：流程设置-\>流程插件中没有设置流程实例终止时调用操作，如下图所示：

![](media/df9e46e9433a996f2bbb8be76b4e5e74.png)

**处理方法**：

步骤1：在流程管理中找到此流程并打开，在流程设置中添加流程实例终止时调用操作，如上图所示，确保以后不会出现同样的问题

步骤2：针对单据列表中的状态“审核中”，如果想改此状态，那么需要业务那边脚本修复状态

**场景4：**

流程运行时挂起，查看错误信息，提示：校验错误，只有提交和审核中状态的单据才可以撤销

**问题原因**：在流转日志中查看错误原因，以WFBiz开头的异常都属于业务异常，标准产品对业务状态转换有数据校验，说明你的单据状态转换不符合业务状态转换逻辑（工作流对业务状态转换不做控制），如下图所示：

![](media/51e0260eeb6294ca66d860f1c494a1b5.png)

**处理方法**：

步骤1：查看流程中各个节点的插件设置是否符合业务逻辑，不符合的需修改。也可以根据客户的要求去掉单据上相应的校验，这样在运行时就不会挂起了

步骤2：根据单据编码在流程实例中找到此挂起的流程，并撤销挂起，那么流程可重新继续运行，如下图所示

![](media/b6bd2afb1fe027a00df17fe5cd94942e.png)

**场景5：**

用户在人工节点参与人那里绑定了提交，但是人工节点的插件里也绑定了提交，导致流程报错

**问题原因**：新建单据并提交后，单据就进入流程了，并且单据状态是“已提交”，如下图所示，如果在人工节点的插件中再绑定“提交”操作，就相当于让单据从“已提交”状态变成“已提交”状态，标准单据只允许从“暂存”状态到“已提交”状态，所以流程会挂起，查看错误信息时会看到校验错误。

![](media/014a19e49bf552bbbaa0dd0b46e77225.png)

**处理方法**：

步骤1：在流程管理中找到此流程并打开，去掉人工节点绑定的“提交”插件并保存

步骤2：根据单据编码在流程实例中找到此挂起的流程，并撤销挂起，那么流程可重新继续运行，如下图所示

![](media/b6bd2afb1fe027a00df17fe5cd94942e.png)

**场景6：**

一个流程里设置了两次“审核通过”，在流程运行时挂起，查看流程日志错误信息，提示：校验错误

**问题原因**：跟场景5类似，当单据状态已经是“审核通过”时，标准单据不允许单据从“审核通过”状态再变成“审核通过”，所以流程会挂起，查看错误信息时会看到校验错误。

**处理方法**：

步骤1：在流程管理中找到此流程并打开，去掉重复绑定的“审核通过”插件并保存

步骤2：根据单据编码在流程实例中找到此挂起的流程，并撤销挂起，那么流程可重新继续运行

**说明：**工作流只负责调用业务单据上的各个插件操作，不会控制业务插件之间的状态逻辑，所以遇到校验错误问题，请先查看设置，如果客户需要某个状态的，但是标准单据有此状态的校验，那么可以去掉单据上相应的校验。
