EMOSS2流程引擎开发的指南

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EMOSS2流程引擎开发指南中博信息技术研究院
1.概述4
1.1.流程引擎说明4
1.2.流程引擎架构4
2.开发前准备5
2.1.建立组织架构视图5
2.1.1.公司(CORE_COMPANY)5
2.1.2.部门(CORE_DEPARTMENT)5
2.1.
3.员工(CORE_EMPLOYEE)5
2.1.4.用户(CORE_USER)6
2.1.5.角色(CORE_ROLE)6
2.1.6.用户流程角色表(CORE_USER_ROLES)7 2.2.建立流程数据表7
2.3.安装流程设计工具7
2.3.1.安装JDK7
2.3.2.安装流程设计工具8
2.4.将流程编程接口加入到项目代码中8
3.开发指南8
3.1.流程设计工具使用8
3.1.1.新增流程9
3.1.2.设计流程图9
3.1.2.1.流程属性设置11
A.流程属性说明11
B.流程变量定义12
C.流程数据属性13
D.高级属性13
3.1.2.2.流程节点属性设置14
A.属性说明15
B.按钮信息16
C.审批用户围设置17
D.转办用户围设置20
E.传阅用户围设置21
3.1.2.3.连接属性设置22
3.1.3.保存流程图24
3.1.
4.设置流程图24
3.1.5.删除流程图24
3.1.6.导出流程图24
3.1.7.导入流程图25
3.2.流程编程接口使用25
3.2.1.流程引擎数据源初始化25
3.2.1.1.不使用连接池方式:25
3.2.1.2.使用C3P0连接池方式25
3.2.2.流程配置的加载26
3.2.3.用户登录的改造(可选)26
3.2.
4.流程处理27
3.2.
4.1.点击发起流程按钮:27
3.2.
4.2.点击审批通过按钮:28
3.2.
4.3.服务端实现业务处理28
3.2.5.常用JAVA类说明29
3.2.5.1..ZBITI.CORE.CONFIG.WF.W ORK F LOW C OMPONENT29
3.2.5.2..ZBITI.CORE.CONFIG.WF.W ORK F LOW C ONFIG P ROVIDER29 3.2.5.3..ZBITI.CORE.CONFIG.WF.W ORK F LOW O BJECT30
3.2.5.
4..ZBITI.CORE.CONFIG.WF.WFI MAGE30
3.2.5.5..ZBITI.CORE.VO.P ARAMETER O BJECT30
3.2.5.6..ZBITI.CORE.CONFIG.WF.W ORK F LOW P ROXY30
3.2.5.7..ZBITI.CORE PONENTS.U SER C OMPONENT31
3.2.5.8..ZBITI.CORE.R ESOURCE P OOL31
3.2.5.9..ZBITI.CORE.CONSTS.T ABLES31
3.2.5.10..ZBITI.CORE.CONSTS.S EQUENCES31
4.附件32
1.概述
1.1.流程引擎说明
EMOSS2流程引擎是EMOSS2开发平台的一部分,主要完成流程发起,审批,监控等功能,是较轻量级的流程引擎,但完全可以满足企业的业务流程需求。

流程引擎目前支持的数据库有:oracle、mysql、sybase。

主要的组成部分有:
1,组织架构视图:流程引擎需要基于组织架构才能实现审批人的选择、工作项的生成、流转条件的判断等。

2,流程数据表:用于保存流程图、流程实例、工作项等流程相关的数据。

3,流程设计工具:用于设计流程图,分配不同的版本给不同的公司。

JDK要求必须是1.6与以上。

4,流程编程接口:提供流程的发起、审批、参与者计算等接口给外部程序调用。

主要是jar包形式,JDK的版本必须是1.5与以上。

2.开发前准备
2.1.建立组织架构视图
根据字段列表建立各个视图。

字段列表只列出必要字段,也可以根据需要扩展其他字段。

