`
zybing
  • 浏览: 457374 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
jBPM4.4:   源头是Configuration,从Configuration生成引擎:ProcessEngine;   ProcessEngine可以得到以下几个Service:   RepositoryService ExecutionService TaskService HistoryService ManagementService 这几个Service都是对外提供的服务,通过CommandService ...
重新深入了解jBPM4.4的数据库表、以及之间的关系:   jBPM4.4的数据库表分成以下几类: 和系统相关: 这个只有JBPM4_PROPERTY 和ProcessDefinition相关的表: 有:JBPM4_DEPLOYMENT/JBPM4_DEPLOYPROP/JBPM4_LOB 和开启一个instance相关: 有JBPM4_EXECUTION/JBPM4_TASK/JBPM4_JOB/JBPM4_VARIABLE/JBPM4_SWIMLANE/JBPM_PARTICIPATION 和历史相关的表: JBPM4_HIS_ACTINST/DETAIL/PROCIN ...
工作场景: 有一项任务需要完成,不同的部门领导根据实际情况,有的交给一个人完成,有的会交给2、3甚至更多的人完成,这个时候,流程就是由程序进行设置了,而无法在画流程图的时候写死了。   找到了一些资料: 如: http://yy629.iteye.com/blog/660701 --- 比较全面 http://phoenix-clt.iteye.com/blog/428242   做了一下,可以通过设置subtask来创建会签流程,有问题正在解决: 1. 如果会签中的一员已经signal了,而其他人还没有完成,怎么把这个subtask complete掉,否则只要其他人没 ...
  ProcessDefinition :      这个最好理解,就是流程的定义,也就相当于规范。      ProcessDefinition也有id,这个id是 {key}-{version}      在部署过程中,会把一个id分配给流程定义。 这个id的格式为{key}-{version}, key和version之间使用连字符连接。      如果没有提供key, 会在名字的基础自动生成。 生成的key会把所有不是字母和数字的字符替换成下划线。 ProcessInstance :      这个也比较好理解,就是流程的一个实例。      在系统中,也有一个Pro ...
在jBPM中,分配任务可以有几种方式: 按照分配对象,可以分为: 分配给某个/些用户 或者分配给某个/些用户组。   从分配的方式看,可以有以下几种: 在流程设计的时候,就直接指定用户/用户组: 在流程设计的时候,可以通过assignee方式,直接分配给用户 明确的分配给某用户/用户组: <task name="task1" assignee="username" > 这样直接把工作分配给该用户,这里只能是用户 从环境变量来 <task name="task1" assignee=& ...
通过repositoryService, 获取一个ProcessDefinitionQuery,   通过ProcessDefinitionQuery.list,可以获取到现有的全部流程。   注意: 一个流程有几个版本,就会查出来几条记录。   这个查询 结合了JBPM4_DEPLOYMENT表和JBPM4_DEPLOYPROP表(打开Hibernate的show_sql可以看到查询语句), 通过 pdid、pdkey、pdversion进行联合查询。   如果只列出最新的版本,需要自己通过ProcessDefinition的key来判断是否同一个流程,然后通过vers ...
发布了流程后,创建一个实例,进行执行。 ProcessEngine processEngine = new Configuration() .buildProcessEngine(); ExecutionService executionService = processEngine.getExecutionService(); ProcessInstance processInstance = executionService.startProcessInstanceByKey("testfile1");   执行完成后,在数据库中多了 ...
开始自己着手尝试:先发布自己第一个流程:   用Eclipse画流程图,除了开始和结束节点外,只有一个Task节点: <process name="testfile" xmlns="http://jbpm.org/4.4/jpdl" key="testfile1" version="1" description="第一个测试程序"> ....   ...
Tomcat5.5中,缺省是不能使用link目录的。   可以通过修改配置,使得Tomcat支持Link的目录结构   修改方式: 在server.xml中的Context节点做如下调整:   <Context allowLinking ="true" ....原有的参数> <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" /> </Context&g ...
jDPL是jBPM的突出的流程语言。jPDL的目标 是尽量精简和尽可能的开发者友好   <?xml version="1.0" encoding="UTF-8"?> <process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl"> <start> <transi ...
从jBPM 4.0开始,一个新的API被介绍使用查询系统, 可以覆盖大多数你可以想到的查询。   开发者需要编写企业特定查询时 当然也可以使用Hibenrate。但是对大多数用例来说, 查询API是不足够的。 查询可以写成同ideas方式(? ),用于主要的jBPM概念: 流程实例,任务,发布,历史流程,等等。   List<ProcessInstance> results = executionService.createProcessInstanceQuery() ...
在流程实例执行的过程中,会不断触发事件。 从那些事件中,运行和完成流程的历史信息会被收集到历史表中。 HistoryService 提供了 对那些信息的访问功能。   如果想查找某一特定流程定义的所有流程实例, 可以像这样操作: List<HistoryProcessInstance> historyProcessInstances = historyService .createHistoryProcessInstanceQuery() .processDefinitionId("ICL-1" ...
TaskService的主要目的是提供对任务列表的访问途径。 例子代码会展示出如何为id为johndoe 的用户获得任务列表 List<Task> taskList = taskService.findPersonalTasks("johndoe");   一般来说,任务会对应一个表单,然后显示在一些用户接口中。 表单需要可以读写与任务相关的数据。 // read task variables Set<String> variableNames = taskService.getVaria ...
最新的流程实例 -- ByKey 下面是为流程定义启动一个新的流程实例的最简单也是 最常用的方法: ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL"); 上面service的方法会去查找 key为ICL的最新版本的流程定义, 然后在最新的流程定义里启动流程实例。 当key为ICL的流程部署了一个新版本, startProcessInstanceByKey方法会自动切 ...
RepositoryService 包含了用来管理发布资源的所有方法。   Deploying a process部署流程   String deploymentid = repositoryService.createDeployment() .addResourceFromClasspath("org/jbpm/examples/services/Order.jpdl.xml") .deploy();   通过上面的addResourceFromClass 方法, 流程定义XML的内容可以从文件, 网址,字 ...
Global site tag (gtag.js) - Google Analytics