`
超级板凳
  • 浏览: 94578 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

no swimlane or assignment sepcified for task

    博客分类:
  • jbpm
阅读更多
最近在学习jbpm 以前搞过shak也搞过公司自己开发的小工作流引擎,想研究下比较下^_^
当然还是从例子入手
在调试别人的例子的时候,JUnit测试时候抛了个异常如下:
   org.jbpm.jpdl.JpdlException: [[ERROR] line 7: cvc-complex-type.2.4.a: Invalid content was found starting with element 'variable'. One of '{"urn:jbpm.org:jpdl-3.1":assignment, "urn:jbpm.org:jpdl-3.1":controller, "urn:jbpm.org:jpdl-3.1":event, "urn:jbpm.org:jpdl-3.1":timer}' is expected., [WARNING] warning: no swimlane or assignment specified for task '<task xmlns="urn:jbpm.org:jpdl-3.1" blocking="false" signalling="true" priority="normal">
<variable name="name" access="read,write"/>
<variable name="day" access="read,write"/>
<variable name="note" access="read,write"/>
</task>']
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:163)
at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:172)
at com.sample.DeployProcessTest.testDeployProcessDefinition(DeployProcessTest.java:22)
。。。

分析了下 Invalid content was found starting with element 'variable'和warning: no swimlane or assignment specified for task 我觉得是在我的流程定义文件的task中variable 出了问题
回头看了下发现的确是我的定义文件写的不对
<start-state>
<task>
<variable name="name" />
<variable name="day" />
<variable name="note" />
</task>
<transition name="to_confirm" to="confirm">
<action name="requestAction" class="cn.com.nobody.jbpm.RequestAction">
<reason>我要请假</reason>
</action>
</transition>
</start-state>
应该是
<start-state>
<task>
                  <controller>
<variable name="name" />
<variable name="day" />
<variable name="note" />
                  </controller> 
</task>
<transition name="to_confirm" to="confirm">
<action name="requestAction" class="cn.com.nobody.jbpm.RequestAction">
<reason>我要请假</reason>
</action>
</transition>
</start-state>
是我的task下少了个controller ^_^ 够粗心
这里把这个异常拿出来 这样以后出现类似的错误就好处理了
改了以后还是不对,看了下JUnit里面的异常信息说我的测试代码中有空指针,看了下是说我的jbpmContext.deployProcessDefinition(processDefinition);
这一行中有控指针,断点看了下是说jbpmContext为null,往上看
//从jbmp.cfg.xml中取得jbpm的配置
JbpmConfiguration config=JbpmConfiguration.getInstance();
//创建一个jbpm容器
JbpmContext jbpmContext=config.createJbpmContext();
问题在第二句上 开始的时候我是ocnfig.getCurrentJbpmContext();这么写的,它返回的是null,应该使用createJbpmContext();前面那个方法在新版本中已经不支持了。
试了下,ok了^_^
附概念:
ProcessDefinition
定义了流程的业务逻辑,包含业务节点和流转。是有向图结构
ProcessInstance
ProcessDefinition 执行期间的体现. 包含了流程定义被解释之后的一些信息,诸如开始时间,结束时间和其他相关联的信息
Task
是ProcessDefinition的组成部分,定义了活动的具体内容
TaskInstance
Task被解释执行时的信息,有开始时间,结束时间,参与者等
有create start end 三种状态
Actor
活动的参与者
jBPM目前只需要actor的Id,对actor的具体解释是由业务应用层负责
任务创建时可以指定任务的参与者,也可以不指定
Token
是一个指针(运行期的概念),代表着一条执行路径,指向当前流程中正在执行的节点
在实例的运行期间,tokens 可能是一树形结构同一时刻,可能存在多个token,
但是只有一个root token
分享到:
评论

相关推荐

    Python库 | swimlane-10.2.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:swimlane-10.2.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | swimlane-3.0.0.tar.gz

    在这个"swimlane-3.0.0.tar.gz"压缩包中,我们获取了Swimlane库的3.0.0版本。 Swimlane库主要服务于安全操作自动化,它提供了一个平台来整合不同的安全工具和工作流程,简化安全管理。这个库使得开发人员能够通过...

    Python库 | swimlane_utils-0.0.4-py2-none-any.whl

    在Python生态系统中,`swimlane_utils-0.0.4-py2-none-any.whl` 是一个特定版本的Python库,名为`swimlane_utils`,其版本号为0.0.4。这个库特别设计用于与Swimlane平台进行交互,Swimlane是一款安全自动化和集成...

    PyPI 官网下载 | swimlane-10.1.3.tar.gz

    标题中的"PyPI 官网下载 | swimlane-10.1.3.tar.gz"指出这是一个从Python Package Index(PyPI)官方下载的资源,名为"swimlane-10.1.3",并且是以tar.gz格式压缩的。PyPI是Python开发者发布和分发开源软件的平台,...

    PyPI 官网下载 | swimlane-0.1.2.tar.gz

    标题中的"PyPI 官网下载 | swimlane-0.1.2.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为swimlane,版本为0.1.2,其分发形式是tar.gz压缩文件。PyPI是Python开发者发布自己软件包的官方...

    Python库 | swimlane_platform-8.0.1.tar.gz

    "swimlane_platform-8.0.1.tar.gz" 是一个针对Python的特定库,名为"Swimlane Platform"的版本8.0.1的压缩包。这个库可能是用于自动化、安全集成或其他企业级应用的开发。 Swimlane Platform是一个强大的自动化解决...

    Python库 | swimlane_platform-9.1.1.post3.tar.gz

    "swimlane_platform-9.1.1.post3.tar.gz" 是一个针对Python的库,其版本号为9.1.1.post3,通常这种格式表明这是一个软件发布后的补丁版本。这个压缩包采用了tar.gz格式,这是Unix/Linux系统中常见的文件打包和压缩...

    prettier-config-swimlane:Swimlane项目中使用的更漂亮的配置

    安装通过作为开发依赖项(以及 )进行安装: npm install --save-dev @swimlane/prettier-config-swimlane prettier@latest用法创建一个名为prettier.config.js的文件,其内容如下: 'use strict' ;module . exports...

    vue2-text-swimlane-用于Vue.js的Text Swimlane插件-Vue.js开发

    vue-swimlane Vue.js的文本Swimlane插件,可将单词列表显示为动画文本Swimlane。 演示演示和游乐场如何使用安装我们vue-swimlane Vue.js的Text Swimlane插件可将单词列表显示为动画文本Swimlane。 演示演示和游乐场...

    泳道图参考模板(Swimlane Diagram)

    泳道图(Swimlane Diagram),也被称为跨职能流程图,是一种UML活动图,主要用于分析和展示各个部门在同一任务流程上的不同进程。泳道图的名称由来,是因为流程图中对职能部门的划分像游泳池泳道相类似。它旨在明确...

    draggable-swimlane-editor:可拖拽的泳道图编辑器

    在IT领域,尤其是在软件开发和数据可视化中,"draggable-swimlane-editor"是一个非常有用且创新的工具,专门用于创建和编辑可拖拽的泳道图。泳道图是一种常用于流程图、工作流管理和任务分配的图表,它通过划分不同...

    jbpm安装及使用方法

    一个swimlane有多个task,可以从TaskMgmtDefinition中通过task的名称直接获取相应的task; swimlane对象有四个属性,分别是name(名字)、assignmentDelegation(分配代理类)、taskMgmtDefinition、tasks(Set 对应多...

    Python库 | swimlane_records_updater-3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:swimlane_records_updater-3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | swimlane_records_updater-24.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:swimlane_records_updater-24.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    JBPM实例.pdf

    &lt;task name="市场部经理审批" swimlane="市场部经理"&gt; ,write"/&gt; ,write"/&gt; ,write"/&gt; &lt;/task&gt; 提交给经营管理部经理审批" to="经营管理部经理审批" condition="#{pass}"/&gt; 返回给销售经理" to=...

    jbpm 4.4 学习笔记

    6. 其他:如JBPM4_PARTICIPATION、JBPM4_SWIMLANE、JBPM4_TASK、JBPM4_VARIABLE等。 总结来说,jbpm 4.4 提供了一个强大的工具,用于设计、执行和监控业务流程。通过理解这些核心概念,开发者可以灵活地构建复杂的...

    Python库 | swimlane_migrator-0.5.3-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:swimlane_migrator-0.5.3-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    jbpm任务分配管理.doc

    3. 在`assign(executionContext)`中,首先检查`task`的`swimlane`属性,如果有设置,就按照泳道规则分配;否则,可能需要通过自定义的`AssignmentHandler`进行分配。 总的来说,jbpm的任务分配机制灵活且可扩展,...

Global site tag (gtag.js) - Google Analytics