工作流引擎详细设计说明书_第1页
工作流引擎详细设计说明书_第2页
工作流引擎详细设计说明书_第3页
工作流引擎详细设计说明书_第4页
工作流引擎详细设计说明书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安华信息工作流引擎详细设计说明书2012-3-21该文档主要描述工作流引擎的实现细节。目录 TOC o 1-5 h z 1引言4 HYPERLINK l bookmark12 o Current Document 1.1编写目的4 HYPERLINK l bookmark15 o Current Document 1.2背景4 HYPERLINK l bookmark18 o Current Document 1.3定义4 HYPERLINK l bookmark21 o Current Document 1.4参考资料4 HYPERLINK l bookmark26 o Current Do

2、cument 2程序详细设计5 HYPERLINK l bookmark29 o Current Document 工作流运行时(WorkflOwRuNTIMe) 5 HYPERLINK l bookmark81 o Current Document 程序概述5 HYPERLINK l bookmark33 o Current Document 功能设计5 HYPERLINK l bookmark58 o Current Document 夕卜部接口11 HYPERLINK l bookmark73 o Current Document 尚未解决的问题12 HYPERLINK l bookma

3、rk78 o Current Document 工作流设计器(Workflowdesigner) 12程序概述12 HYPERLINK l bookmark84 o Current Document 功能设计12 HYPERLINK l bookmark115 o Current Document 外部接口16尚未解决的问题17公共对象17数据库结构说明21地区表21业务附件文件.21流程业务数据包21流程业务数据包定义22流程实例表22 HYPERLINK l bookmark130 o Current Document 流程日志23 HYPERLINK l bookmark133 o Cu

4、rrent Document 已处理消息队列表23待处理消息队列表24流程状态结点240流程状态参与角色关系表24流程模板表2流程模板与业务类别、险类标识关系表25日志项表25 HYPERLINK l bookmark145 o Current Document 状态操作附加规则2 HYPERLINK l bookmark148 o Current Document 流程状态后活动2 HYPERLINK l bookmark151 o Current Document 流程状态前活动2 HYPERLINK l bookmark154 o Current Document 流程状态表单信息27

5、HYPERLINK l bookmark157 o Current Document 流程状态操作表27 HYPERLINK l bookmark160 o Current Document 流程状态操作消息表28详细设计说明书1引言1.1编写目的工作流弓I擎的开发人员。1.2背景说明:a .本系统名称:工作流引擎。b.本系统概要设计工作由秦超完成,详细设计由王思远完成,刘云峰执行开发任务。1.3定义Workflow工作流Runtime运行时Designer设计器MessageQueue 消息队歹U1.4参考资料列出有关的参考资料,如:本项目的经核准的计划任务书或合同、上级机关的批文;属于本项

6、目的其他已发表的文件;c .本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的 标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。2程序详细设计2.1 工作流运行时(WorkflowRuntime )2.1.1 程序概述工作流运行时是工作流概念的核心部分,作用于工作流服务生命周期的全部场景,挂接各项 工作流的配套服务,如工作流实例状态跟踪、记录轨迹、消息分发等。功能设计WorkflowRuntim e 类命名空间:AHIT.WorkflowEngine关键字:sealed类职责:确定工作流模板:根据业务类型(1核保、2核赔)和险类标志(1农险、2非农险)确定

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

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

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

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

