某研究院办公自动化系统设计方案.docx
某研究院办公自动化系统设计方案XX工业研究院办公自动化系统设计方案XXXX年6月目录第一章系统总体结构XX工业研究院办公自动化系统基于LotUSDominO/Notes平台开发,系统的总体结构如下图所示:第二章系统设计§2.1电子邮件电子邮件模块的结构如下图所示。一.表单设计1.邮件表单(MerT收件箱发件箱电子邮件草稿箱数据域北明SendTo康信箱CopyToBlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(同意多行)邮件正文haveread文本域邮件文件已读标志操作说明发送发送邮件储存为草稿将邮件储存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件2.回信表单(RePIy)表2-1-2回信表单设计数据域类型说明SendTo文本域收件人地址CopyTo文本域邮件抄送地址BlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(同意多行)邮件正文haveread文本域邮件文件已读标志操作说明发送发送邮件储存为草稿将邮件储存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件3.转发表单(WFOrWard)表2-1-3转发表单设计数据域类型说明SendTo文本域收件人地址CopyTo文本域邮件抄送地址BlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(同意多行)邮件正文haveread文本域邮件文件已读标志操作说明发送发送邮件储存为草稿将邮件储存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件4.信件邮递报告表单(NOnDeliVeryReport表2-1-4信件邮递才)支告表单设计数据域类型说明OriginalSubject文本域被邮递的信件名称IntendedRecipient文本域被邮递信件的收件人地址FailureReason文本域邮件为邮递到目的地原因SendTo文本域被邮递邮件文件中指定的收件地址CopyTo文本域被邮递邮件文件中指定的抄送地址BlindCopyTo文本域被邮递邮件文件中指定的密送地址Subject文本域被邮递邮件文件的主题Body文本域(同意多行)被邮递邮件文件的内容haveread文本域邮件文件已读标志操作说明删除删除邮件二.视图设计1.收件箱($lnbox)收件箱通过文件夹实现,所有接收到邮件文件均由系统自动放入收件箱中。2 .发件箱($Sent)用于所发送的邮件均自动储存在发件箱中。文档选择条件为:SELECTDeliveredDate="&PostedDate!="&!(IsMember("S"ExclUdeFromView)&Viewtag!="Delete"3 .草稿箱($DraftS)所有储存为草稿的邮件均显示在草稿箱中。文档选择条件为:SELECTPostedDate=""&SMessageType二"”&1SNOtMembeIrD";ExcludeFromView)&1SMAILSTATI0NERY!=1&Viewtag=nIstrash"4.垃圾箱(Carbage)所有被删除的邮件均储存在此视图中。在此视图中再次删除的话,则邮件文件被真正删除。文档选择条件为:SELECT(FORM=nMemonform="Reply"Form=uwForward")&Deleted=true"§2.2公文流转结构设计XX工业研究院OA系统公文流转模块总体结构如下图所示。IWeb界新建公文I待办公文显示收发文管理收文管理G用D.已办公文记录DJSJ流程管理Subject流程角色设置人员角色设置NGR系统设置GWHJZTCB文本域公文的主题词ZBDW文本域主办单位名称ZCDW文本域主送单位名称CSDW文本域抄送单位名称CBDW文本域抄报单位名称Info文本域(同意多行)公文正文内容Data_Number文本域公文的编号SelectWorkFlow列表框显示过程定义模版列表PersonAnswer文本域显示处理人的批复意见Data_Personlist文本域同意处理本公文的用户列表Start文本域公文是否为首次提交发文管理已发公文显示务层公文草稿显示Data_Current_Editor文本域记录当前编辑公文的用户姓名CuiBan文本域是否存在公文催办通知操作说明提交流转提交公文进入流转过程暂存将公文储存为草稿签收处理人打开公文进行编辑编辑公文作者编辑公文删除删除公文催办发出公文催办通知说明:(I)SUbject、InfO等用于记录公文的内容信息,公文的内容信息包含公文主题、公文编号、公文内容、公文密级、公文缓急等。(2) NGRDJSJ分别记录公文文档的创建人与创建时间,工作流的管理与监控功能会用到这些信息。(3) SeIeCtWorkFk)W是列表框,用于显示所有可供使用的过程定义模版。在公文的创建阶段,用户从列表中选择要使用的流程;在公文进入流转过程以后,由工作流引擎根据所选择的流程,自动生成过程定义实例,之后实现公文文档同过程定义实例的绑定操作。(4) Data_Personlist域用于记录所有对本文档具有处理权限的用户的用户名列表,只有在此列表中列出的用户才能够对公文进行处理。其取值由工作流引擎自动填写。2.公文附件表单(AddAttaChment)公文附件表单用于存储某一公文所包含的附件文件,一个公文能够包含多个附件,每个附件对应一个公文附件表单。表2-2-2公文附竹二表单设计数据域类型说明AttachmenClnfo文本域对附件的简要说明FileUpload控件上载文件控件Parentld文本域此附件表单所从属的公文表单IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小操作说明储存附件储存公文附件表单删除附件删除公文附件表单关闭窗口关闭公文附件上载窗口3.公文正文表单(AddDOCUmentBOdy)公文正文表单用于存储某一公文所包含的正文文件,一个公文能够包含多个正文文件,每个正文文件对应一个公文正文表单。表2-2-3公文正文表单设计数据域类型说明Attachment_lnfo文本域对正文文件的简要说明FileUpload控件上载文件控件ParentId文本域此公文正文表单所从属的公文表单IDAttachmenCName文本域附件文件名Attachmentsize文本域附件文件大小操作说明储存正文储存公文正文表单删除正文删除公文正文表单关闭窗口关闭公文正文上载窗口4.工作流信息表单(WOrkFIOWInfO)工作流信息表单用于存储工作流程模版的基本属性信息。在流程信息表单中定义的重要数据域如下:表2-24工作流信息表单数据域类型说明Workflow_Name文本域流程名称Workflow_Type列表框流程类型,可选值为“预定义流程”与“自定义流程”Workflow_Author文本域此流程创建人姓名Workflow_Created文本域此流程创建时间Workflow_Body文本域此流程功能简要说明操作说明修改编辑工作流信息表单储存储存工作流信息表单删除删除工作流信息表单5.流程节点表单(event)流程节点表单用于记录过程定义中流程节点所包含的信息。过程定义中的每个流程节点都与Domino数据库中的一个流程节点文档对应。表2-2-5流程节点表单设计数据域类型说明Workflow_Id文本域节点所从属的工作流信息文档IdData_Id文本域与此过程定义所绑定的应用数据文档IdEvent_Id文本域流程节点文档Id,在节点文档生成后自动填写Event_Name文本域流程节点功能描述名称,如初审、批阅等。Event_Pre_Names列表框此流程节点的全部前趋节点列表Event_Personlist文本域此节点同意处理人名称Event_Personlist_Type列表域指定处理人类型:“个人”、“交色”SXQM复选框是否使用手写签名功能Event_Body文本框(同意多值)此节点功能简要说明Event_Pre_Name文本域(同意多值)以节点名称表示的前驱节点列表Event_Pre_Id文本域(同意多值)以节点Id表示的前驱节点列表Evemt_Next_Name文本域(同意多值)以节点名称表示的后继节点列表Event_Next_Id文本域(同意多值)以节点Id表示的后继节点列表Event_Status文本域流程节点状态Event_Period文本域流程节点文档状态Event_Period文本域用于区分模版与实例,可取值为“模版”、“实例”SeIectPre复选框此节点是否为选择性收点SelectNext复选框此节点是否为选择性发点SelectNode文本域假如此节点是选择性发点,则此域用于记录所选定的后继节点名称操作说明修改编辑流程节点表单储存储存流程节点表单删除删除流程节点表单说明:(1)流程节点定义中的Att(事件属性集合)通过数据域WOrkflowd、Data_Id、EVenLId、Event_Name、EvnencPersonlist>SXQM等表达出来。EVent_Pre_Name、Event_Pre_Id为同意多值的文本域,以节点名称与节点文档Id两种方式表达此节点的前驱节点集合Pre;Event_Next_Name>EVent_Nextd则以节点名称与节点文档Id两种方式表达此节点的后继节点集合NextoEvencStatus表达节点状态信息。(2) WOrkfIowd数据域用于标识此流程节点文档所从属的工作流程。属于同一工作流程的流程节点文档具有相同的WorkflowJdo(3) DataJd数据域用于实现应用数据实例同过程定义实例的一一对应。Datad的值为公文表单的文档实例的文档Id,由工作流管理系统自动填写。构成一个过程定义实例的所有流程节点文档具有相同的DataJd值。(4) EvenCStatus标识流程节点的状态信息,由工作流引擎自动设置。(5)构成过程定义的流程节点文档在工作流进入运行期之前,存储在过程定义模版库中;在运行期,则存储到过程定义实例库。因此,在流程节点表单中使用EvencPeriod数据域来标识过程定义的状态。属于同一过程定义的节点文档的EVenjPeriOd域的值是相同的。其可能取值为“模版”与“实例二(6) SeIeCtPre数据域用于标识此节点是否为选择性收点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不一致的启动条件构造算法。(7) SelectNext数据域用于表示此节点是否为选择性发点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不一致的完成条件构造算法。节点所选定的后继节点的名称储存在SelectNode数据域中。6.已办公文记录表单(DoneReCOrd)己办公文记录表单用于记录用户己经处理完成的公文的有关信息,以备日后查阅。表2-2-6已办公文记录表单设计数据域类型说明Subject文本域公文标题NGR文本域记录公文的拟稿人姓名SDSJ文本域收到此公文的时间BJSJ文本域完成处理的时间PYYJ文本域用户的批阅意见操作说明删除删除已办公文记录表单7.用户角色设置表单(USerRUIS)用户角色设置表单用于记录用户同其职务的对应关系。表2-2-7用户角色设置表单设计数据域类型说明RulName文本域角色名称SendTo文本域人员名称ZhiNeng文本域角色职能说明操作说明修改编辑用户角色设置表单储存储存用户角色设置表单删除删除用户角色设置表单8.搜索表单(SearChFOrm)搜索表单用于输入文档检索条件。表2-2-8搜索表单设计数据域类型说明Search_ViewName列表框选择要检索的视图SearchJnfb文本域人员名称Search_Type文本域角色职能说明HTML文本域文档检索结果操作说明检索文档进行检索操作四.视图设计1.工作流名称列表用于显示数据库中所有工作流信息文档。文档选择条件:SELECTform二"WOrkFIoWlnfo”2 .模版事件列表用于显示所有具有“模版”属性的流程节点文档。文档选择条件如下:SELECT(Form="流程节点”)&(EVemPeriod="模版”)3 .激活事件列表用于显示所有具有“激活”属性的流程节点文档。文档选择条件如下:SELECT(Form="流程节点”)&(EVenLPeriod=”激活”)4 .数据表单列表用于显示所有公文文档。文档选择条件如下:SELECTform="数据表单”&Start=O5 .公文草稿列表用于显示所有储存为草稿的公文文档。文档选择条件如下:SELECTform="数据表单”&Start=I6 .公文附件列表用于显示所有公文附件文档。文档选择条件如下:SELECTform=',AddAttachment"7 .公文正文列表用于显示所有公文正文文档。文档选择条件如下:SELECTform="AddDocumentBody"8 .巳办公文列表用于显示所有已办公文记录文档。文档选择条件如下:SELECTfon=,'DoneRecord"五.工作流流转操纵算法设计1.功能分析将工作流引擎的功能细化为下列几个子功能:(1)创建过程定义实例在工作流进入运行期往常,过程定义以模版的形式储存在过程定义模版库中。工作流进入运行期,工作流引擎务必根据用户所选定的过程定义模版自动生成过程定义实例,并存入负载最低的过程定义实例子库。(2)完成应用数据实例与过程定义实例的绑定操作在过程定义实例生成以后,工作流引擎务必将其同对应的应用数据实例绑定,实现一一对应,从而完成数据单元实例的组建。(3)在工作流实例运行期间,对流程节点的状态信息进行保护在基于流程节点单一设计元素的过程定义模型中,定义了流程节点状态信息来描述节点对应用数据的处理状态。而整个工作流实例的运行状态会通过流程节点的状态表达出来。工作流引擎需要根据流程节点的启动条件与完成条件来对节点的状态进行设置,从而模拟出数据流淌的效果。这是工作流引擎的核心功能。(4)对应用数据文档的访问操纵列表进行保护流程节点状态信息的变化务必转化为用户对应用数据处理权限的变化。某一流程节点状态信息变为active,实际意味着在此节点定义中指定的处理人获得了对应用数据文档的处理权;状态信息为inactive或者done则表示指定的处理人没有处理文档的权限。因此,工作流引擎需要根据流程节点状态信息的变化,对应用数据表单中的用户访问操纵列表进行修改,从而实现节点状态信息与用户对文档处理权限的一致变化。(5)工作流实例运行期间,给予用户对过程定义实例的动态修改的能力由于实际业务处理过程往往表现出一定的随意性,因此,工作流引擎应该向用户提供在工作流实例运行期间,对过程定义实例的修改能力,使用户能够根据文档处理的需要,对预定义的流程进行临时性的修改。这种动态修改流程的能力,能够大大加强工作流系统的灵活性,使工作流系统更加满足用户的实际需求。下图表示了当用户完成应用数据文档的处理,将文档储存提交以后,工作流引擎处理数据的过程:2.创;义模施应用娄建与情(1求流程邛3成一个新的日文档属于过程定 于记录对应 义实例的创将初建流程中总又档甲EVenLPenOd数循瑕的但田“根版改为“实例”。关键代码如下:newnode.Event_Period="实例"(3)同应用数据实例绑定将应用数据文档如公文文档的文档Id值置入新建流程节点文档的DataJd域,从而完成绑定操作。关键代码如下:tdata为应用数据文档newnode.Data_ld=data.Universalid3.保护流程节点状杰信息a)原理流程假设某节点node完成了应用数据文档处理,接下来工作流引擎会通过设置流程节点的状态信息来更新工作流实例的运行状态。工作流实例运行状态的更新过程能够用下图所示的原理流程表达:节点nod浣成处理从状态更新的原理流程 数据文档的处理触发,之后a.设置节点node状态; 当流程节点处理完成后 b.激活新流程节点流程节点的启动条件决 中,工作流引擎通过构造各, 限的传递。由于流程节点的方 顺序信息的逻辑组合表达出 必要计算构成过程定义实例 所有后继节点的启动条件即c.决定什么节点的状态 流程节点状态由done轧由节点node完成对应用(1)点状态:(2) 央得处理权限。在此步骤W其值来完成节点处理权X节点的状态信息与流转 理后,工作流引擎没有 只需要计算节点node的工作流实例新运行状态建立一 程定义模型部分已经作将完成条件得到满足的乎点状态设置为 Inactiue了说明,节点的完成条件规定了这一状态转化的条件。在某节点完成处理后,工作流引擎通过计算其它节点的完成条件,来确定什么状态为done的节点能够将状态设置为inactiveob)步骤1的具体实现步骤1的目的是在节点node完成对应用数据文档的处理以后,将节点状态设置为doneo关键代码如下:node.EventStatus="done"c)后继节点状态设置算法步骤2的目的是设置节点node的后继节点的状态,节点node的类型与其后继节点的类型决定了步骤2有不一致的实现方式。设置node后继节点状态的过程能够用下图表达:a.节点node为唯一后继节点或者者发点此种情况下,节点node需要遍历其所有的后继节点,计算每个后继续节点的启动条件的取值。b.节点node为选择性发点当节点node为选择性发点时,根据选择性发点的定义,只有一个后继节点能够获得处理权,因此不需要遍历其所有的后继节点,只需计算其所选定的后继节点的启动条件即可。根据后继节点的类型,计算启动条件分为两种情况(状态设置算法1与状态设置算法2):a.后继节点为收点或者唯一前驱节点当节点node的某个后继节点next为收点或者唯一前驱收点时,在遍历next的所有前驱节点时,对每个前驱节点计算推断式(select(prei)CTNnext)AND(StatUS(Prei)="done”)的值,只要有一个为false,则next的启动条件必定不成立,即能够终止遍历循环。推断next的启动条件值的关键代码如下:DimflagasBooleanflag=falset遍历next的全部前驱节点ForallnInnext.Event_Pre_IdSetprenode=db.GetDocumentByUNID(n)IfNot(Select(prenode,next)=trueANDprenode.Event-Status(0)="done")Then'Select。函数用于推断Prenode所选定的后继节点列表中是否包含nextflag=trueExitForAllEndIfEndForallt设置后继节点next的状态Ifflag=truethen,节点next的启动条件不满足,状态不变Else,节点next的启动条件满足,将状态变为activenext.EventStatus="active”next.saveTrue,True,TrueEndIfb.后继节点为选择性收点当节点node的某个后继节点next为选择性收点时,不需要遍历next的所有前驱节点,而只需要推断下式对节点node的取值即可。(select(node)CTNnext)AND(StatUS(node。="done”)关键代码如下:If(SeleCt(node,next)=trueANDnote.EvetStatus(0)="done")then8elect()函数用于推断node所选定的后继节点列表中是否包含nextnext.EventStatus="active”next.saveTrue,True,TrueElse4next状态保持不变EndIfd)设置完成条件得到满足的流程节点状态当完成对流程节点node的后继节点状态设置以后,其后继节点状态的变化可能使某些节点的完成条件得到满足,从而完成流程节点状态信息由done向inactive的转化。在推断流程节点的完成条件时,没有必要计算构成过程定义实例的所有流程节点的完成条件,只需要检查节点node的获得了处理权的后继节点的所有前驱节点的完成条件即可。推断完成条件的处理流程如图2-2-6所示。从流程中能够看到,根据next的前驱节点类型,构造next的前驱节点的完成条件有两种方式(完成条件推断算法1与完成条件推断算法2):(2)next的前驱节点为唯一后继节点或者者发点关键代码如下:DimflagasBooleanflag=false'假设Prenode为next某个前驱节点,nextnode为PrenOde的某个后继节点ForallxInprenode.Event_Next_NameSetnextnode=db.getdocumentbyunid(GetIdByName(y)Ifnextnode.EventStatus(O)O"active"ThenAag=TrueEndIfEndForaliIfIlag=TrueThenYrenOde的完成条件不满足,保持状态不变Elseprenode.Event_Status="inactive''prenode.saveTrue,True,TrueEndIf(2)next的前驱节点为选择性发点关键代码如下:'假设prenode为next的某个具有选择性发点类型的前驱节点,nextnode为prenode所选定的获得处理权的唯一后继节点Setnextnode=db.getdocumentbyunid(GetIdByName(prenode.SelectEvent(O)Ifnextnode.EventStatus(O)="active”thenprenode的完成条件得到满足prenode,eventsystem="inactive”prenode.saveTrue,True,TrueElseprenode的完成条件不成立,状态保持不变权限的同步变化。关键代码如下:'假设过程定义实例存储在过程定义实例视图view中,data为应用数据文档Setitem=data.getfirstitem(4Data-Personlisf,)Setnode=view.getfirstdocumentWhileNot(nodeIsNothing),推断与此应用数据文档相绑定的流程节点的状态If(node.Data-Id(0)=data.Universaiid)And(node.Event_Status(0)=“active")Then'找到了具有处理权的流程节点,将其指定的处理人加入到应用数据文档的Data_Personlist数据域中Callitem.appendtotextlist(node.Event-Personlist(0)data.saveTrue,True,TrueEndIfSetnode=view.getnextdocument(node)Wend六.工作流流程定义工具设计流程定义工具的功能能够细分为:(1)向用户提供定义工作流的操作界面(2)根据用户的输入自动生成以文本形式表达的工作流抽象描述(3)将以文本形式表达的工作流抽象描述发送给格式转化工具组件1.类关系将流程节点抽象为流程节点类(NOde),同时,将流程节点定义中的事件属性集合、前驱节点集合、后继节点集合均做对象化处理,由此产生属性信息(AttibUte)、前驱节点信息(PreNOdes)、后继节点信息(NeXtNodeS)三个类。这三个类同流程节点类构成复合聚合的关系,如下图所示。流程节点类2.类结构设计(1)流程节点类(NOde)属性信息类前趋节点信息类后继节点信息类ClassNodeprivateStringnode_id;privateAttibuteatt;privatePreNodesp;privateNextNodesn;privateStringtype;privatestringstatus;PublicStringgetld();PublicvoidsetId(Strings);PublicAttibutegetAtt();PublicPreNodesgetP();PublicNextNodesgetN();PublicStringgetStatus();PublicvoidsetStatus(Strings);)实际业务处理过程最终会抽象表达为一系列流程节点类实例的集合。对流程节点类的定义完全遵循流程节点的定义。类定义中成员变量与方法的含义在下表中加以说明:表2-2-9流程节点类设计成员变量含义node_id流程节点的唯一标识符att对流程节点属性信息类(AttribUte)的引用P对流程节点前驱节点信息类(PreNOdeS)的引用n对流程节点后继节点信息类(NeXtNOdeS)的引用type流程节点的类型方法作用getld()取得流程节点唯一标识setld()设置流程节点唯一标识getAtt()取得节点状态信息类的指针getP()取得节点前驱节点信息类的指针gerN()取得节点后继节点信息类的指针getType()取得节点类型信息serType()设置流程节点类型信息(2)属性信息类(AttibUte)ClassAttibuteprivateStringnode_name;privateStringnode-person;privateBooleannode_reply;privateBooleannode_sign;privateStringnode_body;PublicStringgetName();PublicvoidsetName(Strings);PublicStringgetPerson();PublicvoidsetPerson(Strings);PublicStringgetReply();PublicvoidsetReply(Booleanb);PublicStringgetSign();PublicvoidsetSign(Booleanb);PublicStringgetBody();PublicvoidsetBody(Stimgs);)属性信息类用于表达流程节点所代表的实际业务步骤的重要属性信息。属性信息类定义中成员变量与方法的含义在下表中加以说明:表2-2-10属性信息类设计成员变量含义node_name流程节点标识名称node_person流程步骤的处理人。当节点获得了处理权以后,只有在此变量中列出的人员才能够对应用数据进行处理node_reply节点完成处理以后,是否向工作流发起人发送已办通知,取值为false或者truenode_sign是否在节点完成处理时,使用手写签名认证功能,取值为false或者truenode_body对节点所代表的实际业务步骤的功能的说明方法作用getXXXX()取得相应属性值setXXXX()设置相应属性值(3)前驱节点信息类(PreNodeS)ClassPreNodes(ArrayListpreList;PublicvoidaddPre();PublicObjectgetPre(Strings)PublicintgetAcount();PublicvoidemptyList();)前驱节点信息类用于对流程节点的前驱节点进行记录与管理。类定义中成员变量与方法的含义在下表中加以说明:表2-2-11前趋节点信息类设计成员变量含义preList节点的前驱节点引用列表数组方法作用addPre()向列表中添加新节点引用getPre()从列表中取得前驱节点引用getAcount()取得前驱节点数目emptyList()清空前驱节点列表(4)后继节点信息类(NeXtNOdeS)ClassNextNodesArrayListnextList;PublicvoidaddNext();PublicObjectgetNext(Strings);PublicintgetAcount();PublicvoidemptyList();)后继节点信息类用于对流程节点的后继节点进行记录与管理。类定义中成员变量与方法的含义在下表中加以说明:表2-2-12后继节点信息类设计成员变量含义nextList节点的后继节点引用列表方法作用addNext()向列表中添加新后继节点引用getNext()从列表中取得指定后继节点引用getAcount()取得后继节点数目emptyList()清空后继节点列表3.过程定义工具文本输出格式选择XML作为工作流抽象描述文本的输出格式。定义DTD如下:<!ELEMENTworkflow(node+)><!ATTLISTworkflowworkflownameCDATA#REQUIREDworkflowtype(publicprivate)#REQUIREDauthorCDATA#REQUIRED><!ELEMENTnodeEMPTY><!ATTLISTnodenodenameCDATA#REQUIREDprenodesCDATA#REQUIREDnextnodesCDATA#REQUIREDtypeCDATA#REQUIREDpersonCDATA#REQUIREDsign(yesIno)#REQUIREDbodyCDATA#REQUIRED>在DTD中定义了两种元素:workflow与node。workflow元素用于记录用户所定义的工作流流程的名称、类型、创建人信息。一个WorkflOW能够包含一个或者者多个node元素实例。node元素用于记录过程定义中某一流程节点的信息,其属性值对应上节所定义的流程节点类(NOde)中所包含的信息。七.格式转化工具设计格式转化工具的功能能够细分为:(1)接收工作流过程定义工具的文本输出流(2)对接收到的抽象表达工作流的文本序列进行分析,生成相应的数据库操作指令。格式转化功能的实现流程能够用下图来表达:通过JAVA语取XML格式文本格式工作流抽象指文档处理器中用于在文档处理器中定后利用数据库提修流程节点文档的创例被XML解析器处理程序首先取签程节点文档的数执程操作接口完成:workflow元素实伤Domino数据库远程操作接口!接口)【251来读 接收到的XML 利后,随即触发 IJ的处理代码均 了属性信息,之 勺数据文档。以 的node元素实例的处理程序。S库中创建的流 3供的数据库远 列中所包含的 IJ建完成以后,格式转化工作即告元成。§2.3公共事务总体结构设计XX工业研究院公共事务模块整体结构如下:日程安排全部会议日程怪2-3-1公二.表单设计1.日程安排表单日程安排表单用于记录日程全部日程列表安排的有关信息。具体设计如下表3.1日程安排表单日程草稿列表:审批日程列表条目域功能空闲时间查询表单安排名称Arrange_N<me输入该安排名称空闲日期查询任务范围Arrange_Rage选择该安排涉及范围起始时间Arrange_Startime会议安排可全部会议列表结束时间Arrange-StoimeHJ涉为ge_DP选择涉及的处室全部会议列表涉为公关事分son选择