EMOSS2流程引擎开发指南_第1页
EMOSS2流程引擎开发指南_第2页
EMOSS2流程引擎开发指南_第3页
EMOSS2流程引擎开发指南_第4页
EMOSS2流程引擎开发指南_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EMOSS流程引擎开发指南中博信息技术研究院有限公司版本历史版本号更改描述更改日期修订人是否基线版本(Y/N)评审记录#评审通过日期V1.0建立文档2012-7-30余志淼Y1. 概述 51.1. 流程引擎说明 51.2. 流程引擎架构 52. 开发前准备 62.1. 建立组织架构视图 62.1.1. 公司(CORE_COMPA)Y 62.1.2. 部门(CORE_DEPARTMENT. 62.1.3. 员工(CORE_EMPLOYEE 62.1.4. 用户(CORE_USER 72.1.5. 角色(CORE_ROLE 72.1.6. 用户流程角色表(CORE_USER_ROLES 82.2.

2、 建立流程数据表 82.3. 安装流程设计工具 92.3.1. 安装 JDK 92.3.2. 安装流程设计工具 92.4. 将流程编程接口加入到项目代码中 93. 开发指南 103.1. 流程设计工具使用 103.1.1. 新增流程 103.1.2. 设计流程图 . 流程属性设置 12A. 流程属性说明 13B. 流程变量定义 14C. 流程数据属性 14D. 高级属性 . 流程节点属性设置 16A. 属性说明 17B. 按钮信息 18C. 审批用户范围设置 19D. 转办用户范围设置 22E. 传阅用户范围设置 . 连接属性设置 243.

