一:出错场景
BPM4执行taskService.completeTask(taskId,map)或taskService.completeTask(taskId) 操作时,出现如下异常:
2011-3-1 14:57:00 org.jbpm.internal.log.Jdk14Log info
信息: exception while executing command org.jbpm.pvm.internal.cmd.CompositeCmd@19d5db9
org.jbpm.api.JbpmException: No transition named '申请' was found.
No unnamed transitions were found for the task '申请'
这都是没有处理好Jbpm转移引起的问题。
No transition named '申请' was found
是由于一个名为‘申请’的流入转移(或者流出转移)没有定义。
仔细查看xml,是不是写错了。
<transition g="-5,-17" name="申请" to="部门领导审批"/>
No unnamed transitions were found for the task '申请'
是连接'申请'的task任务没有命名的转移被找到
二:问题解决
可以看到核稿,驳回等就是transtion,属于外向转移。
使用taskService.completeTask(taskId)
就会报错。
使用taskService.completeTask(taskId, "error_value")
也会报错。
如果流程走到办公核稿,
taskService.completeTask(taskId, "会签") ;
//or
taskService.completeTask(taskId, "驳回") ;
这才是正确的!
了解Transtion
那么什么Transtion呢?!
Transtion:转移负责将各个活动定义连接起来,组成流程定义。
转移可分为流入转移和流出转移
三:原理分析
如果一个任务拥有一个没用名称的外向转移:
//返回包含一个null值集合,。
taskService.getOutcomes()
//会使用这个外向转移。
taskService.completeTask(taskId)
//会使用这个外向转移。
taskService.completeTask(taskId, null)
//会抛出一个异常。
taskService.completeTask(taskId, "anyvalue")
如果一个任务拥有一个有名字的外向转移:
//返回包含这个转移名称的集合。
taskService.getOutcomes()
// 会使用这个单独的外向转移。
taskService.completeTask(taskId)
//会抛出一个异常(因为这里没有无名称的转移)。
taskService.completeTask(taskId, null)
//会抛出一个异常。
taskService.completeTask(taskId, "anyvalue")
// 会根据给定的名称使用转移。
taskService.completeTask(taskId, "myName")
如果一个任务拥有多个外向转移,其中一个转移没有名称,其他转移都有名称:
//返回包含一个null值和其他转移名称的集合。
taskService.getOutcomes()
//会使用没有名字的转移。
taskService.completeTask(taskId)
//会使用没有名字的转移。
taskService.completeTask(taskId, null)
//会抛出异常。
taskService.completeTask(taskId, "anyvalue")
//会使用名字为'myName'的转移。
taskService.completeTask(taskId, "myName")
如果一个任务拥有多个外向转移,每个转移都拥有唯一的名字:
//返回包含所有转移名称的集合
taskService.getOutcomes()
//会抛出异常,因为这里没有无名称的转移。
taskService.completeTask(taskId)
//会抛出异常,因为这里没有无名称的转移
taskService.completeTask(taskId, null)
//会抛出异常
taskService.completeTask(taskId, "anyvalue")
//会使用名字为'myName'的转移
taskService.completeTask(taskId, "myName")
解决方案:
根据以上分析,可得到解决方案:
1、只拥有一个外向转移时(对应上文所述1、2情况):
Map map = new HashMap();map.put("",……)
//各种参数
taskService.setVariables(taskId,map);
taskService.completeTask(taskId);
3、拥有多个外向转移时(上文3、4种情况):
Map map = new HashMap();map.put("",……)
//各种参数
taskService.setVariables(taskId,map);
//如想转移至有名称的外向转移:
taskService.completeTask(taskId,"外向转移名称");
//如想转移至无名称的外向转移:
taskService.completeTask(taskId);
分享到:
相关推荐
About the examples in this book..............................................................................................xxv Obtaining copies of the examples..........................................
2.4.4 Developing Kernel Applications for VSB Systems ..................................... 21 2.5 VxWorks Without Networking ..............................................................................
Unnamed.mod
unnamed.war
The main reason for making a virtual function inline is to place its definition in the class, either for convenience or to document its behavior, e.g., for accessors and mutators. The -inl.h Files...
Unnamed Constructors ............................................................. 12 IDE: Build and Debug ............................................................... 12 Strings......................
标题中的“Unnamed - 29746.rar”是一个压缩包文件,可能包含了与医学成像相关的数据。这种类型的文件通常用于存储大量的图像或数据,便于传输和存储。RAR是一种流行的压缩格式,它能有效地压缩文件,减少磁盘空间...
列表中包含三个文件:“简介.txt”、“unnamed_file”和“scrapy_for_zh_wiki-main”。其中,“简介.txt”很可能是对整个压缩包内容的概述性文档,可能包含学习笔记的目录、学习目标、参考资料等。而“unnamed_file...
Pairs and Tuples:** Use structs for named fields and pairs/tuples for small groups of data. - **Inheritance:** Use inheritance carefully. Prefer composition over inheritance where applicable. - **...
在使用Mybatis框架时,你可能会遇到`org.apache.ibatis.exceptions.PersistenceException`这样的异常。这个异常通常表示在执行数据库查询操作时遇到了问题。本篇将详细分析这个问题并提供解决方法。...
unnamed_file_1744171855
jdk 17需要 新增 配置 如下 jvm参数 --add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED
而今天,我们将聚焦于一个特定的压缩包文件——named_file_1741143555.zip,从中一探stm32单片机开发的奥秘。 在该压缩包中,我们看到了几个关键的文件:简介.txt、unnamed_file以及QStlink2-master。每个文件都...
在本段内容中,我们将深入探讨与标题为“named_file_1741140251.zip”的压缩包文件相关的核心知识点。首先需要明确的是,该压缩包文件与“stm32 嵌入式 单片机”紧密相关,这是一个非常关键的信息点。在展开讨论之前...
在探讨stm32嵌入式单片机开发的相关资料时,压缩包named_file_1741139378.zip提供了一个关键的文件列表,指向了对开发者来说非常有价值的信息。首先,名为"简介.txt"的文件可能包含整个项目或压缩包内容的概述,这有...
在Java编程中,`com.google.gson.JsonObject`和`com.google.gson.JsonArray`是Google提供的Gson库中的核心类,用于处理JSON数据。Gson是一个强大的库,它允许Java对象和JSON数据之间进行互相转换,极大地简化了JSON...
java开发