`
javaeye_jbpm
  • 浏览: 1330 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JBPM高级问题.

阅读更多
               ProcessDefinition Xml-String:

String xml = "<?xml version='1.0' encoding='GBK'?>"
+"  <process-definition  xmlns=\"urn:jbpm.org:jpdl-3.1\"  name=\"流程定义1\">"
+"  <start-state name='开始'>"
+"        <transition name=\"\" to=\"task1\"></transition>"
+"  </start-state>"
+"    <task-node name=\"task1\">"
+"    <task name=\"ade\"></task>"
+"       <transition name=\"\" to=\"decision1\"></transition>"
+"     </task-node>"
+"     <decision name=\"decision1\" expression=\"#{SP=='Y'?'true':'false'}\">"
  +"        <transition name=\"true\" to=\"state100\"></transition>"
  +"        <transition name=\"false\" to=\"state200\"></transition>"
  +"     </decision>"
  +"    <state name=\"state100\">"
  +"        <transition name=\"\" to=\"end1\"></transition>"
  +"     </state>"
  +"    <state name=\"state200\">"
  +"       <transition name=\"\" to=\"end2\"></transition>"
  +"    </state>"
  +"    <end-state name=\"end1\"></end-state>"
  +"    <end-state name=\"end2\"></end-state>"

  +"  </process-definition>";

//------------------------------------------------------
processDefinition = ProcessDefinition.parseXmlString(xml);
cxt.deployProcessDefinition(processDefinition);
instance = new ProcessInstance(processDefinition);
System.out.println("pd-id:"+processDefinition.getId()); //678,
System.out.println("pi-id:"+instance.getId()); //678,1725

//instance = cxt.getProcessInstance(4959);
Token root = instance.getRootToken();
root.signal();
ExecutionContext ec =  new ExecutionContext(root);
instance.getContextInstance().setVariable("SP", "Y");
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
Node node2 = ((Transition)root.getNode().getLeavingTransitions().iterator().next()).getTo();
String xx =  null;
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
List Nodelist = root.getNode().getLeavingTransitions();
for (int i = 0; i < Nodelist.size(); i++) {
Transition tran = (Transition) Nodelist.get(0);
Node node = tran.getTo();
  
if(node instanceof Decision){
       Decision de = (Decision)node;
       xx =  de.execute_X(ec);
        System.out.println("dec_: "+xx);
}
System.out.println(getGBK(node.getName()));
}

Result:
root::task15157
root::task15157
dec_: true
decision1

//------------------------------------------------------
        instance = cxt.getProcessInstance(4959);
Token root = instance.getRootToken();
         //root.signal();
ExecutionContext ec =  new ExecutionContext(root);
instance.getContextInstance().setVariable("SP", "Y");
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
Node node2 = ((Transition)root.getNode().getLeavingTransitions().iterator().next()).getTo();
String xx =  null;
System.out.println("root::"+getGBK(root.getNode().getName())+instance.getId());
List Nodelist = root.getNode().getLeavingTransitions();
for (int i = 0; i < Nodelist.size(); i++) {
Transition tran = (Transition) Nodelist.get(0);
Node node = tran.getTo();
         //这里的Decision节点无法还原? 为什么呢?
if(node instanceof Decision){
           Decision de = (Decision)node;
           xx =  de.execute_X(ec);
          System.out.println("dec_: "+xx);
}
System.out.println(getGBK(node.getName()));
}

Result:
root::task14959
root::task14959
decision1
//------------------------------------------------------------------------
哦...
分享到:
评论
1 楼 javaeye_jbpm 2007-04-05  
其中:  xx =  de.execute_X(ec);
execute_X() 为自己写的一个计算Decision中表达式方法.

相关推荐

    jBPM Developer Guide.pdf

    本书涵盖了jBPM框架的所有基础知识和高级概念,是学习和应用jBPM进行业务流程管理的理想资料。 #### 二、jBPM简介 **jBPM**(Java Business Process Model)是JBoss提供的一款开源业务流程管理系统(BPMS),它...

    jbpm-7.18.0.Final-examples.zip

    通过这些示例,开发者可以逐步学习 jBPM 的各个方面,从基础概念到高级功能,包括流程设计、部署、执行、任务管理和规则集成。将 jbpm-examples 导入 IntelliJ IDEA 后,可以直接运行 Test 示例,通过实践加深对 ...

    jbpm开发手册.docx

    **jbpm开发手册概述** **1.1 目标读者** `jbpm开发手册`是为有经验...手册的详细内容涵盖了jBPM的各个方面,包括基本概念、核心组件、高级特性和集成策略,旨在帮助开发者充分利用jBPM进行高效的企业级流程管理开发。

    JBPM_教程.zip

    9. **案例分析**:通过实际的业务场景,展示如何使用JBPM解决具体问题,提高流程效率。 10. **高级特性**:涵盖子流程、并发流程、事件驱动和流程版本管理等进阶话题。 此外,压缩包中的`test.txt`可能是辅助材料...

    jBPM3.x-4.x-5.X资料大全

    最后,“JBPM4教程.pdf”是对jBPM4的详细教程,它可能包含从基础概念到高级特性的全面讲解,对于想要深入理解jBPM4的开发者来说是一份宝贵的资源。 通过学习这些文档,开发者不仅可以了解jBPM的各个版本之间的差异...

    jBPM Developers Guide.pdf

    - **高级构造** - **嵌入子流程**:介绍如何在主流程中嵌套子流程。 - **定时器启动事件**:解释如何使用定时器作为启动事件。 - **中间事件**:介绍流程中的中间事件及其作用。 - **中间捕获事件:定时器**:...

    jbpm-bpel.pdf

    jBPM支持高级的数据处理功能,如变量映射、数据转换等,确保了数据的一致性和完整性。 3. **与流程的交互**:除了传统的服务调用之外,BPEL还支持用户任务、事件处理等多种与流程交互的方式。这使得业务流程更加...

    jBPM4.4用户指南.docx

    jBPM 4.4 用户指南 jBPM 4.4 是一个功能强大且灵活的工作流引擎,可以运行在独立的服务器上或者嵌入任何...通过阅读该用户指南,用户可以快速了解 jBPM 的安装、配置、使用和开发,并掌握 jBPM 的基础知识和高级技术。

    JBPM5_use.zip_jBPM5

    通过阅读这份指南,初学者可以快速掌握jbPM5的基本用法,并逐步深入到高级功能的探索。 在学习过程中,建议按照指南的步骤一步步操作,同时配合实际的项目实践,理解每个概念的实际应用。此外,利用jbPM5的社区资源...

    jbpm3中文文档.rar

    - **常见问题与解决办法**:列出了一些在使用jbpm3时可能遇到的问题及其解决策略。 通过研读这份中文文档,你将能够掌握jbpm3的基本操作,理解其设计理念,以及如何在实际项目中利用它来提升业务流程效率。同时,这...

    JBPM4.4用户手册.doc

    JBPM4.4用户手册是一份详尽的参考资料,从基础安装到高级功能,为用户提供了全面的指南。通过学习,开发者不仅能理解jBPM的工作原理,还能熟练地设计、部署和管理流程,以满足企业级工作流需求。

    JBPM高级开发指南

    JBPM高级开发指南,提供了JBPM开发中遇到问题的解决方案。JBPM流程设计中的问题等等

    jbpm.rar_jbpm_jbpm tuxedo_工作流

    通过"jbpm教程.chm"文件,学习者可以深入探究jbpm的各个方面,从基础概念到高级特性,逐步掌握这个强大的工作流管理系统。同时,"www.pudn.com.txt"可能是提供额外资源或链接的文本文件,可以帮助扩展学习资料。 ...

    jbpm-jpdl-3.2.3.zip

    9. **社区支持**:作为开源项目,jbpm拥有活跃的开发者社区,提供了丰富的文档、示例和问题解答,有助于用户快速上手和解决问题。 10. **版本控制**:jbpm-jpdl-3.2.3是该项目的一个稳定版本,虽然现在jbpm已经更新...

    jBPM4.1中文用户手册.pdf

    - **示例项目**:通过几个具体的应用场景展示了如何利用jBPM解决实际问题,如订单处理流程、审批流程等。 - **最佳实践**:分享了一些在设计和实施jBPM项目时的经验教训,帮助开发者避免常见陷阱。 ### 社区与支持 ...

    jbpm-4.4实用教材helloword.txt

    除了使用JPDL定义流程外,还可以通过JBPM提供的API来进行更高级的操作。例如: ```java // 创建流程引擎实例 ProcessEngine processEngine = new JbpmContext(); // 获取流程定义 ProcessDefinition pd = ...

    spring整合JPBM3.2

    通过以上步骤,开发者可以实现Spring容器对Jbpm的管理和控制,实现流程的自动化启动、任务调度以及事务管理等高级功能。在实际开发过程中,根据具体需求,可能还需要对异常处理、日志记录、权限控制等方面进行定制化...

    工作流入门jbpm开发指南

    jbPM不仅支持流程的建模,还提供了监控、审计和优化等高级功能。通过jbPM,开发者可以将业务逻辑与应用程序代码解耦,使得流程能够根据业务需求进行动态调整。 二、jbPM入门 1. **安装与配置**: 首先,你需要下载...

Global site tag (gtag.js) - Google Analytics