3、1.3. 保存流程图 263.1.4. 设置流程图 263.1.5. 删除流程图 263.1.6. 导出流程图 273.1.7. 导入流程图 273.2. 流程编程接口使用 273.2.1. 流程引擎数据源初始化 2. 不使用连接池方式: 2. 使用C3P(连接池方式 283.2.2. 流程配置的加载 283.2.3. 用户登录的改造(可选) 283.2.4. 流程处理 2. 点击发起流程按钮: 30. 点击审批通过按钮: 30. 服务端实现业务处理 303.2.5. 常用JAVA类说明 3.COMZB

4、ITI. CORE CONFIG WFWORIFLOWOMPONENT 323.2.52COMZBITI.CORE CONFIG WFWORIFLOWONFIGPROVIDER 3. COMZBITI.CORE CONFIG WFWORIFLOWBJECT 3. COMZBITI. CORE CONFIG WFWFI MAGE 3. COMZBITI.COREVQPARAMETEOBJECT 3. COMZBITI.CORE CONFIG WFWORIFLOMPROXY. 3. COMZBITI. CORECOMP

5、ONENTSSERCOMPONENT 3. COMZBITI.COR职ESOURCPOOL 3. COMZBITI. CORECONSTSTABLES 30. COMZBITI. CORECONSTSSEQUENCES 344. 附件 341.概述1.1.流程引擎说明EMOSS流程引擎是EMOSS开发平台的一部分,主要完成流程发起,审批,监控等功能,是较轻量级的流程引擎,但完全可以满足企业的业务流程需求。流程引擎目前支持的数据库有:oracle、mysql、Sybase。主要的组成部分有:1, 组织架构视图:流程引擎需要基于组织架构才能实现审批人

6、的选择、工作项的生成、流转条件的判断等。2,流程数据表:用于保存流程图、流程实例、工作项等流程相关的数据。3,流程设计工具:用于设计流程图,分配不同的版本给不同的公司。JDK要求必须是1.6及以上。4,流程编程接口:提供流程的发起、审批、参与者计算等接口给外部程序调用。主要是jar包形式,JDK的版本必须是 1.5及以上。1.2.流程引擎架构外部Jsp、java程序流程编程接口流程数据表:流程实例、工作项组织架构视图流程数据表:流程图2.开发前准备2.1. 建立组织架构视图根据字段列表建立各个视图。字段列表只列出必要字段,也可以根据需要扩展其他字段。2.1.1. 公司(CORE_COMPANY

7、 )字段字段名称类型说明COMPANY_ID公司IDNUMBER(16)公司的唯一标识COMPANY_CID公司变更序号NUMBER(16)固定值:1COMPANY_CODE公司编码VARCHAR2(50)P_COMPANY_ID上级公司IDNUMBER(16)COMPANY_NAME公司名称VARCHAR2(200)SORT_ID排序号NUMBER(16)可空IS LAST疋否最新记录NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:12.1.2.部门(CORE_DEPARTMENT )字段字段名称类型说明DEP_ID部门IDNUMBER(16)部门的唯一标识DEP C

8、ID部门变更序号NUMBER(16)固定值:1COMPANY ID所属公司IDNUMBER(16)关联到 CORE COMPACOMPANY CID所属公司变更序号NUMBER(16)固定值:1DEP CODE部门编码VARCHAR2(50)P DEP ID上级部门IDNUMBER(16)DEP NAME部门名称VARCHAR2(200)SORT ID排序号NUMBER(16)可空IS LAST疋否最新记录NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:12.1.3.员工(CORE_EMPLOYEE )字段字段名称类型说明EMP_ID员工IDNUMBER(16)员工的唯

9、一标识EMP_CID员工变更序号NUMBER(16)固定值:1DEP_ID所属部门IDNUMBER(16)关联到CORE_DEPARTMENTDEP_CID所属部门变更序号NUMBER(16)固定值:1COMPANY_ID所属公司IDNUMBER(16)关联到 CORE_COMPACOMPANY_CID所属公司变更序号NUMBER(16)固定值:1EMP_CODE员工编码VARCHAR2(50)EMP_NAME姓名VARCHAR2(50)SORT_ID排序号NUMBER(16)可空IS_LAST疋否最新记录NUMBER(1)固定值:1STATE是否有效NUMBER(1)固定值:12.14 用户

10、(CORE_USER )字段字段名称类型说明USER_ID用户IDNUMBER(16)用户的唯一标识DEP_ID所属部门IDNUMBER(16)关联到CORE_DEPARTMENTCOMPANY_ID所属公司IDNUMBER(16)关联到 CORE COMPAEMP_ID所属员工IDNUMBER(16)关联到CORE_EMPLOYEEMAIN_ROLE_CODE主要角色编码VARCHAR2(30)该用户的主要角色(权限角色)LOGIND登录账号VARCHAR2(50)该用户登录到系统的 账号USER NAME用户姓名VARCHAR2(50)可以与员工姓名一致SORT ID排序号NUMBER(1

11、6)可空STATE是否有效NUMBER(1)固定值:12.1.5.角色(CORE_ROLE )字段字段名称类型说明ROLE CODE角色编码VARCHAR2(30)角色的唯一标识ROLE NAME角色名称VARCHAR2(50)COMPANY_ID所属公司IDNUMBER(16)关联到CORE_COMPAN 空表示全部公司可使用的 角色。ROLE_TYPE角色类型CAHR(1)0 :权限角色;1:流 程角色;2:权限流程角色。默认为:2。SORT_ID排序号NUMBER(16)可空PARENT_CODE父角色编码VARCHAR2(30)可空IS_LEAF是否末级CAHR(1)1 :是,0:否I

12、S_INNER是否内置CAHR(1)1 :是,0 :否。默认 为:0。2.1.6.用户流程角色表(CORE_USER_ROLES )字段字段名称类型说明ROLE_CODE角色编码VARCHAR2(30)角色的唯一标识USER_ID用户IDNUMBER(16)用户的唯一标识2.2.建立流程数据表根据流程数据表.pdm建立各个流程数据表。各数据表说明如下:1) CORE_WF_CONFI流程配置表。用于保存设计工具设计出来的流程图。2) CORE_WF_INSTANC流程实例表。用于保存系统中发起的流程实例。3) CORE_WF_INSTANCE_VARIABL流程实例变量表。用于保存每个流程实例