2.1.1.公司(CORE_COMPANY)
2.1.2.部门(CORE_DEPARTMENT)
2.1.
3.员工(CORE_EMPLOYEE)
2.1.4.用户(CORE_USER)
2.1.5.角色(CORE_ROLE)
2.1.6.用户流程角色表(CORE_USER_ROLES)
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
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.流程属性说明
●流程编码:即当前流程图的代码,不可修改。

●版本号:即当前流程图的版本号,不可修改。

每次保存版本号自动递增(也可以使
用覆盖保存,不增加版本号)。

●流程名称:当前流程的名称,每个版本的流程图名称可以不一样。

●有效天数:流程引擎只记录该属性,尚未未使用。

●待办URL:显示一个流程待办工作项时,使用的页面URL。

●待办查询URL:查询该流程的待办工作项时,使用的页面URL。

●已办URL:显示一个流程已办流程实例时,使用的页面URL。

●已办查询URL:查询该流程的已办流程实例时,使用的页面URL。

●我的申请查询URL:查询该流程的“我的申请”流程实例(登录人发起的流程实例)
时,使用的页面URL。

●已办界面数据权限:可以是:none-不控制权限,login-使用当前登录用户的权限,
starter-使用发起人的权限。

该属性只在EMOSS2平台使用。

●流程结束方式:可以设置有几个人(或者百分之几的人)审批通过达到结束节点时,
流程算是正式结束,剩下未审批的工作项不再需要审批。

●说明:记录流程图的说明信息。

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类,重写父类
(.zbiti.core.config.wf.WorkFlowComponent)的某些方法,可以将流程的状态变化与业务操作的联系起来。

如:审批通过后要做某些业务处理,可以重写父类的
afterApprove方法实现。

流程结束后要做某些业务处理,可以重写父类的
instanceEnded方法实现...等。

具体的父类说明可以参见“JAVA_DOCS”目录下的
javaDoc。

3.1.2.2.流程节点属性设置
双击流程图中的节点或选择节点列表中的某个节点,点击工具条的“属性”按钮,弹出选中节点的属性设置窗口:
A.属性说明
●节点ID:节点在当前流程图中的唯一标识,创建节点时会自动生成。

●节点名称:该节点的显示名称。

●X坐标:流程节点在流程图的X坐标值。

●Y坐标:流程节点在流程图的Y坐标值。

●长度:流程节点在流程图中显示的长度。

●宽度:流程节点在流程图中显示的宽度。

●有效天数:流程引擎只记录该属性,尚未未使用。

●待办URL:显示该节点的一个流程待办工作项时,使用的页面URL。

如果未设置,则使用
流程的“待办URL”属性。

●数据权限:可以是:none-不控制权限,login-使用当前登录用户的权限,starter-使
用发起人的权限。

该属性只在EMOSS2平台使用。

●审批方式:可以设置有几个人(或者百分之几的人)审批通过(负数表示回退,如人数
设置-1表示有一个人退回,百分比设置-33表示有33%的人退回)时,该节点算是审批通过(被退回),剩下未审批的工作项不再需要审批。

●可以取回:该节点的工作项审批通过后是否可以被取回。

●可以自动提交:该节点的工作项与前一节点的工作项属于同一个人的时候,如果前一节
点的工作项被审批通过了,该节点的工作项是否可以自动设置为审批通过。

●审批后是否提示打印:该节点的工作项被审批通过后是否会提示打印流程。

该属性只在
EMOSS2平台使用。

●常用审批意见:可以设置审批该节点的工作项时使用的常用审批意见有哪些,审批时的
常用审批意见也包含流程属性的“常用审批意见”。

该设置在EMOSS2平台才使用。

●说明:记录流程节点的说明信息。

B.按钮信息
在“按钮信息”选项卡,可以定义该节点的审批界面有哪些审批按钮。

如下图:
“驳回”、“退回发起人”、“否决”、“废弃”按钮每个界面只能有一个,其中“废弃”按钮只能设置在“发起节点”。

