`
suhuanzheng7784877
  • 浏览: 693098 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47309
社区版块
存档分类
最新评论

JBPM4学习总结之2——发布流程模板、流程实例

    博客分类:
  • jbpm
阅读更多

1.       发布流程模板

当我们通过流程编辑器编辑好了流程之后就可以将这个流程模板发布到数据库中。我觉得定义一个流程模板更像是定义一个Java Class类,发布一个流程模板就好像是编译这个类成为class,而流程实例就好像是一个Java类的一个实例对象。

最常用的是用Java代码的方式发布流程~~~还有一个是利用Ant脚本发布流程,不过一般在开发阶段十分少用。

// 加载默认的jbpm.cfg.xml文件

ProcessEngine processEngine = new Configuration().buildProcessEngine();

 

/**

 * 发布流程

 */

public void test01Deploy() {

 

         String deployId = repositoryService.createDeployment()

                            .addResourceFromClasspath("decision.jpdl.xml").deploy();

 

         System.out.println(deployId);

}

这样就把流程模板为decision的流程发布到了数据库中,发布成功后,jbpm相关表会变化如下:

jbpm4_deployment

 jbpm4_deployprop

jbpm4_lob

jbpm4_property

 

比较重要的几个服务接口,其他服务接口都是从主接口——引擎服务接口ProcessEngine获得的。

// 引擎服务接口

ProcessEngine processEngine = new Configuration().buildProcessEngine();

 

// 资源服务,流程模板的部署、查询、删除

RepositoryService repositoryService = processEngine.getRepositoryService();

 

// 执行服务,设置流程实例的发起、执行

ExecutionService executionService = processEngine.getExecutionService();

 

// 流程管理接口、异步工作相关执行

ManagementService managementService = processEngine.getManagementService();

 

// 人工任务服务接口,对任务task的查询、提交、删除、保存

TaskService taskService = processEngine.getTaskService();

 

// 历史记录操作接口

HistoryService historyService = processEngine.getHistoryService();

 

// 身份验证服务

IdentityService identityService = processEngine.getIdentityService();

 

1.       根据流程模板发起一个流程实例

定义好了模板后,就可以建立此流程模板的实例对象了,实例对象就是现实中一个个真正的流程事件了。

1.       直接发起StateChoice流程实例

// 开始process流程

ProcessInstance processInstance = executionService.startProcessInstanceByKey("StateChoice");

 

2.       发起流程时加入流程实例变量

HashMap<String, Object> parm = new HashMap<String, Object>();

parm.put("MyId", "13000000000");

parm.put("MyName", "liuyan");

parm.put("MyDate", new Date());

 

ProcessInstance processInstance = executionService.startProcessInstanceById("StateChoice -1", parm);

这样在发起流程的时候通过一个HashMap将流程变量传到整个流程中,可能以后的某一个节点会用到“当初”传入的变量。

startProcessInstanceByKey:根据StateChoice找到最新的部署版本去发起流程。

startProcessInstanceById:根据StateChoice的版本(1就是第1版本)去发起流程。

如果传入流程实例的是一个自定义的复杂对象,则该对象必须实现Serializable接口,以便流程实例上下文的变量持久化。

  • 大小: 8.3 KB
  • 大小: 8.6 KB
  • 大小: 12.7 KB
  • 大小: 8 KB
分享到:
评论

相关推荐

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    jBPM-jPDL学习笔记——流程设计与控制

    jBPM-jPDL学习笔记——流程设计与控制

    JBPM采购申请系统——09_任务实例与任务分配.7z

    JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——...

    jBPM4学习总结

    jBPM学习总结,涵盖jBPM4的各个基础知识点,及实例解析。

    JBPM4 开发文档 实例 流程

    JBPM4 开发文档 实例 流程 JBPM4 开发文档 实例 流程 JBPM4 开发文档 实例 流程

    JBPM采购申请系统——05_构建JBPM数据库.7z

    JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...

    JBPM采购申请系统——02_Eclipse与JBPM.7z

    JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z ...

    JBPM采购申请系统——13_JBPM异步(二).7z

    JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM...

    JBPM采购申请系统——12_JBPM异步(一).7z

    JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM...

    JBPM采购申请系统——07_JBPM中的脚本语言.7z

    JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM...

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_...

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一)...

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...

    JBPM4 学习资料

    整理的别人JBPM4 学习资料, 工作流学习文档

    jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL

    jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请...

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请...

    JBPM采购申请系统——18_JBPM采购申请系统(二).7z

    JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请系统——18_JBPM采购申请系统(二).7z JBPM采购申请...

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z

    JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请系统——15_JBPM开发报销系统(二).7z JBPM采购申请...

Global site tag (gtag.js) - Google Analytics