收藏 分销(赏)

流程引擎开发指南模板.doc

上传人:丰**** 文档编号:4742275 上传时间:2024-10-11 格式:DOC 页数:50 大小:1.12MB
下载 相关 举报
流程引擎开发指南模板.doc_第1页
第1页 / 共50页
流程引擎开发指南模板.doc_第2页
第2页 / 共50页
点击查看更多>>
资源描述
流程引擎开发指南模板 49 2020年4月19日 资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 EMOSS2流程引擎开发指南 中博信息技术研究院有限公司 版本历史 版本号 更改描述 更改日期 修订人 是否基线版本(Y/N) 评审记录# 评审经过日期 V1.0 建立文档 -7-30 余志淼 Y 目 录 1. 概述 5 1.1. 流程引擎说明 5 1.2. 流程引擎架构 5 2. 开发前准备 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. 安装JDK 8 2.3.2. 安装流程设计工具 9 2.4. 将流程编程接口加入到项目代码中 9 3. 开发指南 9 3.1. 流程设计工具使用 9 3.1.1. 新增流程 10 3.1.2. 设计流程图 10 3.1.2.1. 流程属性设置 12 A. 流程属性说明 12 B. 流程变量定义 13 C. 流程数据属性 14 D. 高级属性 14 3.1.2.2. 流程节点属性设置 15 A. 属性说明 16 B. 按钮信息 17 C. 审批用户范围设置 18 D. 转办用户范围设置 21 E. 传阅用户范围设置 22 3.1.2.3. 连接属性设置 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 3.2.1.1. 不使用连接池方式: 26 3.2.1.2. 使用C3P0连接池方式 26 3.2.2. 流程配置的加载 27 3.2.3. 用户登录的改造( 可选) 27 3.2.4. 流程处理 28 3.2.4.1. 点击发起流程按钮: 28 3.2.4.2. 点击审批经过按钮: 29 3.2.4.3. 服务端实现业务处理 29 3.2.5. 常见JAVA类说明 30 3.2.5.1. com.zbiti.core.config.wf.WorkFlowComponent 30 3.2.5.2. com.zbiti.core.config.wf.WorkFlowConfigProvider 30 3.2.5.3. com.zbiti.core.config.wf.WorkFlowObject 31 3.2.5.4. com.zbiti.core.config.wf.WFImage 31 3.2.5.5. com.zbiti.core.vo.ParameterObject 31 3.2.5.6. com.zbiti.core.config.wf.WorkFlowProxy 31 3.2.5.7. ponents.UserComponent 32 3.2.5.8. com.zbiti.core.ResourcePool 32 3.2.5.9. com.zbiti.core.consts.Tables 32 3.2.5.10. com.zbiti.core.consts.Sequences 32 4. 附件 32 1. 概述 1.1. 流程引擎说明 EMOSS2流程引擎是EMOSS2开发平台的一部分, 主要完成流程发起, 审批, 监控等功能, 是较轻量级的流程引擎, 但完全能够满足企业的业务流程需求。流程引擎当前支持的数据库有: oracle、 mysql、 sybase。主要的组成部分有: 1, 组织架构视图: 流程引擎需要基于组织架构才能实现审批人的选择、 工作项的生成、 流转条件的判断等。 2, 流程数据表: 用于保存流程图、 流程实例、 工作项等流程相关的数据。 3, 流程设计工具: 用于设计流程图, 分配不同的版本给不同的公司。JDK要求必须是1.6及以上。 4, 流程编程接口: 提供流程的发起、 审批、 参与者计算等接口给外部程序调用。主要是jar包形式, JDK的版本必须是1.5及以上。 1.2. 流程引擎架构 外部Jsp、 java程序 组织架构视图 流程设计工具 流程编程接口 流程数据表:流程图 流程数据表:流程实例、 工作项... 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 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) 可空 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_BASE MAX_ID 当前值 NUMBER(16) 初始值为: 1 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或以上版本才能运行。 3. 开发指南 3.1. 流程设计工具使用 运行流程设计工具”imp_run32.bat”或”imp_run64.bat”。点击菜单”流程-流程自定义”即可进入流程设计界面。如下图所示: 界面上部是工具条。左侧的上面一个列表是系统中已存在的流程图, 下面一个列表是每个流程图的明细版本( 每个流程图能够有多个版本, 每个版本的流程代码都相同) 。界面的右侧是流程图的设计区域。 3.1.1. 新增流程 点击界面工具条的”新增”按钮, 弹出”新增流程”对话框: 输入新流程代码( 流程图的标识) 和新流程名称, 点击”确定”即可创立一个新流程图( 新创立的流程版本为1, 只有”开始”、 ”结束”2个节点) 。 在界面的流程列表中能够查询到刚创立的流程。 3.1.2. 设计流程图 选择左侧的流程图列表中的一个流程图, 在下面的”版本明细”列表就会显示该流程图的所有版本。选择需要设计的一个版本, 在右侧的流程设计区域即可显示该版本的流程图。如图所示: 流程设计区域的上部是流程图设计的工具条。左侧是流程图中的节点列表以及连接( 节点之间的连接线) 列表。 操作说明: 1) 点击工具条的”开始”按钮, 再点击流程图指定地方, 能够在指定地方增加一个”开始节点”。一个流程图只能有一个”开始节点”。 2) 点击工具条的”中间”按钮, 再点击流程图指定地方, 能够在指定地方增加一个”中间节点”。连续点击流程图, 能够连续增加”中间节点”。点击右键能够返回到”选择”状态。 3) 点击工具条的”结束”按钮, 再点击流程图指定地方, 能够在指定地方增加一个”结束节点”。 4) 点击工具条的”连接”按钮, 再点击流程图指定的一个节点, 鼠标左键不放, 将连线连接到另外一个节点, 放开左键, 即可在两个节点中增加一个连接线。连续的操作能够连续增加连接线。点击右键能够返回到”选择”状态。 5) 点击工具条的”选择”按钮, 能够使鼠标返回到”选择”状态( 能够选择节点或连接线) 。 6) 选中流程图中的节点或连接线( 能够使用鼠标选择一个区域中的节点或连接线) , 再点击工具条的”删除”按钮, 能够删除选中的节点或连接线。 7) 点击工具条的”刷新”按钮, 能够刷新当前流程图( 有时候由于画布没有重画, 会导致流程图显示不全) 。 8) 点击工具条的”查看XML”按钮, 弹出当前流程图的XML内容窗口: 在XML源代码窗口中文本框显示的是当前流程图的XML内容。 能够修改XML或拷贝其它版本流程图的XML, 然后点击”设置XML”按钮来改变当前流程图。设置的XML中的流程代码值必须与当前流程图的代码值一致, 而且版本不能低于当前流程图的版本。 3.1.2.1. 流程属性设置 在流程图的空白地方双击或者点击工具条的”属性”按钮, 弹出当前流程图的属性设置窗口: A. 流程属性说明 l 流程编码: 即当前流程图的代码, 不可修改。 l 版本号: 即当前流程图的版本号, 不可修改。每次保存版本号自动递增( 也能够使用覆盖保存, 不增加版本号) 。 l 流程名称: 当前流程的名称, 每个版本的流程图名称能够不一样。 l 有效天数: 流程引擎只记录该属性, 尚未未使用。 l 待办URL: 显示一个流程待办工作项时, 使用的页面URL。 l 待办查询URL: 查询该流程的待办工作项时, 使用的页面URL。 l 已办URL: 显示一个流程已办流程实例时, 使用的页面URL。 l 已办查询URL: 查询该流程的已办流程实例时, 使用的页面URL。 l 我的申请查询URL: 查询该流程的”我的申请”流程实例( 登录人发起的流程实例) 时, 使用的页面URL。 l 已办界面数据权限: 能够是: none-不控制权限, login-使用当前登录用户的权限, starter-使用发起人的权限。该属性只在EMOSS2平台使用。 l 流程结束方式: 能够设置有几个人( 或者百分之几的人) 审批经过达到结束节点时, 流程算是正式结束, 剩下未审批的工作项不再需要审批。 l 说明: 记录流程图的说明信息。 B. 流程变量定义 在”流程变量”选项卡, 能够定义流程变量( 流程发起的时候能够设置流程变量的值, 供业务操作或流程图使用) 。流程变量定义如下图: 能够在列表中直接修改已有的变量。点击”增加”按钮, 能够在变量列表中增加一个流程变量。选择列表中的某个流程变量, 再点击”删除”按钮, 能够删除该变量。注: datetime类型的变量暂不支持。 C. 流程数据属性 在”流程数据”选项卡, 能够定义流程的数据相关属性。如下图所示: 1) 流程主题SQL: 是发起流程或审批待办工作项时流程引擎调用的SQL, 用来更新流程实例表的主题字段( CORE_WF_INSTANCE.SUBJECT) 。 2) 流程金额SQL: 是发起流程或审批待办工作项时流程引擎调用的SQL, 用来更新流程实例表的金额字段( CORE_WF_INSTANCE.MONEY) 。 3) 流程数据表: 是EMOSS2平台使用的。在JAVA代码中使用DDProxy类增删改查数据时, 会自动设置PROCESS_ID( 流程实例ID) 和AUDIT_STATUS( 审批状态) 字段。 D. 高级属性 在”高级”选项卡, 能够设置流程的一些高级属性。如下图所示: 1) 流程结束/否决时发送消息的设置: 能够在流程结束或被否决时向流程相关的用户发送消息( 通知某个流程已经结束/被否决) 。该设置在EMOSS2平台才使用。 2) 常见审批意见: 能够设置审批该流程时使用的常见审批意见有哪些。该设置在EMOSS2平台才使用。 3) 流程业务组件: 用来设置一个JAVA类, 重写父类( com.zbiti.core.config.wf.WorkFlowComponent) 的某些方法, 能够将流程的状态变化与业务操作的联系起来。如: 审批经过后要做某些业务处理, 能够重写父类的afterApprove方法实现。流程结束后要做某些业务处理, 能够重写父类的instanceEnded方法实现...等。具体的父类说明能够参见”JAVA_DOCS”目录下的javaDoc。 3.1.2.2. 流程节点属性设置 双击流程图中的节点或选择节点列表中的某个节点, 点击工具条的”属性”按钮, 弹出选中节点的属性设置窗口: A. 属性说明 l 节点ID: 节点在当前流程图中的唯一标识, 创立节点时会自动生成。 l 节点名称: 该节点的显示名称。 l X坐标: 流程节点在流程图的X坐标值。 l Y坐标: 流程节点在流程图的Y坐标值。 l 长度: 流程节点在流程图中显示的长度。 l 宽度: 流程节点在流程图中显示的宽度。 l 有效天数: 流程引擎只记录该属性, 尚未未使用。 l 待办URL: 显示该节点的一个流程待办工作项时, 使用的页面URL。如果未设置, 则使用流程的”待办URL”属性。 l 数据权限: 能够是: none-不控制权限, login-使用当前登录用户的权限, starter-使用发起人的权限。该属性只在EMOSS2平台使用。 l 审批方式: 能够设置有几个人( 或者百分之几的人) 审批经过( 负数表示回退, 如人数设置-1表示有一个人退回, 百分比设置-33表示有33%的人退回) 时, 该节点算是审批经过( 被退回) , 剩下未审批的工作项不再需要审批。 l 能够取回: 该节点的工作项审批经过后是否能够被取回。 l 能够自动提交: 该节点的工作项与前一节点的工作项属于同一个人的时候, 如果前一节点的工作项被审批经过了, 该节点的工作项是否能够自动设置为审批经过。 l 审批后是否提示打印: 该节点的工作项被审批经过后是否会提示打印流程。该属性只在EMOSS2平台使用。 l 常见审批意见: 能够设置审批该节点的工作项时使用的常见审批意见有哪些, 审批时的常见审批意见也包含流程属性的”常见审批意见”。该设置在EMOSS2平台才使用。 l 说明: 记录流程节点的说明信息。 B. 按钮信息 在”按钮信息”选项卡, 能够定义该节点的审批界面有哪些审批按钮。如下图: ”驳回”、 ”退回发起人”、 ”否决”、 ”废弃”按钮每个界面只能有一个, 其中”废弃”按钮只能设置在”发起节点”。 ”批量审批使用的按钮”用于指定一个审批经过的按钮, 当使用批量审批时, 相当于点击该按钮。 ”批量驳回使用的按钮”用于指定一个驳回的按钮, 当使用批量驳回时, 相当于点击该按钮。 点击”添加”按钮, 弹出添加按钮对话框: 在窗口上填写必要的信息: 按钮ID、 标题、 显示顺序、 是否可见后点击”确认”即可添加一个审批按钮。注: 按钮ID在一个节点中不能重复。 双击按钮列表中的某个按钮或者点击”编辑”按钮, 弹出该按钮的编辑窗口。与添加窗口一样。 点击”删除”按钮, 能够删除按钮列表中选中的按钮。 C. 审批用户范围设置 在”审批用户范围”选项卡, 能够定义该节点的审批用户有哪些。如下图: l 待办人员选择方式: 指提交给该节点时, 选择人员是单选还是多选。”自动全选”是指选择全部指定范围的用户, ”自动选择第一个”是指在指定范围的用户中选择第一个用户( 用户是根据CORE_SUER的SORT_ID字段排序的) 。 l SQL说明: ² C(XXX)表示公司编码为XXX的公司, 流程引擎会转换为SQL条件: C.COMPANY_CODE=’XXX’( C是CORE_COMPANY的别名) ; ² D(XXX)表示部门编码为XXX的部门, 流程引擎会转换为SQL条件: D.DEP_CODE=’XXX’ ( C是CORE_DEPARTMENT的别名) ; ² U(XXX)表示用户登录账号为XXX的用户, 流程引擎会转换为SQL条件: U.LOGIN_ID=’XXX’( U为CORE_USER的别名) ; ² R(XXX)表示角色编码为XXX的角色, 流程引擎会转换为SQL条件: UR.ROLE_CODE=’XXX’( UR为CORE_USER_ROLES的别名) ; ² {starter:XXX}或{currentUser:XXX}表示取发起人或当期用户的XXX属性的值。XXX能够是DepartmentCode、 ParentDepartmentCode、 CompanyCode、 ParentCompanyCode、 MainRoleCode、 loginId之一, 也能够是company_YYY、 department_YYY表示公司或部门的某个字段( YYY字段) 的属性值。 ² {XXX}表示取流程变量XXX的值。 SQL示例: 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’ 点击”公司”按钮将弹出公司编码的选择窗口, 如下图所示: 点击”部门”按钮将弹出部门编码的选择窗口, 如下图所示: 点击”用户”按钮将弹出用户账号的选择窗口, 如下图所示: 点击”角色”按钮将弹出角色编码的选择窗口, 如下图所示: 点击弹出窗口的”确定”按钮, 即能够在SQL文本框中光标位置插入相应的SQL。 D. 转办用户范围设置 在”转办用户范围”选项卡, 能够定义该节点的工作项能够转交给哪些用户处理。如下图: SQL的设置参照”审批用户范围设置”。 E. 传阅用户范围设置 在”传阅用户范围”选项卡, 能够定义该节点的工作项能够传阅给哪些用户查看。如下图: SQL的设置参照”审批用户范围设置”。 3.1.2.3. 连接属性设置 双击流程图中的连接或选择连接列表中的某个连接, 点击工具条的”属性”按钮, 弹出选中连接的属性设置窗口: 设置该连接的”转移条件”, 即满足这个条件时, 流程会从该连接的”源节点”提交到”目标节点”。 点击”添加”参数, 弹出”流程参数”选择窗口: 能够选择流程中定义的流程变量作为参数, 也能够选择发起人\当前提交人的某个属性作为参数, 也能够使用当前审批界面的按钮( 源节点定义的按钮, 批量审批或批量退回时的按钮使用节点”按钮信息”的”批量审批时使用的按钮”或”批量驳回时使用的按钮”) 作为参数。 {XXX}表示一个string型的参数, {n:XXX}表示一个number型的参数, {b:XXX}表示一个bool型的参数。 3.1.3. 保存流程图 l 点击工具条上的”保存”按钮能够保存当前流程图, 而且自动将当前流程图的版本递增( 所有同一编码的流程版本最大值加1) , 即会生成一个新版本的流程图( 如果当前流程版本没有被使用则把当前流程图删除) 。 l 点击工具条上的”覆盖保存”按钮能够保存当前流程图, 而且流程版本不变。 l 流程图保存到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. 删除流程图 选择流程版本明细中的某个流程版本, 点击工具条的”删除”按钮, 即可删除该流程版本。 3.1.6. 导出流程图 选择流程列表中的某几个流程图或流程版本明细列表中的某几个版本, 点击工具条的”导出”按钮, 即可将选中的流程图或版本导出成zip文件。 3.1.7. 导入流程图 点击工具条的”导入”按钮, 选择导出流程的zip文件, 即可将文件中的所有流程导入到当前数据库。注: 导入的流程启用时间( 有效开始时间) 为当前时间。 3.2. 流程编程接口使用 要使用流程编程接口, 必须将”流程编程接口”目录下的代码加入到项目代码中, 文件的目录结构能够根据实际需要修改。 3.2.1. 流程引擎数据源初始化 要使用流程引擎首先要初始化一个专用的数据源, 该数据源为流程配置加载、 组织架构信息获取、 流程图片生成等功能使用。数据源的初始化示例代码如下: 3.2.1.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:@192.168.1.1:1521:orcl”); properties.setProperty("jdbc.username", ”test”); properties.setProperty("jdbc.password", ”1”); f.init(properties, DataSource.CORE_DATASOURCE); DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE, f); ... 3.2.1.2. 使用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:@192.168.1.1: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", ”1000000”); 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("123456");//123456为CORE_USER的USER_ID u.setLogined(true); request.getSession().setAttribute("KEY_USER_BIND_SESSION",u); ... 3.2.4. 流程处理 EMOSS2流程引擎提供了流程处理的封装源代码( WFInvoker.js, WFInvoker.jsp, WFSelectUsers.jsp, WFInvoker.java...) , 各项目能够根据自己的需要做一定的修改。 流程处理的一次典型过程如下: 5: 选择审批人或转办人 ( 该步骤可能是自动完成) WFInvoker.js 客户端( js、 jsp) WFInvoker.java 1: 调用doXXX方法发起或审批流程 SelectUsers.jsp或 SelectUsers2.jsp 8: 返回JSON格式的正式处理结果 6: AJAX提交( 已选择审批人或转别人) 2: AJAX提交 4: 返回JSON格式的预处理结果 WFInvoker.jsp 7: 正式处理: 保存流程变量、 发起流程、 生成新待办... 3: 预处理: 计算流程变量、 下一结点及审批参与人... 流程业务组件 XXX.java 以下给出了发起和审批经过的示例代码: 3.2.4.1. 点击发起流程按钮: ... //发起test1流程 var datas = zbiti.WFInvoker.doStart(”test1”,”form1”); if(datas) { alert(”发起成功, 流程ID为: ”+datas.instanceId); } 3.2.4.2. 点击审批经过按钮: ... //审批经过工作项ID为111 var datas = zbiti.WFInvoker.doApprove(”111”,”form1”); if(datas) { alert(”审批成功! ”); } 3.2.4.3. 服务端实现业务处理 ... /** *test1流程的业务组件 */ public class Test1WFComponent extends WorkFlowComponent { public Test1WFComponent(DBCo
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服