工作流引擎详细设计说明书GB856788.docx
- 文档编号:2895680
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:23
- 大小:23.27KB
工作流引擎详细设计说明书GB856788.docx
《工作流引擎详细设计说明书GB856788.docx》由会员分享,可在线阅读,更多相关《工作流引擎详细设计说明书GB856788.docx(23页珍藏版)》请在冰豆网上搜索。
工作流引擎详细设计说明书GB856788
安华信息
工作流引擎
详细设计说明书
2012-3-21
[该文档主要描述工作流引擎的实现细节。
]
详细设计说明书
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非农险)确定使用的工作流模板
✓创建工作流实例:
根据工作流模板表,状态结点表,结点的角色、操作、规则表创建工作流实例表和流程日志表(如果已加载日志服务,调用日志服务)。
✓加载流程业务数据包
加载的业务数据包必须符合流程业务数据包定义表的规则,否则触发异常。
✓加载业务附加文件
✓获取工作流实例任务列表
包括待处理任务列表、已处理任务列表、逾期任务列表
✓获取单体工作流实例
主要返回指定实例的流程业务数据包
✓工作流操作
从待处理任务列表选择要处理的流程实例
取流程状态参与角色关系表判断操作的流程实例结点是否有权限
取状态操作附加规则表判断操作的流程实例结点的规则(由规则引擎实现)
在符合规则的前提下取流程状态操作表判断结点的下一步操作
将要更改工作流实例的操作添加至消息队列(交由消息队列服务处理)
●字段及属性:
字段名称
字段描述
字段类型
备注
OperatingInstanceCount
当前实例数量
Int
静态存储
StartTime
开启时间
DateTime
静态存储
OperatingServiceCount
当前服务数量
Int
静态存储
●方法:
a)获得待处理任务列表
PublicList
(参数是否加业务类型、险类标识)
根据操作者的ID,先取流程状态参与角色关系表取全部可操作的节点信息,排除特例表的不应自己操作的节点信息,然后内关联流程实例表的当前节点字段,再左关联流程状态节点表的主键,得出所有待操作的实例信息及节点状态并返回。
b)根据操作员编号、实例编号获得待处理任务的详细信息
ClassInstanceColletion
{
T_FlowInstanceflowInstance;
T_FlowBizDataBagflowBizDataBag;
List
}
PublicInstanceColletionGetInstance(stringinstanceNumber,stringoperatorNumber)
根据instanceId获取数据包BizDataBag、单体WorkflowInstance、还有可执行的操作集List
c)将流程业务数据包传给规则引擎返回可操作的流程列表
PublicList
根据RecentNode和取出下一步可进行的操作列表,然后将Bag传入规则引擎,返回操作代码,再关联操作表的主键得到操作的List。
d)创建工作流实例
PublicboolCreateInstance(BizDataBagbag,stringbizNumber,stringtemplateCode,attachFilefile)
根据传入的数据包、业务单据号、模板编号创建实例,组装一个Message对象,传入调用MessageService.AddToMessageQueue(T_FlowMessageQueueWaitedmsg)。
e)根据传入的instanceNumber反持久化Workflow实例。
publicboolDePersistentInstance(stringinstanceNumber)
工作流运行时相关类
a)T_FlowBizDataBag类
(1)验证业务数据包,调用T_FlowBizDataBagDefinition类的相关方法进行验证
BoolValidateFlowBizDataBag(stringflowInstanceNumber);
(2)加载业务数据包
BoolAddFlowBizDataBag(T_FlowBizDataBagbizDataBag);
b)T_BizAttachFile类
(1)加载文件
BoolAddBizAttachFile(T_BizAttachFilebizAttachFile);
c)T_StatusOperationMessage类
(1)添加流程状态操作消息
BoolAddStatusOperationMessage(T_StatusOperationMessagestatusOperationMessage);
(2)根据实例编号导入流程状态操作消息
BoolGetStatusOperationMessage(stringflowInstanceNumber);
●限制及约束:
WorkflowRuntime是一个密封类,没有派生者,以单件模式创建,随WindowsService启动,运行时常驻内存。
2.MessageService类
●命名空间:
AHIT.WorkflowEngine
●关键字:
static
●类职责:
✓将消息添加至消息队列(物理表)
✓轮询消息队列并处理Task
✓判断某一具体Task是否合法
●字段及属性:
无。
●方法说明:
a)publicstaticVoidAddToMessageQueue(T_FlowMessageQueuqWaitedmsg)
将Message加入引擎待处理消息表。
b)publicstaticvoidExecuteTask()
循环访问待处理消息表,取时间戳最早的一条记录处理,共处理三件事情,第一是增加流程状态操作信息表的记录,二是更新实例表,三是写日志项表,在一个事务中控制,当处理结束时同时更新两张表,即在待处理消息表中删除记录和在已处理消息表中增加记录,若事务完成则回到循环体继续访问待处理消息表。
c)privatestaticboolJudgeTask(T_FlowMessageQueuqWaitedmsg)
利用message携带的实例信息判断该实例的当前操作是否满足要求。
如防止重复操作。
●限制及约束:
无。
3.LogService类
●命名空间:
AHIT.WorkflowEngine
●关键字:
static
●类职责:
✓填写日志
在创建流程实例时写流程日志
在操作工作流结点时写日志项
✓查看日志列表
✓查看单体日志
●字段及属性:
无
●方法:
PublicstaticvoidWriteFlowLog(T_FlowLogflowLog)
写流程日志。
PublicstaticvoidWriteLogItem(T_LogItemlogItem)
写日志项
PublicstaticList
根据实例编码取该实例的操作日志列表。
Log为流程日志和日志项的组合类
PublicstaticLogGetLog(stringlogItemNumber)
根据日志编码主键访问单体日志。
Log为流程日志和日志项的组合类
●限制及约束:
写日志受Task执行成功与否的制约,被包含在ExecuteTask()所触发的事务里。
4.ExceptionHelper类
●命名空间:
AHIT.WorkflowEngine
●关键字:
static
●类职责:
✓抛出自定义异常
●字段及属性:
无
●方法:
PublicstaticstringGetCustomizeException(stringexceptionCode)
●限制及约束:
无。
2.1.3外部接口
1.调用的外部接口(ExternalInterface)
a)获取系统级人员信息
b)获取系统级角色信息
c)将核赔后的业务状态传递至理赔子系统
d)将核保后的业务状态传递至承保子系统
e)获取地域字典描述
f)获取险种字典描述
g)获取规则引擎的判断结果
2.被调用的外部接口(PublicInterface)
a)查看当前核保流程状态
b)查看当前核赔流程状态
c)查看流程轨迹
2.1.4尚未解决的问题
1.与规则引擎的衔接
2.子流程的需求
2.2工作流设计器(WorkflowDesigner)
2.2.1程序概述
工作流设计器是定义工作流模板、流程节点、操作与规则的工具,是对静态定义的描述。
2.2.2功能设计
1.TemplateConfiguration类
●命名空间:
AHIT.WorkflowDesigner
●关键字:
无
●类职责:
✓根据业务类型(核保、核赔)和险类标识(是否农险)创建不同的双核工作流模板
✓设置工作流模板的流程业务数据包定义
✓构建工作流模板的各个结点
✓指定各个结点的权限
✓设置各个结点的级别、关系
✓设置结点之间的流转规则
✓指定各个结点的流程状态前活动事件和状态后活动事件
✓指定各个结点的流程状态表单信息(结点对应审批窗体显示信息实体类名,运行期从流程业务数据包读取)
●方法:
创建工作流模板方法
PublicboolCreateFlowTemplate(TemplateflowTemplate);
传入Template公共类,内部调用“其它模板配置相关类“构建工作流模板、节点、操作、规则等。
其它模板配置相关类:
2.T_FlowTemplate类
(1)根据模板编号获取模板实体
PublicT_FlowTemplateGetFlowTemplate(stringflowTemplateNumber);
(2)根据业务类型、险类取模板实体
PublicT_FlowTemplateGetFlowTemplate(stringbusinessType,stringclassFlag);
(3)创建流程模板
PublicboolAddFlowTemplate(T_FlowTemplateflowTemplate);
3.T_F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工作流 引擎 详细 设计 说明书 GB856788