13、的变量。4) CORE_WF_WORKITE流程工作项表。用于保存用户发起一个流程或审批完一个待办后, 产生出的待办工作项。5) CORE_WF_WORKITEM_RELATI工作项的转移关系表。用于保存每个工作项的来源工作 项。6) CORE_WF_REASSIGN_RELATIO流程委托关系表。用于保存用户委托其他用户处理自己 的流程待办。7) CORE_SYSTEM_BIG_DAT系统专用大数据表。用于保存流程图的XML源代码。8) 序列:SEQ_COMMON_BA长度为 16。用于设置 CORE_WF_INSTAN、EORE_SYSTEM_BIG_DATA等表的主键值。如果数据库不支持

14、序列,则要创建平台的序列表(CORE_SEQUENC:E)字段字段名称类型说明SEQ序列名VARCHAR2(30)序列唯一标识,流程 引擎使用:SEQ COMMON BASEMAX ID当前值NUMBER(16)初始值为:123安装流程设计工具2.3.1.安装 JDK流程设计工具需要JDK1.6或以上版本才能运行。安装完之后要指定JAVA_HOME确认当前使用的JDK是1.6版本。2.3.2.安装流程设计工具1) ,将“流程设计工具”目录拷贝到一个无空格的路径中,。2) ,运行“ imp_run32.bat (32位操作系统使用)或“ imp_run64.bat (64位操作系统使用)点击主界

15、面上的“设置”按钮,设置数据库连接(流程数据表所在的数据库),如下图所示:点击“确认”即完成了流程设计工具的设置。2.4.将流程编程接口加入到项目代码中将“流程编程接口”目录下的文件拷贝到项目中即可。文件目录已经是安装web工程的要求建立,如有特殊目录要求请自行修改。流程编程接口需要JDK1.5或以上版本才能运行。3.开发指南3.1. 流程设计工具使用运行流程设计工具imp_run32.bat ”或imp_run64.bat ”。点击菜单流程-流程自定义” 即可进入流程设计界面。如下图所示:界面上部是工具条。 左侧的上面一个列表是系统中已存在的流程图, 下面一个列表是每 个流程图的明细版本(每

16、个流程图可以有多个版本,每个版本的流程代码都相同) 。界面的 右侧是流程图的设计区域。3.1.1.新增流程点击界面工具条的“新增”按钮,弹出“新增流程”对话框:赵程代码:I粥流穫名秫输入新流程代码(流程图的标识)和新流程名称,点击“确定”即可创建一个新流程图(新 创建的流程版本为1,只有“开始”、“结束” 2个节点)。在界面的流程列表中可以查询到刚创建的流程。3.1.2.设计流程图选择左侧的流程图列表中的一个流程图,在下面的“版本明细”列表就会显示该流程图的所有版本。选择需要设计的一个版本,在右侧的流程设计区域即可显示该版本的流程图。如图所示:IftT 耳畔呵幵卫Kffl叮即1 _ 3012

17、07-30 1111li流程设计区域的上部是流程图设计的工具条。左侧是流程图中的节点列表以及连接(节点之间的连接线)列表。操作说明:1)点击工具条的“开始”按钮,再点击流程图指定地方,可以在指定地方增加一个“开始节点”。一个流程图只能有一个“开始节点”。2)点击工具条的“中间”按钮,再点击流程图指定地方,可以在指定地方增加一个“中间节点”。连续点击流程图,可以连续增加“中间节点”。点击右键可以返回到“选择”状态。3)点击工具条的“结束”按钮,再点击流程图指定地方,可以在指定地方增加一个“结束 节点”。4)点击工具条的“连接”按钮,再点击流程图指定的一个节点,鼠标左键不放,将连线连 接到另外一个

