2024年5月3日发(作者:)
一:数据模型E_R图
PROCESS
involves
PROC_ID
PROC_NAME
PROC_DESC
contains
ASSGN_RULE
ACT_ID
BASED_ON
METHOD
DEPT_ID
TEAM_ID
ROLE_ID
EX_FUNC
HAVE_DONE_TASKS
TASK_ID
SERIAL_NO
ENTITY_ID
PRE_ACT_ID
CURR_ACT_ID
STAFF_ID
GRANTOR_ID
COMPLETION_FLAG
DATE_CREATED
DATE_ACCEPTED
DATE_COMPLETED
assigned to
PRE_RULE
DEPNT_ID
DEPNT_ACT_ID
DEPNT_ACT_STATUS
involved in
ROUTING_RULE
PRE_ACT_ID
CURR_ACT_ID
COMPLETION_FLAG
NEXT_ACT_ID_LIST
PRE_DEPNT_SET
has rules
INPUT_INTERFACE
TASK_ID
CURR_STAFF_ID
NEXT_STAFF_ID
ENTITY_ID
EXCHANGE_PARAMS
INPUT_RULE
PRE_TASK_ID
ACTIVITY
ACT_ID
PROC_ID
ACT_NAME
TIME_ALLOWED
ACT_ROUTER
RULE_APPLIED
EX_PRE_RULE_FUNC
EX_POST_RULE_FUNC
ACT_TYPE
OR_MERGE_FLAG
NUM_VOTES_NEEDED
AUTO_EXECUTIVE
ACT_DESC
TO_DO_TASK_LIST
TASK_ID
SERIAL_NO
ENTITY_ID
PRE_ACT_ID
CURR_ACT_ID
STAFF_ID
GRANTOR_ID
TASK_STATUS
DATE_CREATED
DATE_ACCEPTED
instances of
instances of
ACT_ATTCH_PARMS
ACT_ID
PARAM_NAME
PARAM_DESC
说明:
1.1 信息模型
信息模型的核心是业务活动表(简称活动)ACTIVITY,其他相关的表结构主要有业务
过程PROCESS、业务规则(活动流转规则)ROUTING_RULE、活动前依赖规则PRE_RULE、
任务指派规则ASSGN_RULE、任务列表TO_DO_TASK_LIST以及已完成的任务列表
HAVE_DONE_TASKS。从图中可以看出,ACTIVITY与其他表之间都存在联系。
1.1.1 活动类型
每个业务过程由若干业务活动组成,不同的业务活动通过各不相同的ACT_ID来唯一标
识,ACT_TYPE则指明相应活动的类型。同一个业务活动在工作流运行时可能具有多个实例
(instance)。我们将活动的实例称为任务
1
,将属于同一业务过程的任务称为属于同一批次
的任务。有的业务活动可能针对具体的业务环节,即在前台(后台)对应实际的应用逻辑;
有的业务活动则不针对具体的业务环节。活动类型可以进行如下分类:
INITIAL
,初始化活动,业务过程的第一个活动,不针对具体业务环节。
INTERACTION
,常规交互活动,
INTERACTION
活动对应实际的业务环节,在前台对应
实际的应用逻辑,完成此活动需要实际人员的参与。在所有活动类型中,只有
INTERACTION
活动才需要与实际人员交互。
AUTOMATION
,常规自动活动,同样对应实际的业务环节,但是实际的应用逻辑位于
后台,由工作流引擎自动调用完成。AUTO_EXECUTIVE指明相应应用逻辑的执行体。
AND_BRANCH
,与分支活动,不针对具体业务环节,此活动将同时派生出若干后继
活动。
AND_MERGE
,与汇聚活动,是一同步活动,不针对具体业务环节,流经此处的任务
将进行与汇聚同步。此活动将进行活动的前依赖规则检查,只有所有的前依赖规则均被满足,
才可流向后继活动。
OR_MERGE
,或汇聚活动,是一同步活动,不针对具体业务环节,流经此处的任务将
进行或汇聚同步。它同样将进行活动的前依赖规则检查,但是在前依赖规则只要存在一条满
足指定条件的,就可以流向后继活动。OR_MERGE_FLAG用于指定或汇聚条件。
VOTE_MERGE
,投票汇聚活动,是一同步活动,不针对具体业务环节,同一批次的
任务只有达到NUM_VOTES_NEEDED所指定的票数才可流向后继活动。
DUMMY
,哑活动,不针对具体业务环节,它可以作为某些活动的虚拟后继活动,还
可以使用它来构造更为复杂的业务规则。若哑活动有后继活动,则可以立即流向后继活动。
COMPLETION
,终结活动,表明相应业务过程的终结,不针对具体业务环节。
1.1.2 业务规则的表示
在工作流引擎中,业务规则可以分解成活动的前依赖规则和活动的后转发规则。活动
的前依赖规则指明相应活动的启动条件,启动条件是通过相应活动的直接前趋活动以及相应
的状态标志来表示的,前依赖规则包含顺序、与汇聚、或汇聚和投票汇聚四种规则。活动的
后转发规则指的是当前活动所对应的任务结束后该启动哪些后继活动,后转发规则包含顺
序、或分支和与分支三种规则。图1中的PRE_RULE表、ROUTING_RULE表以及ACTIVITY
表中的ACT_TYPE和RULE_APPLIED等字段联合表示活动的前依赖规则和后转发规则。
由于我们将各种汇聚活动单独抽取出来,因此可以用很简洁的关系结构来表达活动的
前依赖和后转发规则。首先ACTIVITY表中的RULE_APPLIED字段指示相应活动应该采用
何种规则判断准则,它可以有四种取值:
DEFAULT
、
USER_DEFINED_PRE_RULE
、
USER_DEFINED_POST_ROUTING_RULE
和
USER_DEFINED_BOTH_RULE
。
DEFAULT
表示由工
作流引擎自动根据PRE_RULE表和ROUTING_RULE表来进行规则检查。考虑到业务规则
的多样性,本文提供了自定义方式来表达那些无法用缺省规则表示的特殊业务规则,
ACTIVITY表中的EX_PRE_RULE_FUNC和EX_POST_RULE_FUNC分别指定了前依赖和后
转发规则的自定义调用接口。自定义业务规则的行为完全由相应的程序确定。一般情况下,
大多数业务规则都可以直接通过
DEFAULT
方式表达。接下来将讨论在
DEFAULT
方式下前依
赖规则和后转发规则的表示。
活动的后转发规则主要通过表ROUTING_RULE表示,后转发规则可以用如下四元组
来表达:
Post_Routing_Rule = (
PRE_ACT_ID, CURR_ACT_ID, COMPLETION_FLAG, NEXT_ACT_ID_LIST
)
其含义是:在当前活动的ACT_ID为
CURR_ACT_ID
的情况下,如果当前活动的前趋活动的
ACT_ID为
PRE_ACT_ID
并且当前活动的结束标记为
COMPLETION_FLAG
的话,工作流将流
向由
NEXT_ACT_ID_LIST
所指明的后继活动。
前依赖规或则需联合PRE_RULE、ROUTING_RULE和ACTIVITY共同表示,前依赖
规则可以用一个三元组来表达,即:
Pre_Dependency_Rule = (
PRE_ACT_ID, CURR_ACT_ID, PRE_DEPNT_SET
)
PRE_DEPNT_SET为前依赖活动集,其中的每一个元素又可以用另外一个三元组来表示:
发布评论