“批量审批使用的按钮”用于指定一个审批通过的按钮,当使用批量审批时,相当于点击该按钮。

“批量驳回使用的按钮”用于指定一个驳回的按钮,当使用批量驳回时,相当于点击该按钮。

点击“添加”按钮,弹出添加按钮对话框:
在窗口上填写必要的信息:按钮ID、标题、显示顺序、是否可见后点击“确认”即可添加一个审批按钮。

注:按钮ID在一个节点中不能重复。

双击按钮列表中的某个按钮或者点击“编辑”按钮,弹出该按钮的编辑窗口。

与添加窗口一样。

点击“删除”按钮,可以删除按钮列表中选中的按钮。

C.审批用户围设置
在“审批用户围”选项卡,可以定义该节点的审批用户有哪些。

如下图:
●待办人员选择方式:指提交给该节点时,选择人员是单选还是多选。

“自动全选”是指
选择全部指定围的用户,“自动选择第一个”是指在指定围的用户中选择第一个用户(用户是根据CORE_SUER的SORT_ID字段排序的)。

●SQL说明:
✧C(XXX)表示公司编码为XXX的公司,流程引擎会转换为SQL条件:C
PANY_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 PANY_CODE=’A1001’ AN
D 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.保存流程图
●点击工具条上的“保存”按钮可以保存当前流程图,并且自动将当前流程图的版本递增
(所有同一编码的流程版本最大值加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.删除流程图
选择流程版本明细中的某个流程版本,点击工具条的“删除”按钮,即可删除该流程版本。

3.1.6.导出流程图
选择流程列表中的某几个流程图或流程版本明细列表中的某几个版本,点击工具条的“导出”按钮,即可将选中的流程图或版本导出成zip文件。

3.1.7.导入流程图
点击工具条的“导入”按钮,选择导出流程的zip文件,即可将文件中的所有流程导入到当前数据库。

注:导入的流程启用时间(有效开始时间)为当前时间。

3.2.流程编程接口使用
要使用流程编程接口,必须将“流程编程接口”目录下的代码加入到项目代码中,文件的目录结构可以根据实际需要修改。

3.2.1.流程引擎数据源初始化
要使用流程引擎首先要初始化一个专用的数据源,该数据源为流程配置加载、组织架构信息获取、流程图片生成等功能使用。

数据源的初始化示例代码如下:
3.2.1.1.不使用连接池方式:
...
import .zbiti.core.util.db.DataSource;
import .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("ername", “test”);
properties.setProperty("jdbc.password", “1”);
f.init(properties, DataSource.CORE_DATASOURCE);
DataSource.addDBConnectionFactory(DataSource.CORE_DATASOURCE, f);
...
3.2.1.2.使用C3P0连接池方式
...
import .zbiti.core.util.db.DataSource;
import .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("ername", “test”);
properties.setProperty("jdbc.password", “1”);
properties.setProperty("maxPoolSize", “10”);
pro perties.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表中,在系统启动时或流程图被修改后,必须重新加载流程配置。

需要执行的代码如下:
...
.zbiti.core.config.wf.WorkFlowConfigProvider.load();
...
3.2.3.用户登录的改造(可选)
流程引擎使用com.zbiti.core er保存登录用户信息,可以在用户登录的时候创建com.zbiti.core er实例保存在session中,这样不需要每次与流程引擎交互时都创建一次com.zbiti.core er。

登录时执行的示例代码如下:
import .zbiti.core er;
import .zbiti.core erComponent;
...
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...),各项目可以根据自己的需要做一定的修改。