18、节点,放开左键,即可在两个节点中增加一个连接线。连续的操作可以连 续增加连接线。点击右键可以返回到“选择”状态。5) 点击工具条的“选择”按钮,可以使鼠标返回到“选择”状态(可以选择节点或连接线)6) 选中流程图中的节点或连接线(可以使用鼠标选择一个区域中的节点或连接线),再点 击工具条的“删除”按钮,可以删除选中的节点或连接线。7)点击工具条的“刷新”按钮,可以刷新当前流程图(有时候由于画布没有重画,会导致 流程图显示不全)。8)点击工具条的“查看 XML按钮,弹出当前流程图的 XML内容窗口:石曲IL源代码.沽I回IW设蓝X创L|+ seiet (select Crdepname from

19、 core_departmenrt c where c,depJd = a.created_depLby and 论3我I = 1) | J- | c.PQBD_PROJ_NAIME等from pm_quiote_bill a,pm_quotejbiIl_dletail c where a.pqbjd 二 c.pqbjd and| a.prctsjd = n!:PROCS.SJD) and rowmijm <= lcm neySql seiect aipqbjocljmny from pm.quotejbill a where cess.id 三(n:PROCESSJD/mon

20、eySqb 在XM源代码窗口中文本框显示的是当前流程图的XML内容。可以修改XML或拷贝其他版本流程图的 XML,然后点击“设置 XML按钮来改变当前流程 图。设置的XML中的流程代码值必须与当前流程图的代码值一致,并且版本不能低于当 前流程图的版本。3.121.流程属性设置在流程图的空白地方双击或者点击工具条的“属性”按钮,弹出当前流程图的属性设置 窗口:工作流嵐性A. 流程属性说明流程编码:即当前流程图的代码,不可修改。版本号:即当前流程图的版本号,不可修改。每次保存版本号自动递增(也可以使 用覆盖保存,不增加版本号)。流程名称:当前流程的名称,每个版本的流程图名称可以不一样。有效天数:流

21、程引擎只记录该属性,尚未未使用。待办URL显示一个流程待办工作项时,使用的页面URL。待办查询URL查询该流程的待办工作项时,使用的页面URL已办URL显示一个流程已办流程实例时,使用的页面 URL 已办查询URL查询该流程的已办流程实例时,使用的页面URL。我的申请查询URL查询该流程的“我的申请”流程实例(登录人发起的流程实例) 时,使用的页面URL。已办界面数据权限:可以是:none-不控制权限,login-使用当前登录用户的权限, starter-使用发起人的权限。该属性只在EMOSS平台使用。流程结束方式:可以设置有几个人(或者百分之几的人)审批通过达到结束节点时, 流程算是正式结束

22、,剩下未审批的工作项不再需要审批。说明:记录流程图的说明信息。B. 流程变量定义在“流程变量”选项卡,可以定义流程变量(流程发起的时候可以设置流程变量的值, 供业务操作或流程图使用)。流程变量定义如下图:可以在列表中直接修改已有的变量。点击“增加”按钮,可以在变量列表中增加一个流程变量。选择列表中的某个流程变量,再点击“删除”按钮,可以删除该变量。注:datetime类型的变量暂不支持。C. 流程数据属性在“流程数据”选项卡,可以定义流程的数据相关属性。如下图所示:1) 流程主题SQL是发起流程或审批待办工作项时流程引擎调用的SQL用来更新流程 实例表的主题字段(CORE_WF_INSTANC

23、E.SUBJECT2) 流程金额SQL是发起流程或审批待办工作项时流程引擎调用的SQL,用来更新流程 实例表的金额字段(CORE_WF_INSTANCE.MONEY3)流程数据表:是EMOSS平台使用的。在JAVA弋码中使用DDProxy类增删改查数据时, 会自动设置PROCESS_I(流程实例ID)和AUDIT_STATU(审批状态)字段。D. 高级属性在“高级”选项卡,可以设置流程的一些高级属性。如下图所示:1) 流程结束/否决时发送消息的设置: 可以在流程结束或被否决时向流程相关的用户发 送消息(通知某个流程已经结束/被否决)。该设置在EMOSS平台才使用。2) 常用审批意见:可以设置审

