工作流引擎详细设计说明书(GB8567——88).doc

上传人:ng****60 文档编号:3287410 上传时间:2019-05-28 格式:DOC 页数:28 大小:290.50KB
下载 相关 举报
工作流引擎详细设计说明书(GB8567——88).doc_第1页
第1页 / 共28页
工作流引擎详细设计说明书(GB8567——88).doc_第2页
第2页 / 共28页
工作流引擎详细设计说明书(GB8567——88).doc_第3页
第3页 / 共28页
工作流引擎详细设计说明书(GB8567——88).doc_第4页
第4页 / 共28页
工作流引擎详细设计说明书(GB8567——88).doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、安华信息工作流引擎详细设计说明书2012-3-21该文档主要描述工作流引擎的实现细节。2目录1 引言 .41.1 编写目的 .41.2 背景 .41.3 定义 .41.4 参考资料 .42 程序详细设计 .52.1 工作流运行时(WORKFLOWRUNTIME) .52.1.1 程序概述 .52.1.2 功能设计 .52.1.3 外部接口 .112.1.4 尚未解决的问题 .122.2 工作流设计器(WORKFLOWDESIGNER ) .122.2.1 程序概述 .122.2.2 功能设计 .122.2.3 外部接口 .162.2.4 尚未解决的问题 .171.3 公共对象 .171.4 数

2、据库结构说明 .202.4.1 地区表 .202.4.2 业务附件文件 .202.4.3 流程业务数据包 .2032.4.4 流程业务数据包定义 .212.4.5 流程实例表 .212.4.6 流程日志 .222.4.7 已处理消息队列表 .222.4.8 待处理消息队列表 .232.4.9 流程状态结点 .232.4.10 流程状态参与角色关系表 .232.4.11 流程模板表 .242.4.12 流程模板与业务类别、险类标识关系表 .242.4.13 日志项表 .242.4.14 状态操作附加规则 .252.4.15 流程状态后活动 .252.4.16 流程状态前活动 .262.4.17

3、流程状态表单信息 .262.4.18 流程状态操作表 .262.4.19 流程状态操作消息表 .274详细设计说明书1 引言1.1 编写目的工作流引擎的开发人员。1.2 背景说明:a 本系统名称:工作流引擎。b 本系统概要设计工作由秦超完成,详细设计由王思远完成,刘云峰执行开发任务。1.3 定义Workflow 工作流Runtime 运行时Designer 设计器MessageQueue 消息队列1.4 参考资料列出有关的参考资料,如:a 本项目的经核准的计划任务书或合同、上级机关的批文;5b 属于本项目的其他已发表的文件;c 本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些

4、文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。2 程序详细设计2.1 工作流运行时(WorkflowRuntime) 2.1.1 程序概述工作流运行时是工作流概念的核心部分,作用于工作流服务生命周期的全部场景,挂接各项工作流的配套服务,如工作流实例状态跟踪、记录轨迹、消息分发等。2.1.2 功能设计1. WorkflowRuntime 类 命名空间:AHIT.WorkflowEngine 关键字: sealed 类职责: 确定工作流模板:根据业务类型(1 核保、2 核赔)和险类标志(1 农险、2 非农险)确定使用的工作流模板 创建工作流实例:根据工作流模板表,状态结点表

5、,结点的角色、操作、规则表创建工作流实例表和流程日志表(如果已加载日志服务,调用日志服务)。6 加载流程业务数据包加载的业务数据包必须符合流程业务数据包定义表的规则,否则触发异常。 加载业务附加文件 获取工作流实例任务列表包括待处理任务列表、已处理任务列表、逾期任务列表 获取单体工作流实例主要返回指定实例的流程业务数据包 工作流操作从待处理任务列表选择要处理的流程实例取流程状态参与角色关系表判断操作的流程实例结点是否有权限取状态操作附加规则表判断操作的流程实例结点的规则(由规则引擎实现)在符合规则的前提下取流程状态操作表判断结点的下一步操作将要更改工作流实例的操作添加至消息队列(交由消息队列服

6、务处理 ) 字段及属性:字段名称 字段描述 字段类型 备注OperatingInstanceCount当前实例数量 Int 静态存储StartTime 开启时间 DateTime 静态存储OperatingServiceCount 当前服务数量 Int 静态存储 方法:a) 获得待处理任务列表Public List GetInstanceList(string 7operatorNumber);(参数是否加业务类型、险类标识)根据操作者的 ID,先取流程状态参与角色关系表取全部可操作的节点信息,排除特例表的不应自己操作的节点信息,然后内关联流程实例表的当前节点字段,再左关联流程状态节点表的主键