11、o|4 6uuis)96ess9|/|uo!iej9dosnieisi99 |oog 曾景邑阍擎址吉理Y盲含物0孟郢宙(乙) :(e6e sseiAiuoiiejedosnieis 96ess9|/|uo!iej9dosnieis-i)96ess9|/|uo!iej9dosnieisppv|oog曾麒阍擎犒理叩罢(I) 96ess9|/|uo!iej9dosnieis-i (d :(9|!dqDenvz!q 9|!dq3envz!g-l)9|!dq3envz!gpPV |oog g鼬 采 BIHipeiWz 圮?L (q :(6egeieaziq 6egeieaz!g/vo|d_i)6egei

12、eaz!g/vo|dppv |oog 轴凛岩亦鼬(乙) ;(j9qiun|9Dueisui/vo|4 BuuBegeieQzigMOijeiepiieA |oog 买尊的S旦WBt阳采uo!i!u典奇明哄qzmoh由IM 昌昌晦岩亦买娇(I) 6egeieaz!g/vo|d-i (e 采绸朗距蛔工 (J9qiun|9Dueisu! 6uuis ) 9Dueisunu9isisj9d9Q |ooq Di|qnd盼孟MO|ppoM利菅毋为J9qiunN93ueisui阳丫剑郢宙(a (6siu p 叫冰。 eBesseiAiMOid-enen&eBesseiAioippv ,9DiAJ9S96es

13、s9|/| 由圈Y剑糖 秘McssbiaiG鞍贸,盼孟蓟目含性孕靖、含郢由岩亦、昌郢凛阳丫剑郢宙 限制及约束:WorkflowRuntime是一个密封类,没有派生者,以单件模式创建,随Windows Service启动,运行时常驻内存。MessageService 类命名空间:AHIT.WorkflowEngine关键字:static类职责: 将消息添加至消息队列(物理表)轮询消息队列并处理Task 判断某一具体Task是否合法字段及属性:无。方法说明:public static Void AddToMessageQueue T_FlowMessageQueuqWaited msg)将Mess

14、age加入引擎待处理消息表。public static void ExecuteTask()循环访问待处理消息表,取时间戳最早的一条记录处理,共处理三件事情,第 一是增加流程状态操作信息表的记录,二是更新实例表,三是写日志项表,在 一个事务中控制,当处理结束时同时更新两张表,即在待处理消息表中删除记 录和在已处理消息表中增加记录若事务完成则回到循环体继续访问待处理消 息、表。private static bool JudgeTask( T_FlowMessageQueuqWaited msg)利用message携带的实例信息判断该实例的当前操作是否满足要求。如防止重复操作。限制及约束:无。Lo

15、gService 类命名空间:AHIT.WorkflowEngine关键字:static类职责:填写日志在创建流程实例时写流程日志在操作工作流结点时写日志项查看日志列表查看单体日志字段及属性:无方法:Public static void WriteFlowLog( T_FlowLog flowLog)写流程日志。Public static void WriteLogItem(T_LogItem logItem)写日志项Public static List GetLogs(string instanceCode)根据实例编码取该实例的操作日志列表。Log为流程日志和日志项的组合类Public s

16、tatic Log GetLog(string logItemNumber)根据日志编码主键访问单体日志。Log为流程日志和日志项的组合类限制及约束:写日志受Task执行成功与否的制约,被包含在ExecuteTask()所触 发的事务里。ExceptionHelper 类命名空间:AHIT.WorkflowEngine关键字:static类职责:抛出自定义异常字段及属性:无方法:Public static string GetCustomizeException( string exceptionCode)限制及约束:无。夕卜部接口调用的外部接口( External Interface)获取系

17、统级人员信息获取系统级角色信息将核赔后的业务状态传递至理赔子系统将核保后的业务状态传递至承保子系统获取地域字典描述获取险种字典描述获取规则引擎的判断结果被调用的外部接口( Public Interface)a)查看当前核保流程状态b)查看当前核赔流程状态c)查看流程轨迹尚未解决的问题与规则引擎的衔接子流程的需求2.2 工作流设计器(WorkflowDesigner )2.2.1 程序概述工作流设计器是定义工作流模板、流程节点、操作与规则的工具,是对静态定义的描述。功能设计TemplateConfiguration类 命名空间:AHIT.WorkflowDesigner关键字:无类职责: 根据业

18、务类型(核保、核赔)和险类标识(是否农险)创建不同的双核工作流 模板设置工作流模板的流程业务数据包定义构建工作流模板的各个结点指定各个结点的权限设置各个结点的级别、关系设置结点之间的流转规则指定各个结点的流程状态前活动事件和状态后活动事件指定各个结点的流程状态表单信息(结点对应审批窗体显示信息实体类名,运 行期从流程业务数据包读取) 方法:创建工作流模板方法Public bool CreateFlowTemplate(Template flowTemplate);传入Template公共类,内部调用其它模板配置相关类构建工作流模板、节点、 操作、规则等。其它模板配置相关类:T_FlowTemp

19、late类根据模板编号获取模板实体Public T_FlowTemplate GetFlowTemplate(string flowTemplateNumber);根据业务类型、险类取模板实体Public T_FlowTemplate GetFlowTemplate(string businessType, string classFlag);创建流程模板Public bool AddFlowTemplate(T_FlowTemplate flowTemplate);T_FlowStatusNod e 类根据模板编号取状态结点列表Public List GetFlowStatusNodeLis

20、t(string templateNumber);根据结点编号取状态结点实体Public T_FlowStatusNode GetFlowStatusNode(string nodeNumber);添加状态结点实体Public bool AddFlowStatusNode(T_FlowStatusNode flowStatusNode);T_FlowStatusNodeRole 类根据角色、状态结点编号取流程状态参与角色关系表实体Public T_FlowStatusNodeRole GetFlowStatusNodeRole(string RoleNumber, string FlowSta

21、tusNodeNumber);也可以根据用户名,暂不考虑添加流程状态参与角色关系表Public bool AddFlowStatusNodeRole(T_FlowStatusNodeRole flowStatusNodeRole);T_StatusOperation 类根据状态结点编号取流程状态操作实体Public T_StatusOperation GetStatusOperation(string flowStatusNodeNumber);添加流程状态操作实体Public bool AddStatusOperation(T_StatusOperation statusOperation)

22、;FlowBizDataBagDefinition 类添加流程业务数据包定义Public bool AddFlowBizDataBagDefinition(T_FlowBizDataBagDefinitiondataBagDefini tion)根据模板编号取数据包定义实体Public List GetFlowBizDataBagDefinition(string flowTemp lateNumber);T_StatusBeforeAction根据模板编号取流程状态前活动实体列表List GetStatusBeforeAction(string flowTemplateNumber);(2)

23、添加流程状态前活动实体Public bool Add StatusBeforeAction(T_ StatusBeforeAction statusBeforeAction);T_StatusAfterAction(1)根据模板编号取流程状态后活动实体列表List GetStatusAfterAction(string flowTemplateNumber);添加流程状态后活动实体Public bool AddStatusAfterAction(T_ StatusAfterAction statusAfterAction);T_StatusFormInfo根据状态结点编号取流程状态表单信息实体

24、T_StatusFormInfo GetStatusFormInfo(string flowStatusNodeNumber);添加流程状态表单信息实体Public bool AddStatusFormInfo(T_StatusFormInfo statusFormInfo);1. Designer 类(Version 1.1 的内容) 命名空间:AHIT.WorkflowDesigner关键字:无类职责:以图形化的方式配置工作流模板RuleDefinition 类 命名空间:AHIT.WorkflowDesigner关键字:无类职责:创建并保存规则修改并保存规则停用规则规则定义相关类Rule

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

26、状态操作附加规则Public bool AddStatusActionRule(T_StatusActionRule statusActionRule);夕卜部接口1.调用的外部接口( External Interface)a)获取系统级人员信息LA6uuisnif采岩亦edXisseuisngW!含性爰WX脚漏吉理jeqiunNuoiieieyeieidiueiMOu|ooq涅当由奇6e|ddois6uuis稀漏吉理3 d4j_5 e | d iu 3 j_mo 136uuis物顺靖理UOISJ9A6uuis炽漏吉理eiueNWi旨费编枯理j aq uj n n 9)e | d uj 9 j