24、批该流程时使用的常用审批意见有哪些。该设置在EMOSS2 平台才使用。3)流程业务组件:用来设置一个 JAVA类,重写父类(com.zbiti.core.co nfig.wf.WorkFlowComp onent)的某些方法,可以将流程的状态变化与业务操作的联系起来。如:审批通过后要做某些业务处理,可以重写父类的afterApprove方法实现。流程结束后要做某些业务处理,可以重写父类的instanceEnded方法实现 等。具体的父类说明可以参见JAVA_DOCS目录下的javaDoc。.流程节点属性设置“属性”按钮,弹出选中双击流程图中的节点或选择节点列表中的某个节点,点击工

25、具条的 节点的属性设置窗口:A. 属性说明节点ID:节点在当前流程图中的唯一标识,创建节点时会自动生成。节点名称:该节点的显示名称。X坐标:流程节点在流程图的 X坐标值。丫坐标:流程节点在流程图的 丫坐标值。长度:流程节点在流程图中显示的长度。宽度:流程节点在流程图中显示的宽度。有效天数:流程引擎只记录该属性,尚未未使用。待办URL显示该节点的一个流程待办工作项时,使用的页面URL。如果未设置,则使用流程的“待办URL属性。数据权限:可以是:none-不控制权限,login-使用当前登录用户的权限, starter- 使 用发起人的权限。该属性只在 EMOSS平台使用。审批方式:可以设置有几个

26、人(或者百分之几的人)审批通过(负数表示回退,如人数设置-1表示有一个人退回, 百分比设置-33表示有33%勺人退回)时,该节点算是审批通 过(被退回),剩下未审批的工作项不再需要审批。可以取回:该节点的工作项审批通过后是否可以被取回。可以自动提交:该节点的工作项与前一节点的工作项属于同一个人的时候,如果前一节点的工作项被审批通过了,该节点的工作项是否可以自动设置为审批通过。审批后是否提示打印:该节点的工作项被审批通过后是否会提示打印流程。该属性只在EMOSS平台使用。常用审批意见:可以设置审批该节点的工作项时使用的常用审批意见有哪些,审批时的常用审批意见也包含流程属性的“常用审批意见”。该设

27、置在EMOSS平台才使用。说明:记录流程节点的说明信息。B. 按钮信息在“按钮信息”选项卡,可以定义该节点的审批界面有哪些审批按钮。如下图:“驳回”、“退回发起人”、“否决”、“废弃”按钮每个界面只能有一个,其中“废弃”按钮只 能设置在“发起节点”。“批量审批使用的按钮”用于指定一个审批通过的按钮,当使用批量审批时,相当于点击该按钮。“批量驳回使用的按钮”用于指定一个驳回的按钮,当使用批量驳回时,相当于点击该按钮。点击“添加”按钮,弹出添加按钮对话框:即可添加一与添加窗口在窗口上填写必要的信息:按钮 ID、标题、显示顺序、是否可见后点击“确认 个审批按钮。注:按钮ID在一个节点中不能重复。双击

28、按钮列表中的某个按钮或者点击“编辑”按钮,弹出该按钮的编辑窗口。样。点击“删除”按钮,可以删除按钮列表中选中的按钮。C. 审批用户范围设置在“审批用户范围”选项卡,可以定义该节点的审批用户有哪些。如下图:斗信息1錘信息审弟涌戸范禹j媛办用户范围单选-( OR AND 公司部门用户角色传免用匚云區C(Starter:Comp3nyCode)J AND Dtstarter:DepartmentCod?;) AND R(BMFZR)示例:C(starter:CompanyCode) OR C(A32O1) AND R(admin)待办人员选择方式:指提交给该节点时,选择人员是单选还是多选。自动全选”