流程处理的一次典型过程如下:
以下给出了发起和审批通过的示例代码:
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(DBConnection dbc, ParameterObject po,
WorkFlowObject wfo, String instanceId, String workItemId,
String nodeId) {
super(dbc, po, wfo, instanceId, workItemId, nodeId);
}
/**
* 计算流程的变量
*/
public Map<String, String> calcWorkFlowVariables(boolean isPreprocess) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("item1",po.getParameterValue("txtAAA"));
map.put("item2","aaa");
return map;
}
/**
* 流程发起
*/
public void afterStart(List<String> 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<String> newWorkItems) throws Exception{ super.afterApprove(newWorkItems);
if("CWSH".equals(this.currentNodeId)){
//TODO something...
}
}
}
3.2.5.常用JAVA类说明
3.2.5.1..zbiti.core.config.wf.WorkFlowComponent
该类是流程业务组件的父类,所有的流程业务组件必须继承该类,重写该类的方法,实现流程状态变动与业务操作的联动。

3.2.5.2..zbiti.core.config.wf.WorkFlowConfigProvider
流程配置提供类。

可以加载CORE_WF_CONFIG中所有的流程图,并且提供获取指定流程图信息的方法。

3.2.5.3..zbiti.core.config.wf.WorkFlowObject
流程定义信息类。

该类保存流程图中的全部信息,可以通过其中的方法取得流程图的节点、按钮、连接、流程变量等信息。

3.2.5.
4..zbiti.core.config.wf.WFImage
流程图生成类。

该类可以生成某一个流程实例的流程图。

3.2.5.5..zbiti.core.vo.ParameterObject
输入参数类。

该类用来保存request中的参数以与当前的登录用户。

3.2.5.6..zbiti.core.config.wf.WorkFlowProxy
流程操作类。

该类是流程引擎操作流程的核心类,提供发起、审批、驳回、转办、否决、恢
.
该类的静态变量:
1,SQL_GET_PARTICIPANTS_BY_CONDITION:根据条件查询审批人员的SQL(SQL中必须有{p:condition}参数)。

SQL中使用的表固定别名:C代表CORE_COMPANY,D代表CORE_DEPARTMENT,U代表CORE_USER,UR代表CORE_USER_ROLES,这些别名不可修改。

可以通过修改该变量值,达到使用自定义的SQL来查询审批人员的目的。

查询结果必须包含USER_ID字段。

2,SQL_GET_PARTICIPANTS_BY_USER_ID:根据USER_ID查询审批人员的SQL(SQL中必须有{n:USER_ID}参数)。

SQL中使用的表固定别名:C代表CORE_COMPANY,D代表CORE_DEPARTMENT,U代表CORE_USER,这些别名不可修改。

可以通过修改该变量值,达到使用自定义的SQL来查询审批人员的目的。

查询结果必须包含USER_ID字段。

3.2.5.7..zbiti.core erComponent
用户组件类。

该类通过查询组织架构视图取得指定用户的信息。

3.2.5.8..zbiti.core.ResourcePool
资源池。

该类保存当前环境的信息(当前用户、当前数据库连接、线程信息等)。

调用流程引擎前必须设置当前的用户以与操作的按钮ID,如:
...
ThreadObject to = ResourcePool.getCurrentThreadObject();
to.setButtonId(po.getParameterValue("__current_button_id"));
ResourcePool.setCurrentUser(po.getUser());
...
3.2.5.9..zbiti.core.consts.Tables
平台数据表名。

该类定义平台使用到的全部数据表的名称。

当项目用的表和平台用的表有冲突时,可以修改平台用的表名,同时修改该类里面定义的表名,如:
...
Tables.CORE_COMPANY=”CORE_COMPANY2”;
...
3.2.5.10..zbiti.core.consts.Sequences
平台序列名。

该类定义平台使用到的全部序列的名称。

当项目用的表和平台用的序列有冲突时,可以修改平台用的序列名,同时修改该类里面定义的序列名,如:
...
Sequences.SEQ_COMMON_BASE=”SEQ_COMMON_BASE2”;
...
.
4.附件
本文档包含以下附件:
1,流程数据表.pdm
2,“流程设计工具”目录
3,“流程编程接口”目录
4,“JAVA_DOCS”目录。

相关文档
最新文档