org.activiti.engine.ActivitiException: Errors while parsing: [Validation set: ‘activiti-executable-p

项目场景:

提示:这里简述项目相关背景:

项目中使用 activi 流程引擎中排他网关设计流程模型时,保存流程模型时遇到相关的错误信息,导致保存失败。


问题描述

遇到的问题:
项目中使用 activi 流程引擎中排他网关设计流程模型时,遇到以下所示的错误信息:

org.activiti.engine.ActivitiException: Errors while parsing:
[Validation set: 'activiti-executable-process' | 
Problem: 'activiti-exclusive-gateway-condition-not-allowed-on-single-seq-flow'] : Exclusive gateway has only one outgoing sequence flow.
This is not allowed to have a condition. -
[Extra info : processDefinitionId = PurApplyEntity | processDefinitionName = 采购 |  | id = sid-BF0A3523-1142-46BA-A436-4C858D41D089 | ]
( line: 16, column: 5)

在这里插入图片描述


原因分析:

问题的分析:

在这里插入图片描述
根据以上的错误信息,出现了一个问题导致解析失败,原因是在一个唯一的连线上存在条件。该问题的描述是 “Exclusive gateway has only one outgoing sequence flow. This is not allowed to have a condition.” 说明该排他网关只有一个连线,不允许在其上设置条件。

在您的流程定义文件(.bpmn或.xml)中,第16行第5列可能是出现该错误的位置。请检查排他网关的连线,确保在网关上仅有一条出连线。如果确实需要在这条连线上设置条件,请添加一个令牌,这样就生成了一个条件路径,同时流程定义将无法解析生成。

这个错误是由于在 Activiti 流程中的排他网关(Exclusive Gateway)只有一个出口序列流,并且还使用了条件。根据 Activiti 的规范,排他网关在只有一个出口时是不允许添加条件的。


解决方案:

解决方案:

1、要解决这个问题,你可以检查流程设计中的排他网关,确认是否只有一个出口序列流,并且如果只有一个出口,应该移除条件表达式。
2、我们也可以考虑重新设计流程,添加其他出口流或者使用其他类型的网关来满足具体的业务需求。

另外,根据错误信息提示,我们还可以检查具体的流程定义 ID、名称和 ID,以便更好地定位并解决问题。

知识小结:

1) 一个排他网关对应一个以上信息流;
2)由排他网关流出的顺序刘都有个conditionExpression元素(以.xml形式打开),在内部维护返回boolean类型的决策结果;
3)排他网关只会返回一条结果。当刘晨执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索(xml)如果发现第一条决策结果为true或者没有设置条件(默认为成立),则流出;
4)如果没有任何一个出口符合条件,则抛出异常;
5)使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的,以默认的连线离开。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值