29、是指选择全部指定范围的用户,“自动选择第一个”是指在指定范围的用户中选择第一个用 户(用户是根据 CORE_SUERSORT_ID字段排序的)。SQ说明:C(XXX)表示公司编码为XXX的公司,流程引擎会转换为SQL条件: C.COMPANY_CODEXXX ( C是 CORE_COMPAN别名);D(XXX)表示部门编码为XXX的部门,流程引擎会转换为SQL条件:D.DEP_CODE=XXX ( C 是CORE_DEPARTMEN别名);U(XXX)表示用户登录账号为XXX的用户,流程引擎会转换为SQL条件:U.LOGIND= XXX ( U为 CORE_USER别名);R(XXX)表示角色

30、编码为XXX的角色,流程引擎会转换为SQL条件:UR.ROLE_CODE=XXX(UR为CORE_USER_ROL的别名);starter:XXX 或curre ntUser:XXX 表示取发起人或当期用户的XXX属性的值。XXX以是 DepartmentCode、ParentDepartmentCode、CompanyCode ParentCompanyCode、 Ma in RoleCode、logi nld 之一,也可以是 compa ny_YYY departme nt_YYY 表示公司或部门 的某个字段(YY存段)的属性值。XXX表示取流程变量XXX勺值。SQI示例:将转C(star

31、ter:Compa nyCode) AND D(starter:Departme ntCode) AND R(BMFZR)换为(设发起人公司编码为A1001,发起人部门编码为 A1001_01):点击“公司”按钮将弹出公司编码的选择窗口,如下图所示:点击“部门”按钮将弹出部门编码的选择窗口,如下图所示:C.COMPANY_CODEA1001 AND D.DEP_CODE= A1001_01 AND UR.ROLE_CODE=BMFZR点击“用户”按钮将弹出用户账号的选择窗口,如下图所示:点击“角色”按钮将弹出角色编码的选择窗口,如下图所示:点击弹出窗口的“确定”按钮,即可以在SQL文本框中光标

32、位置插入相应的 SQLD. 转办用户范围设置如下在“转办用户范围” 选项卡,可以定义该节点的工作项可以转交给哪些用户处理。 图:SQ的设置参照“审批用户范围设置”。E. 传阅用户范围设置在“传阅用户范围”选项卡,可以定义该节点的工作项可以传阅给哪些用户查看。如下图:SQ的设置参照“审批用户范围设置”3.123.连接属性设置“属性”按钮,弹出选中双击流程图中的连接或选择连接列表中的某个连接,点击工具条的 连接的属性设置窗口:设置该连接的“转移条件”,即满足这个条件时,流程会从该连接的“源节点”提交到“目 标节点”。点击“添加”参数,弹出“流程参数”选择窗口:可以选择流程中定义的流程变量作为参数,

33、也可以选择发起人当前提交人的某个属性作为参数,也可以使用当前审批界面的按钮(源节点定义的按钮,批量审批或批量退回时的按钮 使用节点“按钮信息”的“批量审批时使用的按钮”或“批量驳回时使用的按钮”)作为参数。XXX表示一个string 型的参数,n:XXX表示一个number型的参数,b:XXX表示一个bool 型的参数。3.1.3.保存流程图点击工具条上的“保存”按钮可以保存当前流程图,并且自动将当前流程图的版本递增 (所有同一编码的流程版本最大值加1),即会生成一个新版本的流程图(如果当前流程版本没有被使用则把当前流程图删除)。点击工具条上的“覆盖保存”按钮可以保存当前流程图,并且流程版本不

