收藏 分享(赏)

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

上传人:fcgy86390 文档编号:4454056 上传时间:2018-12-29 格式: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 流程状态表单信息 .26

3、2.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、还有可执行的操作集 List这三者组合而成的

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

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

10、eNumber);(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) 根据实例编号导入流程状态操作消息9Bo

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

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

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

14、e)11根据实例编码取该实例的操作日志列表。Log 为流程日志和日志项的组合类Public static Log GetLog(string logItemNumber)根据日志编码主键访问单体日志。Log 为流程日志和日志项的组合类 限制及约束:写日志受 Task 执行成功与否的制约,被包含在 ExecuteTask()所触发的事务里。4. ExceptionHelper 类 命名空间:AHIT.WorkflowEngine 关键字:static 类职责: 抛出自定义异常 字段及属性:无 方法:Public static string GetCustomizeException(string

15、 exceptionCode) 限制及约束:无。2.1.3 外部接口1. 调用的外部接口(External Interface)a) 获取系统级人员信息b) 获取系统级角色信息c) 将核赔后的业务状态传递至理赔子系统d) 将核保后的业务状态传递至承保子系统e) 获取地域字典描述12f) 获取险种字典描述g) 获取规则引擎的判断结果2. 被调用的外部接口(Public Interface)a) 查看当前核保流程状态b) 查看当前核赔流程状态c) 查看流程轨迹2.1.4 尚未解决的问题1. 与规则引擎的衔接2. 子流程的需求2.2 工作流设计器(WorkflowDesigner)2.2.1 程序概

16、述工作流设计器是定义工作流模板、流程节点、操作与规则的工具,是对静态定义的描述。2.2.2 功能设计1. TemplateConfiguration 类 命名空间:AHIT.WorkflowDesigner 关键字:无 类职责: 根据业务类型(核保、核赔)和险类标识(是否农险)创建不同的双核工作流模板13 设置工作流模板的流程业务数据包定义 构建工作流模板的各个结点 指定各个结点的权限 设置各个结点的级别、关系 设置结点之间的流转规则 指定各个结点的流程状态前活动事件和状态后活动事件 指定各个结点的流程状态表单信息(结点对应审批窗体显示信息实体类名,运行期从流程业务数据包读取) 方法:创建工作

17、流模板方法Public bool CreateFlowTemplate(Template flowTemplate);传入 Template 公共类,内部调用“其它模板配置相关类“构建工作流模板、节点、操作、规则等。其它模板配置相关类: 2. T_FlowTemplate 类(1) 根据模板编号获取模板实体Public T_FlowTemplate GetFlowTemplate(string flowTemplateNumber);(2) 根据业务类型、险类取模板实体Public T_FlowTemplate GetFlowTemplate(string businessType, stri

18、ng classFlag);(3) 创建流程模板Public bool AddFlowTemplate(T_FlowTemplate flowTemplate);3. T_FlowStatusNode 类14(1) 根据模板编号取状态结点列表Public List GetFlowStatusNodeList(string templateNumber);(2) 根据结点编号取状态结点实体Public T_FlowStatusNode GetFlowStatusNode(string nodeNumber);(3) 添加状态结点实体Public bool AddFlowStatusNode(T_

19、FlowStatusNode flowStatusNode);4. T_FlowStatusNodeRole 类(1) 根据角色、状态结点编号取流程状态参与角色关系表实体Public T_FlowStatusNodeRole GetFlowStatusNodeRole(string RoleNumber, string FlowStatusNodeNumber);(2) 也可以根据用户名,暂不考虑(3) 添加流程状态参与角色关系表Public bool AddFlowStatusNodeRole(T_FlowStatusNodeRole flowStatusNodeRole);5. T_Sta

20、tusOperation 类(1) 根据状态结点编号取流程状态操作实体Public T_StatusOperation GetStatusOperation(string flowStatusNodeNumber);(2) 添加流程状态操作实体Public bool AddStatusOperation(T_StatusOperation statusOperation);6. FlowBizDataBagDefinition 类(1) 添加流程业务数据包定义Public bool AddFlowBizDataBagDefinition(T_FlowBizDataBagDefinition d

21、ataBagDefini tion)15(2) 根据模板编号取数据包定义实体Public List GetFlowBizDataBagDefinition(string flowTemp lateNumber);7. T_StatusBeforeAction(1) 根据模板编号取流程状态前活动实体列表List GetStatusBeforeAction(string flowTemplateNumber);(2) 添加流程状态前活动实体Public bool Add StatusBeforeAction(T_ StatusBeforeAction statusBeforeAction);8.

22、T_StatusAfterAction(1) 根据模板编号取流程状态后活动实体列表List GetStatusAfterAction(string flowTemplateNumber);(2) 添加流程状态后活动实体Public bool AddStatusAfterAction(T_ StatusAfterAction statusAfterAction);9. T_StatusFormInfo(1) 根据状态结点编号取流程状态表单信息实体T_StatusFormInfo GetStatusFormInfo(string flowStatusNodeNumber);(2) 添加流程状态表单

