工作流引擎详细设计说明书(GB8567——88)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安华信息
工作流引擎
详细设计说明书
2012-3-21
[该文档主要描述工作流引擎的实现细节。]
目录
1引言 (4)
1.1编写目的 (4)
1.2背景 (4)
1.3定义 (4)
1.4参考资料 (4)
2 程序详细设计 (5)
2.1工作流运行时(W ORKFLOW R UNTIME) (5)
2.1.1 程序概述 (5)
2.1.2 功能设计 (5)
2.1.3 外部接口 (11)
2.1.4 尚未解决的问题 (12)
2.2工作流设计器(W ORKFLOW D ESIGNER) (12)
2.2.1 程序概述 (12)
2.2.2 功能设计 (12)
2.2.3 外部接口 (16)
2.2.4 尚未解决的问题 (17)
1.3公共对象 (17)
1.4数据库结构说明 (21)
2.4.1地区表 (21)
2.4.2业务附件文件 (21)
2.4.3流程业务数据包 (21)
2.4.4流程业务数据包定义 (22)
2.4.5流程实例表 (22)
2.4.6流程日志 (23)
2.4.7已处理消息队列表 (23)
2.4.8待处理消息队列表 (24)
2.4.9流程状态结点 (24)
2.4.10流程状态参与角色关系表 (24)
2.4.11流程模板表 (25)
2.4.12流程模板与业务类别、险类标识关系表 (25)
2.4.13日志项表 (25)
2.4.14状态操作附加规则 (26)
2.4.15流程状态后活动 (26)
2.4.16流程状态前活动 (27)
2.4.17流程状态表单信息 (27)
2.4.18流程状态操作表 (27)
2.4.19流程状态操作消息表 (28)
详细设计说明书
1引言
1.1编写目的
工作流引擎的开发人员。
1.2背景
说明:
a.本系统名称:工作流引擎。
b.本系统概要设计工作由秦超完成,详细设计由王思远完成,刘云峰执行开发任务。
1.3定义
Workflow 工作流
Runtime 运行时
Designer设计器
MessageQueue 消息队列
1.4参考资料
列出有关的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2 程序详细设计
2.1 工作流运行时(WorkflowRuntime)
2.1.1 程序概述
工作流运行时是工作流概念的核心部分,作用于工作流服务生命周期的全部场景,挂接各项工作流的配套服务,如工作流实例状态跟踪、记录轨迹、消息分发等。
2.1.2 功能设计
1.WorkflowRuntime类
●命名空间:AHIT.WorkflowEngine
●关键字:sealed
●类职责:
✓确定工作流模板:
根据业务类型(1核保、2核赔)和险类标志(1农险、2非农险)确定使用的工
作流模板
✓创建工作流实例:
根据工作流模板表,状态结点表,结点的角色、操作、规则表创建工作流实例表和
流程日志表(如果已加载日志服务,调用日志服务)。
✓加载流程业务数据包
加载的业务数据包必须符合流程业务数据包定义表的规则,否则触发异常。
✓加载业务附加文件
✓获取工作流实例任务列表
包括待处理任务列表、已处理任务列表、逾期任务列表
✓获取单体工作流实例
主要返回指定实例的流程业务数据包
✓工作流操作
从待处理任务列表选择要处理的流程实例
取流程状态参与角色关系表判断操作的流程实例结点是否有权限
取状态操作附加规则表判断操作的流程实例结点的规则(由规则引擎实现)
在符合规则的前提下取流程状态操作表判断结点的下一步操作
将要更改工作流实例的操作添加至消息队列(交由消息队列服务处理)
●字段及属性:
●方法:
a)获得待处理任务列表
Public List
(参数是否加业务类型、险类标识)
根据操作者的ID,先取流程状态参与角色关系表取全部可操作的节点信息,
排除特例表的不应自己操作的节点信息,然后内关联流程实例表的当前节点字段,再左关联流程状态节点表的主键,得出所有待操作的实例信息及节点状态并返回。
b)根据操作员编号、实例编号获得待处理任务的详细信息
Class InstanceColletion
{
T_FlowInstance flowInstance;
T_FlowBizDataBag flowBizDataBag;
List
}
Public InstanceColletion GetInstance(string instanceNumber,string operatorNumber)
根据instanceId获取数据包BizDataBag、单体WorkflowInstance、还有可执行的操作集List
c)将流程业务数据包传给规则引擎返回可操作的流程列表
Public List
d)创建工作流实例
Public bool CreateInstance(BizDataBag bag,string bizNumber,string templateCode, attachFile file)