7、,得出所有待操作的实例信息及节点状态并返回。b) 根据操作员编号、实例编号获得待处理任务的详细信息Class InstanceColletionT_FlowInstance flowInstance;T_FlowBizDataBag flowBizDataBag;List operationMessageList;Public InstanceColletion GetInstance(string instanceNumber,string operatorNumber)根据 instanceId 获取数据包 BizDataBag、单体 WorkflowInstance、还有可执行的操作集

8、List这三者组合而成的大对象InstanceColletion。c) 将流程业务数据包传给规则引擎返回可操作的流程列表Public List GetOperations(BizDataBag bag)根据 RecentNode 和取出下一步可进行的操作列表,然后将 Bag 传入规则引擎,返回操作代码,再关联操作表的主键得到操作的 List。8d) 创建工作流实例Public bool CreateInstance(BizDataBag bag,string bizNumber,string templateCode, attachFile file)根据传入的数据包、业务单据号、模板编号创建

9、实例,组装一个 Message对象,传入调用 MessageService. AddToMessageQueue(T_FlowMessage QueueWaited msg)。e) 根据传入的 instanceNumber 反持久化 Workflow 实例。public bool DePersistentInstance(string instanceNumber)工作流运行时相关类a) T_FlowBizDataBag 类(1) 验证业务数据包,调用 T_FlowBizDataBagDefinition 类的相关方法进行验证Bool ValidateFlowBizDataBag(string

10、 flowInstanceNumber);(2) 加载业务数据包Bool AddFlowBizDataBag(T_FlowBizDataBag bizDataBag);b) T_BizAttachFile 类(1) 加载文件Bool AddBizAttachFile(T_BizAttachFile bizAttachFile);c) T_StatusOperationMessage 类(1) 添加流程状态操作消息Bool AddStatusOperationMessage(T_StatusOperationMessage statusOperationMess age);(2) 根据实例编号导

11、入流程状态操作消息9Bool GetStatusOperationMessage(string flowInstanceNumber); 限制及约束:WorkflowRuntime 是一个密封类,没有派生者,以单件模式创建,随 Windows Service 启动,运行时常驻内存。2. MessageService 类 命名空间:AHIT.WorkflowEngine 关键字:static 类职责: 将消息添加至消息队列(物理表) 轮询消息队列并处理 Task 判断某一具体 Task 是否合法 字段及属性:无。 方法说明:a) public static Void AddToMessageQu

12、eue(T_FlowMessageQueuqWaited msg)将 Message 加入引擎待处理消息表。b) public static void ExecuteTask()循环访问待处理消息表,取时间戳最早的一条记录处理,共处理三件事情,第一是增加流程状态操作信息表的记录,二是更新实例表,三是写日志项表,在一个事务中控制,当处理结束时同时更新两张表,即在待处理消息表中删除记录和在已处理消息表中增加记录,若事务完成则回到循环体继续访问待10处理消息表。c) private static bool JudgeTask(T_FlowMessageQueuqWaited msg)利用 messa

13、ge 携带的实例信息判断该实例的当前操作是否满足要求。如防止重复操作。 限制及约束:无。3. LogService 类 命名空间:AHIT.WorkflowEngine 关键字:static 类职责: 填写日志在创建流程实例时写流程日志在操作工作流结点时写日志项 查看日志列表 查看单体日志 字段及属性:无 方法:Public static void WriteFlowLog(T_FlowLog flowLog)写流程日志。Public static void WriteLogItem(T_LogItem logItem)写日志项Public static List GetLogs(string instanceCode)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。