文档介绍:膀螇肄工作流框架JBPM使用说明书袃()艿膆袄羅蚁袀薅螂螀艿芅袃膂虿肆袅芀膈螆蚂蚃薇薆长城计算机软件与系统有限公司螄螁羇目录芇1 引言 简介 使用版本 使用环境 2肇2 使用说明 建立数据库 建立项目 建立工作流定义 工作流的发布 工作流中定义的类 9莀蕿引言芄简介蚅JBossJBPM是一个灵活、可扩展的流程语言框架。JPDL是建立在这个通用框架之上的一个流程语言。它使用直观的流程语言以图形化的方式来表示业务流程,使用术语任务、异步通讯等待状态、定时器、自动操作等。为了将这些操作绑定在一起,JPDL提供了强有力的、可扩展的流程控制机制。螃JBossjBPM有一个具有最小的依赖性和尽可能简单易用的java库。当然它也可以用在吞吐量极为关键的J2EE集群应用服务器环境中。羈持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。羄使用版本蒂本例中使用的是JBPM--GA版本,需要JDK,下载地址为:/jbpm_downloads/,建议下载完整包。在jbpm安装路径\designer\eclipse中有支持图形化设计的插件,将其加到eclipse中,在eclipse的窗口-首选项中如果有jbossjbpm选项,则安装成功。袁使用环境莈本说明书中用到的软件环境如下:螅操作系统:WindowXPsp3薄JDK:罿IDE:::oracle9i蚅使用说明莂该示例演示的是一个公司报销流程。普通员工可以填写报销单,然后提交主管审批;主管审批可以有三种可能:一是主管可以驳回请求,那么报销人需要重填报销单,或者取消报销操作;二是主管不同意请求,请求直接结束;三是主管同意请求,那又存在两种情况,一是如果报销总费用大于1000的话那么会自动转到老板那里,如果小于1000就直接进入财务处理子流程,老板审批的话有两种可能,一是同意进入财务处理子流程,二是不同意请求直接结束。芆建立数据库芅以下是使用JBPM需要的建库脚本:jbpm-jpdl-,运行后,数据库中会建立28张以JBPM_开头的表。例子所用的其他表的建表语句如下,此为sqlserver版本,oracle下稍加修改便可。蒃--用户表蒀createtabletb_user(羀 user_id intprimarykeyidentity(1,1),--用户ID羆 user_name varchar(30),--用户名蒄 user_password varchar(30),--密码袂 user_type int--用户类型(0为普通用户,1为主管,2为老板,3为财务人员)荿)蚆go芁--报销表羁createtabletb_baoxiao(蝿 baoxiao_id intprimarykeyidentity(1,1),蒆 baoxiao_title varchar(30),--报销主题莃 baoxiao_memo varchar(30),--备注聿 user_id int,--报销人膈 baoxiao_date datetime,--报销时间膇 baoxiao_flag bit --报销状态(0为未处理,1为已处理)莄)蒂go蚇--报销项目表聿createtabletb_baoxiao_item(莃 item_id intprimarykeyidentity(1,1),蚁 item_name varchar(30),--项目名称膈 item_money varchar(100),--项目金额衿 baoxiao_id int--报销表ID莄)肄go袂--审核意见表芆createtabletb_approve(蒆 approve_id intprimarykeyidentity(1,1),膂 user_id int,--审核人ID莁 baoxiao_id int,--报销表ID肆 approve_result varchar(30),--审核结果芃 approve_memo varchar(30),--审核意见芁 approve_date datetime--审核日期螀)螆go芄蚃--为报销表添加外键膀altertabletb_baoxiaoaddCONSTRAINTbaoxiao_foreign_keyforeignkey(user_id)referencestb_user(user_id)薇go莆螁--为报销项目表添加外键蕿altertabletb_baoxiao_itemaddCONSTRAINTbaoxiao_item_foreign_keyforeignkey(baoxi