34、变。流程图保存到 CORE_WF_CON表中,实际的XMI代码保存在CORE_SYSTEM_BIG_DAT中, 通过 CORE_WF_CONF的DATA_ID与CORE_SYSTEM_BIG_DATDATA_ID关联。3.1.4.设置流程图双击流程版本明细列表中的某个版本或点击工具条上的“设置”按钮,弹出流程设置窗口:3 流程绘在窗口上可以设置该版本启用时间(有效开始时间)、所属公司(如果是父子公司,可以只设置父公司,子公司将使用父公司的流程图)和状态。要发起某个编码 XXX勺流程时,流程引擎检查当前 CORE_WF_CONFGWF_CODE=XXX并且未 停用的所有版本,按照有效开始时间倒序

35、, 取得当前登录人所在公司能使用 (流程图的所属 公司为本公司或上级公司或为空的) 的最新(有效开始时间小于当前时间) 流程图版本,使 用该版本发起流程。3.1.5.删除流程图选择流程版本明细中的某个流程版本,点击工具条的“删除”按钮,即可删除该流程版本。3.1.6. 导出流程图选择流程列表中的某几个流程图或流程版本明细列表中的某几个版本,点击工具条的“导出”按钮,即可将选中的流程图或版本导出成zip文件。3.1.7. 导入流程图点击工具条的“导入”按钮,选择导出流程的zip文件,即可将文件中的所有流程导入到当前数据库。注:导入的流程启用时间(有效开始时间)为当前时间。3.2. 流程编程接口使

36、用要使用流程编程接口,必须将“流程编程接口”目录下的代码加入到项目代码中,文件的目录结构可以根据实际需要修改。3.2.1. 流程引擎数据源初始化要使用流程引擎首先要初始化一个专用的数据源,该数据源为流程配置加载、组织架构信息获取、流程图片生成等功能使用。数据源的初始化示例代码如下:. 不使用连接池方式:import com.zbiti.core.util.db.DataSource;import com.zbiti.core.util.db.DirectFactory;DirectFactory f = new DirectFactory ();oracle.jdbc.drive

37、r.OracleDriver” );Properties properties = new Properties。; properties.setProperty(jdbc.driver,properties.setProperty(jdbc.url,“jdbc:oracle:thin::1521:orcl” );properties.setProperty(jdbc.username,“test ” );properties.setProperty(jdbc.password,“ 1 ” );f.ini t(properties, DataSource.CORE_DAT

38、ASOURCE);DataSource.addDBCo nn ectio nFactory(DataSource.CORE_DATASOURCE, f);3212使用C3P0连接池方式 import com.zbiti.core.util.db.DataSource;import com.zbiti.core.util.db.C3P0Factory;C3P0Factory f = new C3P0Factory (); Properties properties = new Properties。;oracle.jdbc.driver.OracleDriver” );properties.se

