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
//------------------------------------------------------------------------
哦...
分享到:
相关推荐
本书涵盖了jBPM框架的所有基础知识和高级概念,是学习和应用jBPM进行业务流程管理的理想资料。 #### 二、jBPM简介 **jBPM**(Java Business Process Model)是JBoss提供的一款开源业务流程管理系统(BPMS),它...
通过这些示例,开发者可以逐步学习 jBPM 的各个方面,从基础概念到高级功能,包括流程设计、部署、执行、任务管理和规则集成。将 jbpm-examples 导入 IntelliJ IDEA 后,可以直接运行 Test 示例,通过实践加深对 ...
**jbpm开发手册概述** **1.1 目标读者** `jbpm开发手册`是为有经验...手册的详细内容涵盖了jBPM的各个方面,包括基本概念、核心组件、高级特性和集成策略,旨在帮助开发者充分利用jBPM进行高效的企业级流程管理开发。
9. **案例分析**:通过实际的业务场景,展示如何使用JBPM解决具体问题,提高流程效率。 10. **高级特性**:涵盖子流程、并发流程、事件驱动和流程版本管理等进阶话题。 此外,压缩包中的`test.txt`可能是辅助材料...
最后,“JBPM4教程.pdf”是对jBPM4的详细教程,它可能包含从基础概念到高级特性的全面讲解,对于想要深入理解jBPM4的开发者来说是一份宝贵的资源。 通过学习这些文档,开发者不仅可以了解jBPM的各个版本之间的差异...
- **高级构造** - **嵌入子流程**:介绍如何在主流程中嵌套子流程。 - **定时器启动事件**:解释如何使用定时器作为启动事件。 - **中间事件**:介绍流程中的中间事件及其作用。 - **中间捕获事件:定时器**:...
jBPM支持高级的数据处理功能,如变量映射、数据转换等,确保了数据的一致性和完整性。 3. **与流程的交互**:除了传统的服务调用之外,BPEL还支持用户任务、事件处理等多种与流程交互的方式。这使得业务流程更加...
jBPM 4.4 用户指南 jBPM 4.4 是一个功能强大且灵活的工作流引擎,可以运行在独立的服务器上或者嵌入任何...通过阅读该用户指南,用户可以快速了解 jBPM 的安装、配置、使用和开发,并掌握 jBPM 的基础知识和高级技术。
通过阅读这份指南,初学者可以快速掌握jbPM5的基本用法,并逐步深入到高级功能的探索。 在学习过程中,建议按照指南的步骤一步步操作,同时配合实际的项目实践,理解每个概念的实际应用。此外,利用jbPM5的社区资源...
- **常见问题与解决办法**:列出了一些在使用jbpm3时可能遇到的问题及其解决策略。 通过研读这份中文文档,你将能够掌握jbpm3的基本操作,理解其设计理念,以及如何在实际项目中利用它来提升业务流程效率。同时,这...
JBPM4.4用户手册是一份详尽的参考资料,从基础安装到高级功能,为用户提供了全面的指南。通过学习,开发者不仅能理解jBPM的工作原理,还能熟练地设计、部署和管理流程,以满足企业级工作流需求。
JBPM高级开发指南,提供了JBPM开发中遇到问题的解决方案。JBPM流程设计中的问题等等
通过"jbpm教程.chm"文件,学习者可以深入探究jbpm的各个方面,从基础概念到高级特性,逐步掌握这个强大的工作流管理系统。同时,"www.pudn.com.txt"可能是提供额外资源或链接的文本文件,可以帮助扩展学习资料。 ...
9. **社区支持**:作为开源项目,jbpm拥有活跃的开发者社区,提供了丰富的文档、示例和问题解答,有助于用户快速上手和解决问题。 10. **版本控制**:jbpm-jpdl-3.2.3是该项目的一个稳定版本,虽然现在jbpm已经更新...
- **示例项目**:通过几个具体的应用场景展示了如何利用jBPM解决实际问题,如订单处理流程、审批流程等。 - **最佳实践**:分享了一些在设计和实施jBPM项目时的经验教训,帮助开发者避免常见陷阱。 ### 社区与支持 ...
除了使用JPDL定义流程外,还可以通过JBPM提供的API来进行更高级的操作。例如: ```java // 创建流程引擎实例 ProcessEngine processEngine = new JbpmContext(); // 获取流程定义 ProcessDefinition pd = ...
通过以上步骤,开发者可以实现Spring容器对Jbpm的管理和控制,实现流程的自动化启动、任务调度以及事务管理等高级功能。在实际开发过程中,根据具体需求,可能还需要对异常处理、日志记录、权限控制等方面进行定制化...
jbPM不仅支持流程的建模,还提供了监控、审计和优化等高级功能。通过jbPM,开发者可以将业务逻辑与应用程序代码解耦,使得流程能够根据业务需求进行动态调整。 二、jbPM入门 1. **安装与配置**: 首先,你需要下载...