23、信息实体Public bool AddStatusFormInfo(T_StatusFormInfo statusFormInfo);1. Designer 类(Version 1.1 的内容) 命名空间:AHIT.WorkflowDesigner 关键字:无16 类职责: 以图形化的方式配置工作流模板3. RuleDefinition 类 命名空间:AHIT.WorkflowDesigner 关键字:无 类职责: 创建并保存规则 修改并保存规则 停用规则规则定义相关类a) RuleDefinition 类(1) 调用规则引擎设计窗体Public string CallRuleEngine(R

24、ule rule);传入 Rule 类(内含规则表达式及规则涉及到的实体对象),返回规则引擎编号(2) 保存规则引擎编号,调用 T_StatusActionRule 类Public bool SaveRule(string ruleNumber);b) T_StatusActionRule 类(1) 根据流程状态操作编号取状态操作附加规则(主要取规则引擎编号)Public T_StatusActionRule GetStatusActionRule(string statusOperationNumber);(2) 添加状态操作附加规则Public bool AddStatusActionRu

25、le(T_StatusActionRule statusActionRule);172.2.3 外部接口1. 调用的外部接口(External Interface)a) 获取系统级人员信息b) 获取系统级角色信息c) 获取地域字典描述d) 获取险种字典描述e) 定义规则2. 被调用的外部接口(Public Interface)无。2.2.4 尚未解决的问题1. 与规则引擎的衔接2. 子流程的需求1.3 公共对象1、Template 类字段名称 字段描述 字段类型 备注FlowTemplateNumber 流程模板编号 Int 静态存储Name 流程模板名称 String 静态存储Version

26、 流程模板版本 String 静态存储FlowTemplateType 流程模板类型 String 静态存储StopFlag 停用标识 bool 静态存储18FlowTemplateRelationNumber流程模板地区关系编号int 静态存储BusinessType 业务类型 String 静态存储RiskFlag 险类标识 string 静态存储FlowBizDataBagDefinitionNumber流程业务数据包定义编号Int 静态存储DataBagDefinitionXSD 流程业务数据包定义内容xml 静态存储RiskCodeNumber 险种编号 String 静态存储Lis

27、t 结点集合 List 静态存储2、Node 类字段名称 字段描述 字段类型 备注FlowStatusNodeNumber 流程状态节点编号int 静态存储FlowTemplateNumber 流程模板编号 int 静态存储StatusName 流程状态节点名称String 静态存储StatusFormInfoNumber 流程状态表单信息编号Int 静态存储FormClassName 流程状态表单信 string 静态存储19息类名FlowStatusNodeRoleNumber流程状态参与角色关系编号int 静态存储RoleNumber 角色编号 int 静态存储UserNumber 用户

28、编号 int 静态存储List 流程状态操作集合List 静态存储3、Operation 类字段名称 字段描述 字段类型 备注StatusOperationNumber 流程状态操作编号 int 静态存储FlowStatusNodeNumber 流程状态节点编号 int 静态存储TargetStatusNodeNumber目标状态节点编号 int 静态存储OperationName 操作员姓名 varchar 静态存储List 状态操作附加规则集List 静态存储4、Rule 类字段名称 字段描述 字段类型 备注StatusActionRuleNumber状态操作附加规则编号int 静态存储2

29、0StatusOperationNumber 状态操作编号 int 静态存储RuleText 规则表达式 varchar 静态存储FlowBizDataBagXml 数据包存储对象XML(一个 Rule 在规则引擎只能对应一个实体对象)Xml 静态存储211.4 数据库结构说明2.4.1 地区表T_Area 字段名称 字段类型 字段长度 是否必填 是否主键 字段描述AreaNumber int 4 是 是 地区编号2.4.2 业务附件文件T_BizAttachFile字段名称 字段类型 字段长度 是否必填 是否主键 字段描述BizAttachFileNumber int 4 是 是 业务附件文

30、件编号FlowInstanceNumber int 4 否 否 流程实例编号FileName varchar 200 否 否 文件名FileContent varchar 500 否 否 文件内容FileSize decimal 9 否 否 文件大小2.4.3 流程业务数据包T_FlowBizDataBag字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowBizDataBagNumber int 4 是 是 流程业务数据包编号FlowInstanceNumber int 4 否 否 流程实例编号FlowBizDataBag int 4 否 否 流程业务数据包定义编22Defin

31、itionNumber 号FlowBizDataBagXML xml -1 否 否 流程业务数据包内容2.4.4 流程业务数据包定义T_FlowBizDataBagDefinition字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowBizDataBagDefinitionNumberint 4 是 是流程业务数据包定义编号DataBagDefinitionXSD xml -1 否 否流程业务数据包定义内容RiskCodeNumber int 4 否 否 险种编号FlowTemplateNumber int 4 否 否 流程模板编号2.4.5 流程实例表T_FlowInstan

32、ce字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowInstanceNumber int 4 是 是 流程实例编号FlowTemplateNumber int 4 否 否 流程模板编号ParentFlowInstanceNumber int 4 否 否 父流程实例编号StartTime datetime 8 否 否 开始时间EndTime datetime 8 否 否 终止时间LastDealTime datetime 8 否 否 最后处理日期23AreaNumber int 4 否 否 地区编号RiskCodeNumber int 4 否 否 险种编号Amount deci