39、tProperty(jdbc.driver, f.ini t(properties, DataSource.CORE_DATASOURCE);properties.setProperty(jdbc.urjdbc:oracle:thi n: :1521:orcl”);properties.setProperty(jdbc.user name, properties.setProperty(jdbc.password, properties.setProperty(maxPoolSize properties.setProperty(i nitPoolSize propert

40、ies.setProperty(waitTimeout properties.setProperty(maxldleTimeIIIIIIII“ test ”);a , ”1 );“ 10”);1 );“ 10000”);“ 1000000”);DataSource.addDBCo nn ectio nFactory(DataSource.CORE_DATASOURCE, f);3.2.2.流程配置的加载流程配置保存在CORE_WF_CON表中,在系统启动时或流程图被修改后,必须重新加载流程配置。需要执行的代码如下:com.zbiti.core.c on fig.wf.WorkFlowC on

41、figProvider.load();3.2.3.用户登录的改造(可选)流程引擎使用ponents.User保存登录用户信息,可以在用户登录的时候创建ponents.User实例保存在session中,这样不需要每次与流程引擎交互时都创建一次p onen ts.User。登录时执行的示例代码如下:import p onen ts.User;import p onen ts.UserComp onent;User u = UserComp onen t.getUser(123456);/123456为 CORE_USERUSER_IDu.setLogi ned(true);request.get

42、Sessio n().setAttribute(KEY_USER_BIND_SESSION,u);3.2.4.流程处理EMOSS流程引擎提供了流程处理的封装源代码(WFIn voker.js , WFIn voker.jsp ,WFSelectUsers.jsp , WFInvoker.java.),各项目可以根据自己的需要做一定的修改。流程处理的一次典型过程如下:客户端(js、jsp); I;1:调用 doXXX方法 I八:发起或审批流程1I/ ; 5:选择审批人或转办人 /(该步骤可能是自动完成)SelectUsers.jsp 或SelectUsers2.jsp2: AJAX提交WFI n

43、voker.js6: AJAX提交(已选择审批人或转别人)i:4:返回 JSON各式的WFvokerJsp:预处理结果:厂8:返回JSO格式的 正式处理结果WFI nvoker.java:3:预处理:计算流|厂 :程变量、下一结点及;J、*:审批参与人.:V:7 :正式处理:保存:流程变量、发起流:程、生成新待办.I以下给出了发起和审批通过的示例代码:流程业务组件XXX.java.点击发起流程按钮:/发起testl流程var datas = zbiti.WFInvoker.doStart(“testl ” , ” forml ” );if(datas) alert( 发起成功,流

44、程 ID 为:” +datas.i nsta nceld);3242点击审批通过按钮:/审批通过工作项ID为111111” , ” forml ” );var datas = zbiti.W Fin voker.doApprove( if(datas) alert(审批成功!”);.服务端实现业务处理*test1流程的业务组件*/ public class Test1WFComp onent exte nds WorkFlowComp onent public Test1WFComp onen t(DBC onnection dbc, Parameterobject po,Wor

45、kFlowObject wfo, String in sta nceld, Stri ng workltemld,String nodeld) super(dbc, po, wfo, in sta nceld, workltemld, no deld);*计算流程的变量*/public MapStri ng, StringcalcWorkFlowVariables(boolea n isPreprocess)throws Excepti on MapString, Stringmap = new HashMap();map.put(item1,po.getParameterValue(txtA

46、AA); map.put(item2,aaa); return map;*流程发起*/public void afterStart(List n ewWorkltems) throws Excepti on super.afterStart( newWorkltems); /TODO somethi ng.*流程被否决*/public void instanceTerminated() throws Exception super.i nsta nceTerm in ated();/TODO somethi ng.*流程审批结束*/public void in sta nceEn ded()

47、throws Excepti on super.i nsta nceEn ded();/TODO somethi ng./*审批通过后*/public void afterApprove(List newWorkItems) throws Exceptionsuper.afterApprove (n ewWorkItems); if(CWSH.equals(this.curre ntNodeld) /TODO somethi ng.3.2.5.常用JAVA类说明325.1. com.zbiti.core.config.wf.WorkFlowComponent该类是流程业务组件的父类,所有的流程

48、业务组件必须继承该类,重写该类的方法,实现流程状态变动与业务操作的联动。325.2. com.zbiti.core.config.wf.WorkFlowConfigProvider流程配置提供类。可以加载CORE_WF_CONFI所有的流程图,并且提供获取指定流程图信息 的方法。. com.zbiti.core.config.wf.WorkFlowObject流程定义信息类。该类保存流程图中的全部信息,可以通过其中的方法取得流程图的节点、按钮、连接、流程变量等信息。. com.zbiti.core.config.wf.WFImage流程图生成类。该类可以生成某一个流程实例的流程图。. com.zbiti.core.vo.ParameterObject输入参数类。该类用来保存 request中的参数以及当前的登录用户。. com.zbiti.core.config.wf.WorkFlowProxy流程操作类。该类是流程引擎操作流程的核心类,提供发起、审批、驳回、转办、否决、恢复流程等操作方法。调用该类的方法前,需要输入参数来创建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论