27、/。|WW匿茉可引diu3_ SIE l手墨浦理丢乙 翁功阳蠢旧iUfi鲜与 I园回咽踞毕票rz z。垩(如可回UI D!|qnd ) 翁襄仍阳由IM舞.乙iffiW 串(9啊谕割捋幌买(P啊略神映(3霁聘龄爰够(qRiskFlag险类标识string静态存储FlowBizDataBagDefinitionNumber流程业务数据包定义编号Int静态存储DataBagDefinitionXSD流程业务数据包定义内容xml静态存储RiskCodeNumber险种编号String静态存储List结点集合List静态存储2、Node 类字段名称字段描述字段类型备注FlowStatusNodeNumb

28、er流程状态节点编号nt静态存储FlowTemplateNumber流程模板编号nt静态存储StatusName流程状态节点名称String静态存储StatusFormInfoNumber流程状态表单信Int息、编号静态存储FormClassName流程状态表单信string息类名静态存储FlowStatusNodeRoleNumber流程状态参与角色关系编号nt静态存储RoleNumber角色编号int静态存储UserNumber用户编号int静态存储List流程状态操作集合List静态存储3、Operation 类字段名称字段描述字段类型备注StatusOperationNumber流程状

29、态操作编号int静态存储FlowStatusNodeNumber流程状态节点编号int静态存储TargetStatusNodeNumber目标状态节点编号int静态存储OperationName操作员姓名varchar静态存储List状态操作附加规则集List静态存储4、Rule 类字段名称字段描述字段类型备注StatusActionRuleNumber状态操作附加规则编号int静态存储StatusOperationNumber状态操作编号int静态存储RuleText规则表达式varchar静态存储FlowBizDataBagXml数据包存储对象XML(个 Rule 在Xml静态存储规则引擎

30、只能对应一个实体对象)TVZ魅串昌郢凛岩亦吉理显显叫BegeieQzig/wou言性盼孟吉理显显t叫jeqiunNeDueisuiMOu言性轴凛岩亦吉理者者叫jeqiunNBegeieQzigMOu理捂括畿王显晋覃囱显晋囹瀚指族铜古Wg显显6leiupepBegeieazigMOH-!EVZ9Z!S9|!d所g显显OOSjeqDjeA1U5UOKH混瘁显显00乙jeqDjeAeiueN9l!d言性盼孟吉理显显t辿jeqiunNeDueisuiMOu言性g韧赡亦者者辿j9qmnN9|!dq3envz!g理捂括畿王显晋覃囱显晋囹瀚指族铜古含性X脚理捂括者畿王显晋者t草囱显晋囹瀚指9|!dqDenv

31、z!9-l球瑚咐ZVZluiJ9qiun|eejveejv-!显显83iu!AiepeiuilieeQlsen回朗不劫显显83iu!Aiep9!1PU3回朗脚瓦显显83iu!Aiep泗呻S言性盼孟吉理X显显t叫jeqiunNeDueisuiMOuiuejed言性漏吉理显显t叫jeqiunNeieidiueiMOu言性盼孟吉理者者叫jeqiunNeDueisuiMOu理捂括畿王显晋覃囱显晋贸瀚指族铜古eDueisuiMOu-!龄澹醐srz言性漏吉理显显叫jeqiunNeieidiueiMOu含性地砚1显显叫jeqiunNepojsiy串轴确亦吉理显显I-|LUXSXUoiiiuipaBegeie

32、a言魅串昌郢凛岩亦吉理者者叫jeqiunNuoiiiuipQBegeieQzig/wou畿王显晋覃囱显晋uoiiiuipQBegeieQzigMOu-!rrz所轴钏亦吉理显显I-|LUXllAlx6egeieazig/vo|d言jeqiunNuoiiiuipQAreaNumberint4否否地区编号RiskCodeNumberint4否否险种编号Amountdecimal9否否金额EndFlagbit1否否结束标识CurrentStatusNodeNumberint4否否当前状态结点编号业务号(如投保单号,BusinessNumberint4否否赔款计算书号)流程日志T_FlowLog字段名称

33、字段类型字段长度是否必填是否主键字段描述FlowLogNumberint4是是流程日志编号FlowInstanceNumberint4否否流程实例编号OperationDatedatetime8否否操作日期已处理消息队列表T_FlowMessageQueueDone字段名称字段类型字段长度是否必填是否主键字段描述FlowLogNumberint4是是流程日志编号FlowInstanceNumberint4否否流程实例编号OperationDatedatetime8否否操作日期显显叫j9qiun|9poNsnieisMOld者者叫j9qiun|9|oy9poNsnieisMOld娘强与M犒理畿王

34、显晋覃囱显晋引。雷 poNsngsMO|zT_L噩绿国眄季期醐OTVZ炽苧gq清理显显OSjeqDJBA9iueNsnlelS言性漏吉理显显叫jeqiunNeieidiueiMOu者者叫j9qiun|9poNsnieisMOld畿王显晋覃囱显晋囹瀚指族铜古叩 ONsngsMO|zT_L醐 6VZ膜日调显显83iu!AiepeieQuoiiejedoJ9qiun|9nb9nt)ui96ess9|/|言黔霁凋擎址显显t辿uoiiejedosnieis言飘邳1曾黑羽者者t辿J9qiun|e6ess9|/|善淳犒理宙HWuoiiejedosnieis理捂括 i畿王显晋:宣囱显晋囹瀚指p91ie/9n9

35、nb96ess9|/|/vo|:|_i邮wmsw 8VZlueilBo-!-!翠蛙日Eire言性漏吉理显显VN!jeqiunNeieidiueiMOu砚以非乙砚以I涅当采砚1显显OSjeqDJBA6昭平!号路乙W I稀岩亦显显OSjeqDJBAedXisseuisng言性爰WX脚孕毒焙理者者叫jeqiunNepojsiyeejveieidiueiMou理捂括畿王显晋覃囱显晋囹瀚指族铜古uoiieieyeieidiueiMou-!翠菜霸|i柴晰旨州的ZIVZ涅当由奇显显I加6e|ddois稀漏吉理显显OSjeqDJBAb dli_5 e | d lu b j_mo |物顺靖理显显OSjeqDJBAUOISJ9A炽漏吉理显显OSjeqDJBAeiueN言性漏吉理者者叫jeqiunNeieidiueiMOu理捂括畿王显晋覃囱显晋囹瀚指族铜古eieidiueiMou-!live含性H由显显t叫J9qiun|jesn显显t叫jeqiun|9|oyLogItemNumberint4是是日志项编号FlowLogNumberint4否否流程日志编号StatusOperationMessageNumberint4否否状态操作信息编号ItemTimedatetime8否否项目时间StatusCommentvar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论