![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jBPM/Activiti
cfy_zybing
这个作者很懒,什么都没留下…
展开
-
jBPM4.4: 创建数据库表
下载完jBPM4.4.zip, 解压开来。 解压后,jbpm-4.4目录中有install目录,所有的东西都在里面。 首先安装数据库schema:在install的jdbc目录中,修改oracle.properties文件(安装的是oracle数据库),将Oracle的驱动复制到jbpm-4.4的lib目录中,这个目录中都是jbpm运行所需要的jar包,...原创 2010-08-17 14:03:23 · 137 阅读 · 0 评论 -
jBPM4.4: 动态创建执行路径 -- 类似与会签等
工作场景: 有一项任务需要完成,不同的部门领导根据实际情况,有的交给一个人完成,有的会交给2、3甚至更多的人完成,这个时候,流程就是由程序进行设置了,而无法在画流程图的时候写死了。 找到了一些资料:如:http://yy629.iteye.com/blog/660701 --- 比较全面http://phoenix-clt.iteye.com/blog/428242...原创 2010-08-25 16:23:52 · 152 阅读 · 0 评论 -
jBPM4.4 -- 深入了解数据库结构、关系
重新深入了解jBPM4.4的数据库表、以及之间的关系: jBPM4.4的数据库表分成以下几类:和系统相关:这个只有JBPM4_PROPERTY和ProcessDefinition相关的表:有:JBPM4_DEPLOYMENT/JBPM4_DEPLOYPROP/JBPM4_LOB和开启一个instance相关:有JBPM4_EXECUTION/JBPM4_TASK/...原创 2010-08-27 17:13:23 · 105 阅读 · 0 评论 -
jBPM4.4:在看开发指南之前总结一下
jBPM4.4: 源头是Configuration,从Configuration生成引擎:ProcessEngine; ProcessEngine可以得到以下几个Service: RepositoryServiceExecutionServiceTaskServiceHistoryServiceManagementService这几个Service都...原创 2010-08-31 10:08:53 · 79 阅读 · 0 评论 -
jBPM4.4:ProcessFactory和ProcessDefinitionBuilder
在文档中,有例子可以创建自己的流程,用的是ProcessFactory 在devguild中的7.4的ExternalActivity中提到第一次 实际拿到jBPM4.4中,没有这个ProcessFactory。 网上找资料,在论坛上找到了处理方法(http://community.jboss.org/message/529684)现在用 ProcessDefini...原创 2010-08-31 15:44:27 · 189 阅读 · 0 评论 -
jBPM4.4:完成任务的几种方法
开始了一个Process,需要完成任务,完成任务有以下几种方法: 1. ExecutionService来完成任务: 如果得到了正在执行的Execution(可以通过好几种途径获取),可以通过ExecutionService来完成这个Execution executionService.signalExecutionById(executionI...原创 2010-09-02 13:46:35 · 148 阅读 · 0 评论 -
jBPM4.4:动态创建连接
参考了这篇文档的思路:http://man1900.iteye.com/blog/650580 把流程简单的写一下:获取到当前流程的ProcessDefinitionImpl (注意:这里面使用到实现的方法,光采用接口无法实现功能)可以通过ProcessInstance获取到ProcessDefinitionId,通过ProcessDefinitionQuery获取到Pr...原创 2010-09-02 18:23:02 · 104 阅读 · 0 评论 -
jBPM4.4:ForEach的使用--动态设置参与人数
流程确定的情况下,有时候完成一个步骤人数不确定,在任务发布的时候有领导确定参与完成的人员。 为了完成这样的情况,可以到了这一步,通过配置动态的生成一些subTask,通过subTask给每个人进行分派工作。 其实还可以通过jBPM4.4中的foreach的方式进行完成(注意:这个功能还在孵化器中)。 如:完成一个审核工作,有些工作需要2个人完成,有些工作需要3个人完成,在开...原创 2010-09-13 14:34:39 · 205 阅读 · 0 评论 -
jBPM4:接在现有的系统上,需要更换用户体系
在现有的应用上,接入jBPM,要修改的就是jBPM的用户体系。 jBPM的用户体系,在数据库中有以下几张表:JBPM4_ID_USER : jBPM的用户表JBPM4_ID_GROUP : jBPM的用户组表JBPM4_MEMBERSHIP : 用户和用户组之间的关系 JBPM4_TASK : 任务表,其中的ass...原创 2010-10-08 17:59:52 · 71 阅读 · 0 评论 -
【jBPM】jbpm怎么获取下一个节点的任务定义,注意不是任务实例。
http://jbpm.group.iteye.com/group/topic/5890 jbpm怎么获取下一个节点的任务定义,注意不是任务实例。 已知下一个节点是任务节点,从当前任务实例中如何获取下一个节点,如何获取下一个节点定义的任务 public void getNextTasksByNode(Node node,JbpmContext context){ L...原创 2011-08-27 06:19:31 · 178 阅读 · 0 评论 -
jBPM4.4:查找任务完成过程
在jBPM中,历史的任务,通过historyService可以查询执行顺序 在http://zybing.iteye.com/admin/blogs/739903 中,已经讲了,可以把已经结束的任务,通过查询一步步获取执行的顺序:列出执行的过程: Java代码 // 根据任务开始的时间进行排序,列出来 List<HistoryActivity...原创 2011-08-29 11:50:06 · 91 阅读 · 0 评论 -
jBPM4.4:如何图示化显示当前的流程执行到了哪一步骤
流程执行时,有时候需要看一下当前的工作卡在哪一步了,对于熟悉流程的人员来说,看到节点的名字即可。对于不熟悉的人员来讲,就需要把整个流程图显示出来,把当前的工作点标注出来。 在生成工作流程xml文件的时候,已经生成了一个工作流程的png流程图,只需要在这个png上把当前活跃的节点表示出来即可。网上的一种做法很简单,就是在这个png上再加一个div层,把执行的活跃节点框起来就可以了。 ...原创 2010-10-29 11:17:09 · 143 阅读 · 0 评论 -
jBPM4.4:配置(包括和Spring的整合,和Hibernate配置)
jBPM4.4,获取ProcessEngine是通过Configuration.getProcessEngine()中获取的。 Configuration.getProcessEngine()的代码如下: /** get the singleton ProcessEngine that is created from the default * configuratio...原创 2010-11-08 14:50:40 · 134 阅读 · 0 评论 -
jBPM4:sub-process
看了一下sub-process,感觉比想象的要简单。 需要掌握的:1. 如何把父流程的值传入到子流程2. 如何把子流程的值传出到父流程3. 父流程如何根据子流程的处理结果进行流转。 子流程就是一个完整的流程,不再多说。 1. 父流程的值传入到子流程 <parameter-in var="" subvar="" /> var :父流...原创 2010-11-16 10:03:15 · 98 阅读 · 0 评论 -
jBPM4:在Listen中使用Spring的Bean
jBPM和Spring结合,在spring中配置了大量的Bean,其中也包括在jBPM中的event listener。而且在listener中也使用Spring配置了大量的属性。 在jBPM的 流程定义文件中,可以直接使用bean进行配置: <event-listener expr="${processListener}" > processListe...原创 2010-12-07 10:23:39 · 93 阅读 · 0 评论 -
从JBPM4以后的走向
从JBPM4以后, 原来jBPM的设计师Tom Baeyens改投了Alfresco,开始一个新的BPM项目Activiti;其核心是超快速,稳定的BPMN 2.0流程引擎。它易于与Spring集成使用。 Activiti从jBPM4发展来,从jBPM4学习Activiti的成本小,反而jBPM5和原来的jBPM基本没任何关系,好像是另一套系统。Activiti的Maven库位...原创 2011-12-23 09:47:05 · 97 阅读 · 0 评论 -
jBPM4.4:ProcessDefinition/ProcessInstance/Execution/Task关系和区别
ProcessDefinition: 这个最好理解,就是流程的定义,也就相当于规范。 ProcessDefinition也有id,这个id是 {key}-{version} 在部署过程中,会把一个id分配给流程定义。 这个id的格式为{key}-{version}, key和version之间使用连字符连接。 如果没有提供key, 会在名字...原创 2010-08-24 16:06:02 · 211 阅读 · 0 评论 -
jBPM4.4:分配任务的几种方式
在jBPM中,分配任务可以有几种方式:按照分配对象,可以分为:分配给某个/些用户或者分配给某个/些用户组。 从分配的方式看,可以有以下几种:在流程设计的时候,就直接指定用户/用户组:在流程设计的时候,可以通过assignee方式,直接分配给用户明确的分配给某用户/用户组:<task name="task1" assignee="username"...原创 2010-08-24 11:19:42 · 140 阅读 · 0 评论 -
jBPM的install目录中的build.xml
在jBPM4.4目录中的install目录中,有一个build.xml,其中有大量的应用: 和安装到应用服务器中相关的有(这个里面有下载应用服务器、安装到数据库,安装到eclipse,应用服务器启动关闭等等): 和tomcat相关的有这些(把tomcat换成jboss,就是和jboss相关的部分) delete.tomcat Delete...原创 2010-08-17 14:16:43 · 64 阅读 · 0 评论 -
把jBPM4.4安装进tomcat
jBPM4.4的build.xml中,提供了将jBPM安装进tomcat的几条命令: demo.setup.tomcat: 会从网上下载tomcat安装,机器在内部网而且已经有了tomcat,不需要用这个 <target name="demo.setup.tomcat" depends="delete.tomcat, install.tomcat, ins...原创 2010-08-17 14:52:14 · 94 阅读 · 0 评论 -
jBPM4.4安装时候数据库的配置
在通过ant执行build.xml,安装jBPM时候,数据库的配置如下: jBPM目前安装在tomcat中, 和数据库进行相连,在build.xml中:<target name="install.jbpm.into.tomcat" description="Deploy jBPM to Tomcat">由这个target生成 install.jb...原创 2010-08-17 16:06:04 · 97 阅读 · 0 评论 -
jBPM4.4:增加测试用户
还是使用build.xml,增加测试用户 执行:ant -Ddatabase=oracle load.example.identities 这个脚本在数据库中增加相关的用户组、用户以及之间的关系: 执行的sql脚本为:install/src/demo/example.identities.sql脚本 增加了4个组以及4个用户,以及他们之间的关系。 用户组表:...原创 2010-08-17 16:23:11 · 83 阅读 · 0 评论 -
jBPM4.4:把GPD插件安装进Eclipse3.5中
在Eclipse3.5中,安装jBPM4.4的GPD插件。 插件的zip包在 jBPM-4.4/install/src/gpd中的:jbpm-gpd-site.zip 按照文档,这个插件安装后还需要进行一些设置: 1. 配置jBPM运行时点击 Window --> Preferences 选择 JBoss jBPM --> jBPM 4...原创 2010-08-17 17:14:32 · 128 阅读 · 0 评论 -
jBPM4.4:ProcessEngine流程引擎
在jBPM内部通过各种服务相互作用。 服务接口可以从ProcessEngine中获得, 它是从Configuration构建的。 可以有2种方式从Configuration中获得ProcessEngine:1. 通过classpath根目录下 默认的配置文件jbpm.cfg.xml创建一个ProcessServicePr...原创 2010-08-18 09:40:21 · 102 阅读 · 0 评论 -
jBPM4.4:RepositoryService服务
RepositoryService包含了用来管理发布资源的所有方法。 Deploying a process部署流程 String deploymentid = repositoryService.createDeployment() .addResourceFromClasspath("org/jbpm/examples/services/Order.jpdl....原创 2010-08-18 09:55:11 · 106 阅读 · 0 评论 -
jBPM4.4:ExecutionService服务
最新的流程实例 -- ByKey下面是为流程定义启动一个新的流程实例的最简单也是 最常用的方法: ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL");上面service的方法会去查找 key为ICL的最新版本的流程定义, ...原创 2010-08-18 10:35:44 · 279 阅读 · 0 评论 -
jBPM4.4:TaskService任务服务
TaskService的主要目的是提供对任务列表的访问途径。 例子代码会展示出如何为id为johndoe 的用户获得任务列表 List<Task> taskList = taskService.findPersonalTasks("johndoe"); 一般来说,任务会对应一个表单,然后显示在一些用户接口中。 表单需要可以读写与任务相...原创 2010-08-18 10:42:37 · 448 阅读 · 0 评论 -
jBPM4.4:HistoryService历史服务
在流程实例执行的过程中,会不断触发事件。 从那些事件中,运行和完成流程的历史信息会被收集到历史表中。 HistoryService提供了 对那些信息的访问功能。 如果想查找某一特定流程定义的所有流程实例, 可以像这样操作:List<HistoryProcessInstance> historyProcessInstan...原创 2010-08-18 10:45:35 · 153 阅读 · 0 评论 -
jBPM4.4:查询 API
从jBPM 4.0开始,一个新的API被介绍使用查询系统, 可以覆盖大多数你可以想到的查询。 开发者需要编写企业特定查询时 当然也可以使用Hibenrate。但是对大多数用例来说, 查询API是不足够的。 查询可以写成同ideas方式(?),用于主要的jBPM概念: 流程实例,任务,发布,历史流程,等等。 List<Pro...原创 2010-08-18 10:49:48 · 75 阅读 · 0 评论 -
jBPM4.4:jPDL
jDPL是jBPM的突出的流程语言。jPDL的目标 是尽量精简和尽可能的开发者友好 <?xml version="1.0" encoding="UTF-8"?><process name="Purchase order" xmlns="http://jbpm.org/4.4/jpdl"> <start>原创 2010-08-18 11:36:07 · 133 阅读 · 0 评论 -
jBPM4.4:发布自己第一个流程
开始自己着手尝试:先发布自己第一个流程: 用Eclipse画流程图,除了开始和结束节点外,只有一个Task节点:<process name="testfile" xmlns="http://jbpm.org/4.4/jpdl" key="testfile1" version="1"...原创 2010-08-19 11:41:28 · 112 阅读 · 0 评论 -
jBPM4.4:创建一个流程的实例
发布了流程后,创建一个实例,进行执行。ProcessEngine processEngine = new Configuration() .buildProcessEngine();ExecutionService executionService = processEngine.getExecutionService();ProcessInstance proc...原创 2010-08-19 13:42:14 · 128 阅读 · 0 评论 -
jBPM4.4:获取现有的流程
通过repositoryService, 获取一个ProcessDefinitionQuery, 通过ProcessDefinitionQuery.list,可以获取到现有的全部流程。 注意: 一个流程有几个版本,就会查出来几条记录。 这个查询 结合了JBPM4_DEPLOYMENT表和JBPM4_DEPLOYPROP表(打开Hibernate的show_sql可以看到...原创 2010-08-19 16:50:31 · 109 阅读 · 0 评论 -
jBPM4.4+SpringSecurity用户合并到自己体系中来
jbPM4.4中的用户:见:http://zybing.iteye.com/admin/blogs/778919在jbpm.wire.bindings.xml配置中,这2个和用户相关: <binding class="org.jbpm.pvm.internal.wire.binding.IdentitySessionBinding" /> ...原创 2011-12-30 10:53:28 · 161 阅读 · 0 评论