JBPM4.3总结四

2.9任务管理
2.9.1 分配任务

流程定义时,分配任务有多种方法:

1.  直接分配给成员:assignee="user1"  可以同时分配多人: candidate-users"user1","user2","user3"

2.  分配给组:candidate-groups="it_dept"  分 配给多个组:用逗号隔开部门 id 组列表。

3.  利用任务泳道进行分配:

1. 任 务泳道分配的特点:一个单子可以有多个人填写,一旦A 填写了,别人就不能 填写。而且 当A 提交的单子被退回的时候还应该有 A 来继续。

2. 泳 道定义:<swimlane candidate-groups="it_dept" name="test"/> ,也可以为  candidate-users.

3. 使 用泳道:在task 定义时  swimlane="test"  使用泳道,任务分配 给 it_dept 部  门

4. 使 用任务分配器assignment-handler 标签 使用方法: <assignment-handler class = "">

<field name="test"><string value="ttttttt"/></field>

</assignment-handler>

class 里面动态分配 assignable.setAssignee(test);

通过传参数,设置 test 的值。实现动态分配

 

2.9.2 成员任务列表

List<Task> taskList = taskService.findPersonalTasks(username);

2.9.3 组成员任务列表

List<Task> taskList = taskService.findGroupTasks(username);

由于任务有转交,加签等功能,所以一个人想要得到自己的任务就包括 组成员任务和 成 员任务两部分组成。

2.9.4 执行任务

得到任务列表后,如果任务有对应的表单,就先跳到表单,填写,然后执行。表单的绑定:在task 标签中使用  form = "xxxx.jsp" ,执行语句:

 

taskService.completeTask(taskId,"toFork1",map);

taskId 是任务 id 

toFork1 是 outcome ,即任务的出口

Map 是 传递的任务参数,通过任务就可以得到这些参数 :

得到指定的参数值:taskService.getVariable(taskId, "user")

    得到所 有的参数:taskService.getvariableNames(java.lang.String.taskId);

2.9.5 转交任务

taskService.assignTask(taskId,"用户 Id");

2.9.6 任务加签

taskService.addTaskParticipatingUser(taskId,"用户 Id",Participation.CANDIDATE);

2.9.7 fork  join 异步分支

<fork g="276,239,48,48" name="fork1">

      <transition g="-54,-18" name="to 计划部 " to=" 计划部 "/>

      <transition g="-54,-18" name="to 法务部 " to=" 法务部 "/>

      <transition g="-64,-18" name="to IT规划部 " to="IT 规划部 "/>

</fork>

Fork join 处理并发的情况,分配给的三个部门当执行完后,都流入到 join 标签。

Join标签属性:  multiplicity="3" multiplicity  的意思是当有几个执行到了 join 时,流程继续。

2.9.8 decision 决定条件

decision中会运行并判断每一个 transition  里的判断条件。 当遇到一个嵌套 条件是 true  或者没有

设置判断条件的 转移,那么转移就会被运行。

例子:当天数大于3 天,总经理审批 否则 结束

<decision expr="#{day > 3 ? 'to 总经理 ' : 'to  结束 }" g="361,280,48,48"  name="exclusive1">

      <transition g="-42,-18" name="to end1" to="end1"/>

      <transition g="-44,-18" name="to task2" to="总经理审核 "/>

   </decision> 

Decision属性:  expr  表达式 必填

 

 

2.9.9 Events 事件

 当一个流程通 过这一点时,事件监听器就会被提醒。

用法:在流程的 任何地方都可以加入监听 

<on event="start"> 

<event-listener class="org.jbpm.examples.eventlistener.LogListener"> 

// 参数

      <field name="msg"><string value="start on process definition"/></field> 

    </event-listener> 

2.9.10  JPDL 简 介
1. Start state

开始节点 流程 开始,每个流程定义文件 只能有一个开始节点。

2. Task node

任务节点  人 工参与,调用processEngine.getTaskService().complete() 完 成任务

3.State node

状态节点

需要使用execution.signalExcution() 触 发流程流转

4. Descision Node

流程流向判断节 点

指定condition 条件或者 DesisionHandler

5. Fork node

分支节点, 任务并行处理

6.Join node

任务聚合节点

7. End State

任务结束节 点 可以有多个结束节点

8. Transition

控制任务流向

9. Event

事件触发 可以 在任何节点加事件触发处理

 

具体参看${JPBM.HOME}/doc/userguide 文 档 关于 JPDL 的描述

 

 

3数 据库表说明

(1) JBPM4_DEPLOYMENT、

(2) JBPM4_DEPLOYPROP

(3) JBPM4_LOB:
存储 上传一个包含pngjpdl.xmlzip 包 的 相关数据 
jbpm4_deployment表多了一条记录 
jbpm4_deployprop表多了四条记录 , 对应 langid,pdid,pdkey,pdversion 
jbpm4_lob 表多了二条记录 , 保存流程图 png 图片和 jpdl.xml 
4JBPM4_HIST_PROCINST 与( 5JBPM4_HIST_ACTINST
分别存放的是Process InstanceActivity Instance 的历史记录。 
6JBPM4_EXECUTION
主要是存放JBPM4 的执行信息, Execution 机制代替了 JBPM3Token 机制 
7JBPM4_TASK
存放需要人来完成的Activities ,需要人来参与完成的 Activity 被称为 Task 。 
8JBPM4_PARTICIPATION
存放Participation 的信息, Participation 的种类有 Candidate 、  ClientOwnerReplaced  Assignee和 Viewer 。而具体的 Participation 既可以是单一用户,也可以是用户组。 
9JBPM4_SWIMLANE
Swim Lane是一种 Runtime Process Role 。通过 Swim Lane ,多个 Task 可以一次分配到 同一Actor 身 上。 
10JBPM4_VARIABLE 
存的是进行时的临时变量。 
11JBPM4_HIST_DETAIL
保存Variable 的变更记录。 
12JBPM4_HIST_VAR
保存历史的变量。 
13JBPM4_HIST_TASK
Task的历史信息。 
14JBPM4_ID_GROUP15JBPM_ID_MEMBERSHIP16JBPM4_ID_USER 
这三张表很常见了,基本的权限控制,关于用户认证方面建议还是自己开发一套,JBPM4 的功能太简单了,使用 中有很多需要难以满足。 
17JBPM4_JOB 
存放的是Timer 的定义。 
18JBPM4_PROPERTY

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值