Jbpm

所属分类:电子书籍
开发工具:Java
文件大小:13227KB
下载次数:122
上传日期:2009-02-26 15:03:34
上 传 者yezhou
说明:  jbpm工作流的好例子啊,工资的看见发生看的份开始
(jbpm,goodgoodogodgodogodog)

文件列表:
Jbpm\.classpath (2826, 2007-08-25)
Jbpm\.project (380, 2007-08-25)
Jbpm\bin\.gpd.process.xml (792, 2009-02-19)
Jbpm\bin\com\jbpm\Document.class (1375, 2009-02-20)
Jbpm\bin\com\jbpm\Document.hbm.xml (590, 2009-02-19)
Jbpm\bin\com\jbpm\HibernateUtils.class (1176, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_01_CreateTable.class (507, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_02_DeployProcessDefinition.class (1171, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_03_CreateDocument.class (1272, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_04_CreateProcessInstance.class (2211, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_05_SubmitDocument.class (1679, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_06_CurrentNode.class (1910, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_07_SearchMyTaskList.class (2661, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_08_NextNode.class (3355, 2009-02-20)
Jbpm\bin\com\jbpm\Jbpm_09_ProcessInstanceIsEnded.class (1925, 2009-02-20)
Jbpm\bin\com\jbpm (0, 2009-02-20)
Jbpm\bin\com (0, 2009-02-20)
Jbpm\bin\hibernate.cfg.xml (10252, 2009-02-19)
Jbpm\bin\log4j.properties (1465, 2007-08-25)
Jbpm\bin\process.jpg (9597, 2009-02-19)
Jbpm\bin\process.xml (1180, 2009-02-19)
Jbpm\bin (0, 2009-02-20)
Jbpm\lib\ant-1.6.5.jar (1034049, 2005-08-13)
Jbpm\lib\ant-antlr-1.6.5.jar (5667, 2005-08-13)
Jbpm\lib\ant-junit-1.6.5.jar (74237, 2005-08-13)
Jbpm\lib\ant-launcher-1.6.5.jar (9180, 2005-08-13)
Jbpm\lib\ant-swing-1.6.5.jar (6763, 2005-08-13)
Jbpm\lib\antlr-2.7.6.jar (443432, 2006-05-05)
Jbpm\lib\antlr.license.txt (1249, 2004-06-03)
Jbpm\lib\apache.license-2.0.txt (11560, 2004-06-03)
Jbpm\lib\apache.license.txt (2717, 2004-06-03)
Jbpm\lib\asm-attrs.jar (16777, 2005-03-17)
Jbpm\lib\asm.jar (26360, 2005-03-17)
Jbpm\lib\bsh.jar (242154, 2007-03-16)
Jbpm\lib\c3p0-0.9.0.jar (487360, 2005-07-16)
Jbpm\lib\c3p0.license.txt (26934, 2004-06-03)
Jbpm\lib\cglib-2.1.3.jar (282338, 2005-12-02)
Jbpm\lib\checkstyle-all.jar (1204897, 2004-08-08)
Jbpm\lib\cleanimports.jar (142704, 2004-07-22)
Jbpm\lib\commons-collections-2.1.1.jar (175426, 2004-06-30)
... ...

理解JBPM(java Business Process Management)的基本概念: jPDL - JBPM Process Definition Language JBPM简要过程: 1、定义流程(利用JPDL) 2、部署流程(部署到数据库) 3、创建公文并与流程实例绑定 4、可通过JBPM的接口,触发流程向下流动 5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表) 6、可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动) 7、如此,直到结束 ---------------------------------------------- 测试: 1、安装JBPM - 引入Hibernate依赖包 - 引入JBPM依赖包 * bsh.jar * jcr-1.0.jar * jbpm-identity.jar * jbpm-jpdl.jar - 引入数据库驱动 * mysql-connector-java-3.1.13-bin.jar 2、定义相关配置文件 - Hibernate配置文件 * 提供hibernate配置文件(可以从config/目录下拷贝,并修改其中的数据库连接设置即可) 3、假设现在有一个公文,需要经过:张三、李四、王五的审批之后才能结束 4、我们定义一个Document对象,及其hibernate映射,并将修改hibernate配置文件,将映射添加到其配置中(以便创建相应的数据库表) 5、现在让我们来测试一下: - 创建数据库表: JbpmConfiguration.getInstance().createSchema(); - 定义流程: 参考process.xml - 部署流程: * JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象 * ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象 * jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象 * context.deployProcessDefinition(definition); - 部署流程到数据库 * context.close(); - 关闭context对象 - 创建公文 - 将公文与流程绑定(即需要创建流程实例) * JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象 * jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象 * context.setSessionFactory(sessionFactory),将JBPM与程序中的session绑定 * context.getGraphSession().findLatestProcessDefinition("流程名称"); * new ProcessInstance(definition); - 创建流程实例 * context.save(processInstance); - 存储流程实例 * 在Document中添加Long processInstanceId 属性 * context.getSession().load 操作,加载Document对象 * document.setProcessInstanceId - 绑定流程实例到公文 * processInstance.getContextInstance.createVariable("document",document.getId()) - 绑定公文到流程实例 - 公文创建者提交公文 * (Document)context.getSession().load(Document.class, 1); - 加载公文信息 * context.getProcessInstance(从公文中获取的流程实例ID); - 即根据流程实例ID加载流程实例 * processInstance.getRootToken().signal(); - 触发流程往下走(即到达第一个节点) - 这时候,我们可以测试一下,看看流程当前所处的节点 * processInstance.getRootToken().getNode().getName() - 第一个节点对应的用户登录,应该能够查询到其当前的任务(有公文等待其审批) * List tasks = context.getTaskMgmtSession().findTaskInstances("张三"); - 查找张三的任务列表 * 列表元素是TaskInstance实例 * 通过:taskInstance.getProcessInstance().getContextInstance().getVariable("document"); 可以找到其绑定的公文ID - 查找到当前的任务对应的公文之后,即可对其审批,并继续往下走 * taskInstance.end(); - 如此,直到结束 * processInstance.hasEnded() - 如果流程已经到达终点,本调用将返回true

近期下载者

相关文件


收藏者