33、mal 9 否 否 金额EndFlag bit 1 否 否 结束标识CurrentStatusNodeNumber int 4 否 否 当前状态结点编号BusinessNumber int 4 否 否业务号(如投保单号,赔款计算书号)2.4.6 流程日志T_FlowLog字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowLogNumber int 4 是 是 流程日志编号FlowInstanceNumber int 4 否 否 流程实例编号OperationDate datetime 8 否 否 操作日期2.4.7 已处理消息队列表T_FlowMessageQueueDone字

34、段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowLogNumber int 4 是 是 流程日志编号FlowInstanceNumber int 4 否 否 流程实例编号OperationDate datetime 8 否 否 操作日期242.4.8 待处理消息队列表T_FlowMessageQueueWaited字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusOperationMessageNumberint 4 是 是未处理流程状态操作消息队列编号StatusOperationMessageInQuequeNumberint 4 否 否 状态操作信息编

35、号OperationDate datetime 8 否 否 操作日期2.4.9 流程状态结点T_FlowStatusNode字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowStatusNodeNumber int 4 是 是 流程状态节点编号FlowTemplateNumber int 4 否 否 流程模板编号StatusName varchar 50 否 否 流程状态节点名称2.4.10 流程状态参与角色关系表T_FlowStatusNodeRole字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowStatusNodeRoleNumber int 4 是 是

36、流程状态参与角色关系编号FlowStatusNodeNumber int 4 否 否 流程状态节点编号25RoleNumber int 4 否 否 角色编号UserNumber int 4 否 否 用户编号2.4.11 流程模板表T_FlowTemplate字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowTemplateNumber int 4 是 是 流程模板编号Name varchar 50 否 否 流程模板名称Version varchar 50 否 否 流程模板版本FlowTemplateType varchar 50 否 否 流程模板类型StopFlag bit 1

37、 否 否 停用标识2.4.12 流程模板与业务类别、险类标识关系表T_FlowTemplateRelation字段名称 字段类型 字段长度 是否必填 是否主键 字段描述FlowTemplateAreaRiskCodeNumberint 4 是 是 流程模板地区关系编号BusinessType varchar 50 否 否 业务类型 1 核保 2 核赔RiskFlag varchar 50 否 否 险类标识 1 农险 2 非农险FlowTemplateNumber int 4 否 否 流程模板编号2.4.13 日志项表T_LogItem26字段名称 字段类型 字段长度 是否必填 是否主键 字段描

38、述LogItemNumber int 4 是 是 日志项编号FlowLogNumber int 4 否 否 流程日志编号StatusOperationMessageNumber int 4 否 否 状态操作信息编号ItemTime datetime 8 否 否 项目时间StatusComment varchar 200 否 否 状态注释2.4.14 状态操作附加规则T_StatusActionRule字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusActionRuleNumber int 4 是 是状态操作附加规则编号StatusOperationNumber int 4

39、 否 否 状态操作编号RuleText varchar 50 否 否 规则表达式2.4.15 流程状态后活动T_StatusAfterAction字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusAfterActionNumber int 4 是 是 流程状态后活动编号FlowTemplateNumber int 4 否 否 流程模板编号ClassName varchar 100 否 否 类名FlowStatusNodeNumber int 4 否 否 流程状态节点编号27MethodName varchar 50 否 否 方法名AssembleName varchar 1

40、00 否 否 程序集名称2.4.16 流程状态前活动T_StatusBeforeAction字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusBeforeActionNumber int 4 是 是 流程状态前活动编号FlowTemplateNumber int 4 否 否 流程模板编号ClassName varchar 100 否 否 类名FlowStatusNodeNumber int 4 否 否 流程状态节点编号MethodName varchar 50 否 否 方法名AssembleName varchar 100 否 否 程序集名称2.4.17 流程状态表单信息T

41、_StatusFormInfo字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusFormInfoNumber int 4 是 是 流程状态表单信息编号FlowStatusNodeNumber int 4 否 否 流程状态节点编号FormClassName varchar 100 否 否 流程状态表单信息类名2.4.18 流程状态操作表T_StatusOperation28字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusOperationNumber int 4 是 是 流程状态操作编号FlowStatusNodeNumber int 4 否 否 流程状

42、态节点编号TargetStatusNodeNumber int 4 否 否 目标状态节点编号OperationName varchar 50 否 否 操作员姓名2.4.19 流程状态操作消息表T_StatusOperationMessage字段名称 字段类型 字段长度 是否必填 是否主键 字段描述StatusOperationMessageNumber int 4 是 是流程状态操作消息编号FlowInstanceNumber int 4 否 否 流程实例编号FlowStatusNodeNumber int 4 否 否 源状态结点编号TargetStatusNodeNumber int 4 否 否 目标状态结点编号RoleNumber int 4 否 否 角色编号UserNumber int 4 否 否 用户编号OperationDate datetime 8 否 否 操作日期

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 说明文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报