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

下载本文档

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

文档简介

EMOSS2流程引擎开发指南 中博信息技术研究院 1 EMOSS2EMOSS2 流程引擎开发指南流程引擎开发指南 中博信息技术研究院有限公司中博信息技术研究院有限公司 EMOSS2流程引擎开发指南 中博信息技术研究院 2 版版本本历历史史 版本号更改描述更改日期修订人 是否基线版本 (Y/N) 评审记录# 评审通过 日期 V1.0 建立文档 2012-7-30 余志淼 Y EMOSS2流程引擎开发指南 中博信息技术研究院 3 目目 录录 1.概述概述5 5 1.1.流程引擎说明.5 1.2.流程引擎架构.5 2.开发前准备开发前准备6 6 2.1.建立组织架构视图.6 2.1.1.公司(CORE_COMPANY).6 2.1.2.部门(CORE_DEPARTMENT)6 2.1.3.员工(CORE_EMPLOYEE)6 2.1.4.用户(CORE_USER)7 2.1.5.角色(CORE_ROLE)7 2.1.6.用户流程角色表(CORE_USER_ROLES)8 2.2.建立流程数据表.8 2.3.安装流程设计工具.8 2.3.1.安装JDK8 2.3.2.安装流程设计工具.9 2.4.将流程编程接口加入到项目代码中.9 3.开发指南开发指南9 9 3.1.流程设计工具使用.9 3.1.1.新增流程10 3.1.2.设计流程图10 .流程属性设置12 A.流程属性说明 .12 B.流程变量定义 .13 C.流程数据属性 .14 D.高级属性 .14 .流程节点属性设置15 A.属性说明 .16 B.按钮信息 .17 C.审批用户范围设置 .18 D.转办用户范围设置 .21 E.传阅用户范围设置 .22 .连接属性设置23 3.1.3.保存流程图25 3.1.4.设置流程图25 3.1.5.删除流程图25 3.1.6.导出流程图25 3.1.7.导入流程图26 3.2.流程编程接口使用26 3.2.1.流程引擎数据源初始化26 .不使用连接池方式:26 .使用C3P0连接池方式26 3.2.2.流程配置的加载27 3.2.3.用户登录的改造(可选)27 3.2.4.流程处理28 .点击发起流程按钮:28 .点击审批通过按钮:29 .服务端实现业务处理29 EMOSS2流程引擎开发指南 中博信息技术研究院 4 3.2.5.常用JAVA类说明30 .COM.ZBITI.CORE.CONFIG.WF.WORKFLOWCOMPONENT30 .COM.ZBITI.CORE.CONFIG.WF.WORKFLOWCONFIGPROVIDER30 .COM.ZBITI.CORE.CONFIG.WF.WORKFLOWOBJECT.31 .COM.ZBITI.CORE.CONFIG.WF.WFIMAGE31 .COM.ZBITI.CORE.VO.PARAMETEROBJECT31 .COM.ZBITI.CORE.CONFIG.WF.WORKFLOWPROXY.31 .COM.ZBITI.CORE.COMPONENTS.USERCOMPONENT.32 .COM.ZBITI.CORE.RESOURCEPOOL.32 .COM.ZBITI.CORE.CONSTS.TABLES32 0.COM.ZBITI.CORE.CONSTS.SEQUENCES32 4.附件附件3232 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 5 1. 概述概述 1.1.流程引擎说明流程引擎说明 EMOSS2 流程引擎是 EMOSS2 开发平台的一部分,主要完成流程发起,审批,监控 等功能,是较轻量级的流程引擎,但完全可以满足企业的业务流程需求。流程引擎目 前支持的数据库有:oracle、mysql、sybase。主要的组成部分有: 1,组织架构视图:流程引擎需要基于组织架构才能实现审批人的选择、工 作项的生成、流转条件的判断等。 2,流程数据表:用于保存流程图、流程实例、工作项等流程相关的数据。 3,流程设计工具:用于设计流程图,分配不同的版本给不同的公司。JDK 要求必须是 1.6 及以上。 4,流程编程接口:提供流程的发起、审批、参与者计算等接口给外部程序 调用。主要是 jar 包形式,JDK 的版本必须是 1.5 及以上。 1.2.流程引擎架构流程引擎架构 外部外部JspJsp、javajava程序程序 组织架构视图组织架构视图 流程编程接口流程编程接口 流程设计工具流程设计工具 流程数据表流程数据表: :流程图流程图 流程数据表流程数据表: :流程实流程实 例、工作项例、工作项 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 6 2. 开发前准备开发前准备 2.1.建立组织架构视图建立组织架构视图 根据字段列表建立各个视图。字段列表只列出必要字段,也可以根据需要扩展其他字段。 2.1.1. 公司(公司(CORE_COMPANY) 字段字段字段名称字段名称类型类型说明说明 COMPANY_ID 公司ID NUMBER(16) 公司的唯一标识 COMPANY_CID 公司变更序号 NUMBER(16) 固定值:1 COMPANY_CODE 公司编码 VARCHAR2(50) P_COMPANY_ID 上级公司ID NUMBER(16) COMPANY_NAME 公司名称 VARCHAR2(200) SORT_ID 排序号 NUMBER(16) 可空 IS_LAST 是否最新记录 NUMBER(1) 固定值:1 STATE 是否有效 NUMBER(1) 固定值:1 2.1.2. 部门(部门(CORE_DEPARTMENT) 字段字段字段名称字段名称类型类型说明说明 DEP_ID 部门ID NUMBER(16) 部门的唯一标识 DEP_CID 部门变更序号 NUMBER(16) 固定值:1 COMPANY_ID 所属公司ID NUMBER(16) 关联到CORE_COMPANY COMPANY_CID 所属公司变更序号 NUMBER(16) 固定值:1 DEP_CODE 部门编码 VARCHAR2(50) P_DEP_ID 上级部门ID NUMBER(16) DEP_NAME 部门名称 VARCHAR2(200) SORT_ID 排序号 NUMBER(16) 可空 IS_LAST 是否最新记录 NUMBER(1) 固定值:1 STATE 是否有效 NUMBER(1) 固定值:1 2.1.3. 员工(员工(CORE_EMPLOYEE) 字段字段字段名称字段名称类型类型说明说明 EMP_ID 员工ID NUMBER(16) 员工的唯一标识 EMP_CID 员工变更序号 NUMBER(16) 固定值:1 DEP_ID 所属部门ID NUMBER(16) 关联到 CORE_DEPARTMENT EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 7 DEP_CID 所属部门变更序号 NUMBER(16) 固定值:1 COMPANY_ID 所属公司ID NUMBER(16) 关联到CORE_COMPANY COMPANY_CID 所属公司变更序号 NUMBER(16) 固定值:1 EMP_CODE 员工编码 VARCHAR2(50) EMP_NAME 姓名 VARCHAR2(50) SORT_ID 排序号 NUMBER(16) 可空 IS_LAST 是否最新记录 NUMBER(1) 固定值:1 STATE 是否有效 NUMBER(1) 固定值:1 2.1.4. 用户(用户(CORE_USER) 字段字段字段名称字段名称类型类型说明说明 USER_ID 用户ID NUMBER(16) 用户的唯一标识 DEP_ID 所属部门ID NUMBER(16) 关联到 CORE_DEPARTMENT COMPANY_ID 所属公司ID NUMBER(16) 关联到CORE_COMPANY EMP_ID 所属员工ID NUMBER(16) 关联到 CORE_EMPLOYEE MAIN_ROLE_CODE 主要角色编码 VARCHAR2(30) 该用户的主要角色 (权限角色) LOGIN_ID 登录账号 VARCHAR2(50) 该用户登录到系统的 账号 USER_NAME 用户姓名 VARCHAR2(50) 可以与员工姓名一致 SORT_ID 排序号 NUMBER(16) 可空 STATE 是否有效 NUMBER(1) 固定值:1 2.1.5. 角色(角色(CORE_ROLE) 字段字段字段名称字段名称类型类型说明说明 ROLE_CODE 角色编码 VARCHAR2(30) 角色的唯一标识 ROLE_NAME 角色名称 VARCHAR2(50) COMPANY_ID 所属公司ID NUMBER(16) 关联到 CORE_COMPANY。空表 示全部公司可使用的 角色。 ROLE_TYPE 角色类型 CAHR(1) 0:权限角色;1:流 程角色;2:权限流 程角色。默认 为:2。 SORT_ID 排序号 NUMBER(16) 可空 PARENT_CODE 父角色编码 VARCHAR2(30) 可空 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 8 IS_LEAF 是否末级 CAHR(1) 1:是,0:否 IS_INNER 是否内置 CAHR(1) 1:是,0:否。默认 为:0。 2.1.6. 用户流程角色表(用户流程角色表(CORE_USER_ROLES) 字段字段字段名称字段名称类型类型说明说明 ROLE_CODE 角色编码 VARCHAR2(30) 角色的唯一标识 USER_ID 用户ID NUMBER(16) 用户的唯一标识 2.2.建立流程数据表建立流程数据表 根据流程数据表.pdm建立各个流程数据表。各数据表说明如下: 1) CORE_WF_CONFIG:流程配置表。用于保存设计工具设计出来的流程图。 2) CORE_WF_INSTANCE:流程实例表。用于保存系统中发起的流程实例。 3) CORE_WF_INSTANCE_VARIABLE:流程实例变量表。用于保存每个流程实例的变量。 4) CORE_WF_WORKITEM:流程工作项表。用于保存用户发起一个流程或审批完一个待办后, 产生出的待办工作项。 5) CORE_WF_WORKITEM_RELATION:工作项的转移关系表。用于保存每个工作项的来源工作 项。 6) CORE_WF_REASSIGN_RELATION:流程委托关系表。用于保存用户委托其他用户处理自己 的流程待办。 7) CORE_SYSTEM_BIG_DATA:系统专用大数据表。用于保存流程图的XML源代码。 8) 序列:SEQ_COMMON_BASE,长度为16。用于设置 CORE_WF_INSTANCE、CORE_SYSTEM_BIG_DATA等表的主键值。如果数据库不支持序列, 则要创建平台的序列表(CORE_SEQUENCE): 字段字段字段名称字段名称类型类型说明说明 SEQ 序列名 VARCHAR2(30) 序列唯一标识,流程 引擎使 用:SEQ_COMMON_BAS E MAX_ID 当前值 NUMBER(16) 初始值为:1 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 9 2.3.安装流程设计工具安装流程设计工具 2.3.1. 安装安装 JDK 流程设计工具需要JDK1.6或以上版本才能运行。安装完之后要指定JAVA_HOME,确认当前使 用的JDK是1.6版本。 2.3.2. 安装流程设计工具安装流程设计工具 1) ,将“流程设计工具”目录拷贝到一个无空格的路径中, 。 2) ,运行“imp_run32.bat” (32位操作系统使用)或“imp_run64.bat” (64位操作系统使 用) 。 点击主界面上的“设置”按钮,设置数据库连接(流程数据表所在的数据库) ,如下图所 示: 点击“确认”即完成了流程设计工具的设置。 2.4.将流程编程接口加入到项目代码中将流程编程接口加入到项目代码中 将“流程编程接口”目录下的文件拷贝到项目中即可。文件目录已经是安装web工程的要求 建立,如有特殊目录要求请自行修改。流程编程接口需要JDK1.5或以上版本才能运行。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 10 3. 开发指南开发指南 3.1.流程设计工具使用流程设计工具使用 运行流程设计工具“imp_run32.bat”或“imp_run64.bat” 。点击菜单“流程-流程自定 义”即可进入流程设计界面。如下图所示: 界面上部是工具条。左侧的上面一个列表是系统中已存在的流程图,下面一个列表是 每个流程图的明细版本(每个流程图可以有多个版本,每个版本的流程代码都相同) 。界面 的右侧是流程图的设计区域。 3.1.1. 新增流程新增流程 点击界面工具条的“新增”按钮,弹出“新增流程”对话框: 输入新流程代码(流程图的标识)和新流程名称,点击“确定”即可创建一个新流程图 (新创建的流程版本为1,只有“开始” 、 “结束”2个节点) 。 在界面的流程列表中可以查询到刚创建的流程。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 11 3.1.2. 设计流程图设计流程图 选择左侧的流程图列表中的一个流程图,在下面的“版本明细”列表就会显示该流程图的 所有版本。选择需要设计的一个版本,在右侧的流程设计区域即可显示该版本的流程图。 如图所示: 流程设计区域的上部是流程图设计的工具条。左侧是流程图中的节点列表以及连接(节点 之间的连接线)列表。 操作说明: 1) 点击工具条的“开始”按钮,再点击流程图指定地方,可以在指定地方增加一个“开 始节点” 。一个流程图只能有一个“开始节点” 。 2) 点击工具条的“中间”按钮,再点击流程图指定地方,可以在指定地方增加一个“中 间节点” 。连续点击流程图,可以连续增加“中间节点” 。点击右键可以返回到“选 择”状态。 3) 点击工具条的“结束”按钮,再点击流程图指定地方,可以在指定地方增加一个“结 束节点” 。 4) 点击工具条的“连接”按钮,再点击流程图指定的一个节点,鼠标左键不放,将连线 连接到另外一个节点,放开左键,即可在两个节点中增加一个连接线。连续的操作可 以连续增加连接线。点击右键可以返回到“选择”状态。 5) 点击工具条的“选择”按钮,可以使鼠标返回到“选择”状态(可以选择节点或连接 线) 。 6) 选中流程图中的节点或连接线(可以使用鼠标选择一个区域中的节点或连接线) ,再点 击工具条的“删除”按钮,可以删除选中的节点或连接线。 7) 点击工具条的“刷新”按钮,可以刷新当前流程图(有时候由于画布没有重画,会导 致流程图显示不全) 。 8) 点击工具条的“查看XML”按钮,弹出当前流程图的XML内容窗口: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 12 在XML源代码窗口中文本框显示的是当前流程图的XML内容。 可以修改XML或拷贝其他版本流程图的XML,然后点击“设置XML”按钮来改变当前流程 图。设置的XML中的流程代码值必须与当前流程图的代码值一致,并且版本不能低于当 前流程图的版本。 . 流程属性设置流程属性设置 在流程图的空白地方双击或者点击工具条的“属性”按钮,弹出当前流程图的属性设 置窗口: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 13 A.流程属性说明流程属性说明 流程编码流程编码:即当前流程图的代码,不可修改。 版本号版本号:即当前流程图的版本号,不可修改。每次保存版本号自动递增(也可以 使用覆盖保存,不增加版本号) 。 流程名称流程名称:当前流程的名称,每个版本的流程图名称可以不一样。 有效天数有效天数:流程引擎只记录该属性,尚未未使用。 待办待办URLURL:显示一个流程待办工作项时,使用的页面URL。 待办查询待办查询URLURL:查询该流程的待办工作项时,使用的页面URL。 已办已办URLURL:显示一个流程已办流程实例时,使用的页面URL。 已办查询已办查询URLURL:查询该流程的已办流程实例时,使用的页面URL。 我的申请查询我的申请查询URLURL:查询该流程的“我的申请”流程实例(登录人发起的流程实 例)时,使用的页面URL。 已办界面数据权限已办界面数据权限:可以是:none-不控制权限,login-使用当前登录用户的权 限,starter-使用发起人的权限。该属性只在EMOSS2平台使用。 流程结束方式流程结束方式:可以设置有几个人(或者百分之几的人)审批通过达到结束节点 时,流程算是正式结束,剩下未审批的工作项不再需要审批。 说明说明:记录流程图的说明信息。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 14 B.流程变量定义流程变量定义 在“流程变量”选项卡,可以定义流程变量(流程发起的时候可以设置流程变量的 值,供业务操作或流程图使用) 。流程变量定义如下图: 可以在列表中直接修改已有的变量。点击“增加”按钮,可以在变量列表中增加一个 流程变量。选择列表中的某个流程变量,再点击“删除”按钮,可以删除该变量。 注:datetime类型的变量暂不支持。 C.流程数据属性流程数据属性 在“流程数据”选项卡,可以定义流程的数据相关属性。如下图所示: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 15 1) 流程主题SQL:是发起流程或审批待办工作项时流程引擎调用的SQL,用来更新流程 实例表的主题字段(CORE_WF_INSTANCE.SUBJECT) 。 2) 流程金额SQL:是发起流程或审批待办工作项时流程引擎调用的SQL,用来更新流程 实例表的金额字段(CORE_WF_INSTANCE.MONEY) 。 3) 流程数据表:是EMOSS2平台使用的。在JAVA代码中使用DDProxy类增删改查数据 时,会自动设置PROCESS_ID(流程实例ID)和AUDIT_STATUS(审批状态)字段。 D.高级属性高级属性 在“高级”选项卡,可以设置流程的一些高级属性。如下图所示: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 16 1) 流程结束/否决时发送消息的设置:可以在流程结束或被否决时向流程相关的用户 发送消息(通知某个流程已经结束/被否决) 。该设置在EMOSS2平台才使用。 2) 常用审批意见:可以设置审批该流程时使用的常用审批意见有哪些。该设置在 EMOSS2平台才使用。 3) 流程业务组件:用来设置一个JAVA类,重写父类 (com.zbiti.core.config.wf.WorkFlowComponent)的某些方法,可以将流程的状 态变化与业务操作的联系起来。如:审批通过后要做某些业务处理,可以重写父类 的afterApprove方法实现。流程结束后要做某些业务处理,可以重写父类的 instanceEnded方法实现.等。具体的父类说明可以参见“JAVA_DOCS”目录下的 javaDoc。 . 流程节点属性设置流程节点属性设置 双击流程图中的节点或选择节点列表中的某个节点,点击工具条的“属性”按钮,弹出选 中节点的属性设置窗口: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 17 A.属性说明属性说明 节点节点IDID:节点在当前流程图中的唯一标识,创建节点时会自动生成。 节点名称节点名称:该节点的显示名称。 X X坐标坐标:流程节点在流程图的X坐标值。 Y Y坐标坐标:流程节点在流程图的Y坐标值。 长度长度:流程节点在流程图中显示的长度。 宽度宽度:流程节点在流程图中显示的宽度。 有效天数有效天数:流程引擎只记录该属性,尚未未使用。 待办待办URLURL:显示该节点的一个流程待办工作项时,使用的页面URL。如果未设置,则使 用流程的“待办URL”属性。 数据权限数据权限:可以是:none-不控制权限,login-使用当前登录用户的权限,starter-使 用发起人的权限。该属性只在EMOSS2平台使用。 审批方式审批方式:可以设置有几个人(或者百分之几的人)审批通过(负数表示回退,如人 数设置-1表示有一个人退回,百分比设置-33表示有33%的人退回)时,该节点算是审 批通过(被退回) ,剩下未审批的工作项不再需要审批。 可以取回可以取回:该节点的工作项审批通过后是否可以被取回。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 18 可以自动提交可以自动提交:该节点的工作项与前一节点的工作项属于同一个人的时候,如果前一 节点的工作项被审批通过了,该节点的工作项是否可以自动设置为审批通过。 审批后是否提示打印审批后是否提示打印:该节点的工作项被审批通过后是否会提示打印流程。该属性只 在EMOSS2平台使用。 常用审批意见常用审批意见:可以设置审批该节点的工作项时使用的常用审批意见有哪些,审批时 的常用审批意见也包含流程属性的“常用审批意见” 。该设置在EMOSS2平台才使用。 说明:说明:记录流程节点的说明信息。 B.按钮信息按钮信息 在“按钮信息”选项卡,可以定义该节点的审批界面有哪些审批按钮。如下图: “驳回” 、 “退回发起人” 、 “否决” 、 “废弃”按钮每个界面只能有一个,其中“废弃”按钮 只能设置在“发起节点” 。 “批量审批使用的按钮”用于指定一个审批通过的按钮,当使用批量审批时,相当于点击 该按钮。 “批量驳回使用的按钮”用于指定一个驳回的按钮,当使用批量驳回时,相当于点击该按 钮。 点击“添加”按钮,弹出添加按钮对话框: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 19 在窗口上填写必要的信息:按钮ID、标题、显示顺序、是否可见后点击“确认”即可添加 一个审批按钮。注:按钮ID在一个节点中不能重复。 双击按钮列表中的某个按钮或者点击“编辑”按钮,弹出该按钮的编辑窗口。与添加窗口 一样。 点击“删除”按钮,可以删除按钮列表中选中的按钮。 C.审批用户范围设置审批用户范围设置 在“审批用户范围”选项卡,可以定义该节点的审批用户有哪些。如下图: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 20 待办人员选择方式待办人员选择方式:指提交给该节点时,选择人员是单选还是多选。 “自动全选”是指 选择全部指定范围的用户, “自动选择第一个”是指在指定范围的用户中选择第一个用 户(用户是根据CORE_SUER的SORT_ID字段排序的) 。 SQLSQL说明说明: C(XXX)C(XXX)表示公司编码为XXX的公司,流程引擎会转换为SQL条件:C.COMPANY_CODE= XXX (C是CORE_COMPANY的别名) ; D(XXX)D(XXX)表示部门编码为XXX的部门,流程引擎会转换为SQL条件:D.DEP_CODE=XXX (C是CORE_DEPARTMENT的别名) ; U(XXX)U(XXX)表示用户登录账号为XXX的用户,流程引擎会转换为SQL条件:U.LOGIN_ID= XXX (U为CORE_USER的别名) ; R(XXX)R(XXX)表示角色编码为XXX的角色,流程引擎会转换为SQL条件:UR.ROLE_CODE=XXX (UR为CORE_USER_ROLES的别名) ; starter:XXXstarter:XXX或currentUser:XXXcurrentUser:XXX表示取发起人或当期用户的XXX属性的值。XXX可 以是 DepartmentCode、ParentDepartmentCode、CompanyCode、ParentCompanyCode、MainR oleCode、loginId之一,也可以是company_YYY、department_YYY表示公司或部门的某 个字段(YYY字段)的属性值。 XXXXXX表示取流程变量XXX的值。 SQL示例: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 21 C(starter:CompanyCode) AND D(starter:DepartmentCode) AND R(BMFZR)将转 换为(设发起人公司编码为A1001,发起人部门编码为A1001_01): C.COMPANY_CODE=A1001 AND D.DEP_CODE=A1001_01 AND UR.ROLE_CODE=BMFZR 点击“公司”按钮将弹出公司编码的选择窗口,如下图所示: 点击“部门”按钮将弹出部门编码的选择窗口,如下图所示: 点击“用户”按钮将弹出用户账号的选择窗口,如下图所示: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 22 点击“角色”按钮将弹出角色编码的选择窗口,如下图所示: 点击弹出窗口的“确定”按钮,即可以在SQL文本框中光标位置插入相应的SQL。 D.转办用户范围设置转办用户范围设置 在“转办用户范围”选项卡,可以定义该节点的工作项可以转交给哪些用户处理。如 下图: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 23 SQL的设置参照“审批用户范围设置” 。 E.传阅用户范围设置传阅用户范围设置 在“传阅用户范围”选项卡,可以定义该节点的工作项可以传阅给哪些用户查看。如 下图: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 24 SQL的设置参照“审批用户范围设置” 。 . 连接属性设置连接属性设置 双击流程图中的连接或选择连接列表中的某个连接,点击工具条的“属性”按钮,弹出选 中连接的属性设置窗口: EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 25 设置该连接的“转移条件” ,即满足这个条件时,流程会从该连接的“源节点”提交到“目 标节点” 。 点击“添加”参数,弹出“流程参数”选择窗口: 可以选择流程中定义的流程变量作为参数,也可以选择发起人当前提交人的某个属性作为 参数,也可以使用当前审批界面的按钮(源节点定义的按钮,批量审批或批量退回时的按 钮使用节点“按钮信息”的“批量审批时使用的按钮”或“批量驳回时使用的按钮” )作为 参数。 XXX表示一个string型的参数,n:XXX表示一个number型的参数,b:XXX表示一个bool 型的参数。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 26 3.1.3. 保存流程图保存流程图 点击工具条上的“保存”按钮可以保存当前流程图,并且自动将当前流程图的版本递 增(所有同一编码的流程版本最大值加1) ,即会生成一个新版本的流程图(如果当前 流程版本没有被使用则把当前流程图删除) 。 点击工具条上的“覆盖保存”按钮可以保存当前流程图,并且流程版本不变。 流程图保存到CORE_WF_CONFIG表中,实际的XML代码保存在CORE_SYSTEM_BIG_DATA表 中,通过CORE_WF_CONFIG的DATA_ID与CORE_SYSTEM_BIG_DATA的DATA_ID关联。 3.1.4. 设置流程图设置流程图 双击流程版本明细列表中的某个版本或点击工具条上的“设置”按钮,弹出流程设置窗 口: 在窗口上可以设置该版本启用时间(有效开始时间) 、所属公司(如果是父子公司,可以只 设置父公司,子公司将使用父公司的流程图)和状态。 要发起某个编码XXX的流程时,流程引擎检查当前CORE_WF_CONFIG的WF_CODE=XXX并且 未停用的所有版本,按照有效开始时间倒序,取得当前登录人所在公司能使用(流程图的 所属公司为本公司或上级公司或为空的)的最新(有效开始时间小于当前时间)流程图版 本,使用该版本发起流程。 3.1.5. 删除流程图删除流程图 选择流程版本明细中的某个流程版本,点击工具条的“删除”按钮,即可删除该流程版 本。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 27 3.1.6. 导出流程图导出流程图 选择流程列表中的某几个流程图或流程版本明细列表中的某几个版本,点击工具条的“导 出”按钮,即可将选中的流程图或版本导出成zip文件。 3.1.7. 导入流程图导入流程图 点击工具条的“导入”按钮,选择导出流程的zip文件,即可将文件中的所有流程导入到当 前数据库。注:导入的流程启用时间(有效开始时间)为当前时间。 3.2.流程编程接口使用流程编程接口使用 要使用流程编程接口,必须将“流程编程接口”目录下的代码加入到项目代码中,文件的 目录结构可以根据实际需要修改。 3.2.1. 流程引擎数据源初始化流程引擎数据源初始化 要使用流程引擎首先要初始化一个专用的数据源,该数据源为流程配置加载、组织架构信 息获取、流程图片生成等功能使用。数据源的初始化示例代码如下: . 不使用连接池方式:不使用连接池方式: . import com.zbiti.core.util.db.DataSource; import com.zbiti.core.util.db.DirectFactory; . DirectFactory f = new DirectFactory(); Properties properties = new Properties(); properties.setProperty(“jdbc.driver“, “oracle.jdbc.driver.OracleDriver”); properties.setProperty(“jdbc.url“,“jdbc:oracle:thin::1521:orcl”); properties.setProperty(“jdbc.username“, “test”); properties.setProperty(“jdbc.password“, “1”); f.init(properties, DataSource.CORE_DATASOURCE); DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE, f); . EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 28 . 使用使用 C3P0 连接池方式连接池方式 . import com.zbiti.core.util.db.DataSource; import com.zbiti.core.util.db.C3P0Factory; . C3P0Factory f = new C3P0Factory(); Properties properties = new Properties(); properties.setProperty(“jdbc.driver“, “oracle.jdbc.driver.OracleDriver”); properties.setProperty(“jdbc.url“,“jdbc:oracle:thin::1521:orcl”); properties.setProperty(“jdbc.username“, “test”); properties.setProperty(“jdbc.password“, “1”); properties.setProperty(“maxPoolSize“, “10”); properties.setProperty(“initPoolSize“, “1”); properties.setProperty(“waitTimeout“, “10000”); properties.setProperty(“maxIdleTime“, “”); f.init(properties, DataSource.CORE_DATASOURCE); DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE, f); . 3.2.2. 流程配置的加载流程配置的加载 流程配置保存在CORE_WF_CONFIG表中,在系统启动时或流程图被修改后,必须重新加载流 程配置。需要执行的代码如下: . com.zbiti.core.config.wf.WorkFlowConfigProvider.load(); . 3.2.3. 用户登录的改造(可选)用户登录的改造(可选) 流程引擎使用 ponents.User保存登录用户信息,可以在用户登录的时 候创建 ponents.User实例保存在session中,这样不需要每次与流程引 擎交互时都创建一次 ponents.User。登录时执行的示例代码如下: import ponents.User; import ponents.UserComponent; . User u = UserComponent.getUser(“);/为CORE_USER的USER_ID EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 29 u.setLogined(true); request.getSession().setAttribute(“KEY_USER_BIND_SESSION“,u); . 3.2.4. 流程处理流程处理 EMOSS2流程引擎提供了流程处理的封装源代码 (WFInvoker.js,WFInvoker.jsp,WFSelectUsers.jsp,WFInvoker.java.) ,各项目可 以根据自己的需要做一定的修改。 流程处理的一次典型过程如下: 以下给出了发起和审批通过的示例代码: . 点击发起流程按钮:点击发起流程按钮: . 2:AJAX提交 WFInvoker.jsWFInvoker.js 客户端 (js、jsp) WFInvoker.jspWFInvoker.jsp 1:调用doXXX方 法发起或审批流 程 WFInvoker.javaWFInvoker.java 3:预处理:计算流 程变量、下一结点 及审批参与人. 流程业务组件流程业务组件 XXX.javaXXX.java 4:返回JSON格式的 预处理结果 SelectUsers.jspSelectUsers.jsp或或 SelectUsers2.jspSelectUsers2.jsp 5:选择审批人或转办人 (该步骤可能是自动完 成) 6:AJAX提交(已选 择审批人或转别 人) 7:正式处理:保存 流程变量、发起流 程、生成新待办. 8:返回JSON格式的 正式处理结果 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 30 /发起test1流程 var datas = zbiti.WFInvoker.doStart(“test1”,”form1”); if(datas) alert(“发起成功,流程ID为:”+datas.instanceId); . 点击审批通过按钮:点击审批通过按钮: . /审批通过工作项ID为111 var datas = zbiti.WFInvoker.doApprove(“111”,”form1”); if(datas) alert(“审批成功!”); . 服务端实现业务处理服务端实现业务处理 . /* *test1流程的业务组件 */ public class Test1WFComponent extends WorkFlowComponent public Test1WFComponent(DBConnection dbc, ParameterObject po, WorkFlowObject wfo, String instanceId, String workItemId, String nodeId) super(dbc, po, wfo, instanceId, workItemId, nodeId); /* * 计算流程的变量 */ public Map calcWorkFlowVariables(boolean isPreprocess) throws Exception Map map = new HashMap(); map.put(“item1“,po.getParameterValue(“txtAAA“); map.put(“item2“,“aaa“); return map; /* EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 31 * 流程发起 */ public void afterStart(List newWorkItems) throws Exception super.afterStart(newWorkItems); /TODO something. /* * 流程被否决 */ public void instanceTerminated() throws Exception super.instanceTerminated(); /TODO something. /* * 流程审批结束 */ public void instanceEnded() throws Exception super.instanceEnded(); /TODO something. /* * 审批通过后 */ public void afterApprove(List newWorkItems) throws Exception super.afterApprove(newWorkItems); if(“CWSH“.equals(this.currentNodeId) /TODO something. 3.2.5. 常用常用 JAVA 类说明类说明 . com.zbiti.core.config.wf.WorkFlowComponent 该类是流程业务组件的父类,所有的流程业务组件必须继承该类,重写该类的方法,实现 流程状态变动与业务操作的联动。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 32 . com.zbiti.core.config.wf.WorkFlowConfigProvider 流程配置提供类。可以加载CORE_WF_CONFIG中所有的流程图,并且提供获取指定流程图信 息的方法。 . 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

提交评论