工业研究院办公自动化系统设计方案(附 MIS系统设计和网站设计)_第1页
工业研究院办公自动化系统设计方案(附 MIS系统设计和网站设计)_第2页
工业研究院办公自动化系统设计方案(附 MIS系统设计和网站设计)_第3页
工业研究院办公自动化系统设计方案(附 MIS系统设计和网站设计)_第4页
工业研究院办公自动化系统设计方案(附 MIS系统设计和网站设计)_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

XX工业研究院办公自动化系统设计方案XXXX年6月

目录TOC\o"1-5"\h\z第一章系统总体结构 6第二章系统设计 7§2.1电子邮件 7一.表单设计 71.邮件表单(Memo) 72.回信表单(Reply) 83.转发表单(wForward) 84.信件邮递报告表单(NonDeliveryReport) 9二.视图设计 91.收件箱($Inbox) 92.发件箱($Sent) 93.草稿箱($Drafts) 104.垃圾箱(Carbage) 10§2.2公文流转 11一.结构设计 11二.功能设计 11三.表单设计 121.公文表单(Data) 122.公文附件表单(AddAttachment) 133.公文正文表单(AddDocumentBody) 134.工作流信息表单(WorkFlowInfo) 145.流程节点表单(event) 146.已办公文记录表单(DoneRecord) 167.用户角色设置表单(UserRuls) 178.搜索表单(SearchForm) 17四.视图设计 181.工作流名称列表 182.模版事件列表 183.激活事件列表 184.数据表单列表 185.公文草稿列表 186.公文附件列表 187.公文正文列表 188.已办公文列表 19五.工作流流转控制算法设计 191.功能分析 192.创建过程定义实例和同应用数据实例绑定 203.维护流程节点状态信息 21六.工作流流程定义工具设计 281.类关系 282.类结构设计 293.过程定义工具文本输出格式 33七.格式转化工具设计 33§2.3公共事务 35一.总体结构设计 35二.表单设计 351.日程安排表单 352.会议安排表单 363.会议记录表单 374.会议纪要表单 385.空闲时间查询表单 386.空闲日期查询表单 397.会议室管理表单 398.空闲会议室查询表单 399.会议室空时段查询表单 4010.来宾接待表单 40三.视图设计 401.会议安排视图 412.会议草稿视图 413.在审会议视图 414.议记录视图 415.议纪要视图 416.日程安排视图 417.日程草稿视图 418.在审日程视图 419.会议室视图 4110.来宾接待视图 41§2.4电子讨论区 42一.讨论区功能模块设计 42二.讨论板块 42三.用户笔名注册 43§2.5信息服务 45一.信息服务功能模块设计 45二.电子布告栏 45三.公共信息查询 461.员工地址簿 472.个人名片夹 473.列车时刻表 484.航班时刻表 495.邮编及电话区号 506.公司大事记 50§2.6系统维护 52一.表单设计 521.组织机构设置表单(Department) 522.用户信息注册表单(UserInfo) 523.用户职务注册表单(Caste_Name) 534.用户信息列表显示表单(PagePersons) 535.用户密码设置表单(Password) 54二.视图设计 541.组织机构列表(DepartmentList) 542.用户列表(Persons) 543.职务列表(Caste_Name) 544.用户权限列表(Limit) 54附录1XX工业研究院MIS系统设计 55§1概述 55§2需求分析 55一、科技项目管理 55项目申报(科委项目、工研院项目) 55合同管理 55项目跟踪 55二、教育培训管理 55职工教育培训 55招生管理 55三、科技情报管理 55科技情报发布 55下属单位需求 55四、申请书编号管理 55五、用户权限管理 55§3功能表格 56科技项目管理X 56教育管理培训J 56科技情报管理Q 56§4功能模块设计 57一. 功能模块 57科技项目管理 57教育培训管理 58科技情报管理 58二.功能说明 58科技项目管理 58教育培训管理 59科技情报信息管理 59§5数据表格设计 59一.科技项目及合同管理 59科技项目申请表 59申请一览表 61工研院项目执行情况报告书 61二. 教育管理培训 62三. 科技情报管理 62科技情报发布 62下属单位需求 63附录2网站设计 64§1概述 64§2功能设计 64一.情况介绍 64二.需求分析 64三.功能模块及实现 65四.数据接口 66五.网站目录结构 67§3数据库设计 67第一章系统总体结构《XX工业研究院办公自动化系统》基于LotusDomino/Notes平台开发,系统的总体结构如下图所示:图1-1XX工业研究院办公自动化系统总体结构

第二章系统设计§2.1电子邮件电子邮件模块的结构如下图所示。图2-1-1电子邮件模块一.表单设计邮件表单(Memo)表2-1-1邮件表单设计

数据域类型说明SendTo文本域收件人地址CopyTo文本域邮件抄送地址BlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(允许多行)邮件正文haveread文本域邮件文件已读标志

操作说明发送发送邮件保存为草稿将邮件保存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件回信表单(Reply)表2-1-2回信表单设计

数据域类型说明SendTo文本域收件人地址CopyTo文本域邮件抄送地址BlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(允许多行)邮件正文haveread文本域邮件文件已读标志

操作说明发送发送邮件保存为草稿将邮件保存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件转发表单(wForward)表2-1-3转发表单设计

数据域类型说明SendTo文本域收件人地址CopyTo文本域邮件抄送地址BlindCopyTo文本域邮件密送地址WebSubject文本域邮件主题Text文本域(允许多行)邮件正文haveread文本域邮件文件已读标志

操作说明发送发送邮件保存为草稿将邮件保存为草稿回复回复邮件转发转发邮件地址簿打开地址簿表单编辑编辑邮件删除删除邮件信件邮递报告表单(NonDeliveryReport)表2-1-4信件邮递报告表单设计

数据域类型说明OriginalSubject文本域被邮递的信件名称IntendedRecipient文本域被邮递信件的收件人地址FailureReason文本域邮件为邮递到目的地原因SendTo文本域被邮递邮件文件中指定的收件地址CopyTo文本域被邮递邮件文件中指定的抄送地址BlindCopyTo文本域被邮递邮件文件中指定的密送地址Subject文本域被邮递邮件文件的主题Body文本域(允许多行)被邮递邮件文件的内容haveread文本域邮件文件已读标志

操作说明删除删除邮件二.视图设计收件箱($Inbox)收件箱通过文件夹实现,所有接收到邮件文件均由系统自动放入收件箱中。2.发件箱($Sent)用于所发送的邮件均自动保存在发件箱中。文档选择条件为:SELECTDeliveredDate=""&PostedDate!=""&!(@IsMember("S";ExcludeFromView))&Viewtag!="Delete"草稿箱($Drafts)所有保存为草稿的邮件均显示在草稿箱中。文档选择条件为:SELECTPostedDate=""&$MessageType=""&@IsNotMember("D";ExcludeFromView)&ISMAILSTATIONERY!=1&Viewtag="Istrash"垃圾箱(Carbage)所有被删除的邮件均保存在此视图中。在此视图中再次删除的话,则邮件文件被真正删除。文档选择条件为:SELECT(FORM="Memo"|form="Reply"|Form="wForward")&Deleted="true"

§2.2公文流转一.结构设计XX工业研究院OA系统公文流转模块总体结构如下图所示。图2-2-1公文流转模块结构设计二.功能设计公文流转模块提供的具体功能如下图所示:图2-2-2公文流转模块功能设计三.表单设计公文表单(Data)公文表单用于记录公文的相关信息。具体设计如下:表2-2-1公文表单设计

数据域类型说明GWLX列表框公文类型DJBM列表框公文的登记部门DJSJ文本域公文的登记时间Subject文本域公文标题NGR文本域公文起草人姓名GWHJ列表框公文缓急信息列表ZTCB文本域公文的主题词ZBDW文本域主办单位名称ZCDW文本域主送单位名称CSDW文本域抄送单位名称CBDW文本域抄报单位名称Info文本域(允许多行)公文正文内容Data_Number文本域公文的编号SelectWorkFlow列表框显示过程定义模版列表PersonAnswer文本域显示处理人的批复意见Data_Personlist文本域允许处理本公文的用户列表Start文本域公文是否为首次提交Data_Current_Editor文本域记录当前编辑公文的用户姓名CuiBan文本域是否存在公文催办通知

操作说明提交流转提交公文进入流转过程暂存将公文保存为草稿签收处理人打开公文进行编辑编辑公文作者编辑公文删除删除公文催办发出公文催办通知说明:(1)Subject、Info等用于记录公文的内容信息,公文的内容信息包括公文主题、公文编号、公文内容、公文密级、公文缓急等。(2)NGR、DJSJ分别记录公文文档的创建人和创建时间,工作流的管理与监控功能会用到这些信息。(3)SelectWorkFlow是列表框,用于显示所有可供使用的过程定义模版。在公文的创建阶段,用户从列表中选择要使用的流程;在公文进入流转过程以后,由工作流引擎根据所选择的流程,自动生成过程定义实例,之后实现公文文档同过程定义实例的绑定操作。(4)Data_Personlist域用于记录所有对本文档具有处理权限的用户的用户名列表,只有在此列表中列出的用户才能够对公文进行处理。其取值由工作流引擎自动填写。公文附件表单(AddAttachment)公文附件表单用于存储某一公文所包含的附件文件,一个公文可以包含多个附件,每个附件对应一个公文附件表单。表2-2-2公文附件表单设计

数据域类型说明Attachment_Info文本域对附件的简要说明FileUpload控件上载文件控件ParentId文本域此附件表单所从属的公文表单IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小

操作说明保存附件保存公文附件表单删除附件删除公文附件表单关闭窗口关闭公文附件上载窗口公文正文表单(AddDocumentBody)公文正文表单用于存储某一公文所包含的正文文件,一个公文可以包含多个正文文件,每个正文文件对应一个公文正文表单。表2-2-3公文正文表单设计

数据域类型说明Attachment_Info文本域对正文文件的简要说明FileUpload控件上载文件控件ParentId文本域此公文正文表单所从属的公文表单IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小

操作说明保存正文保存公文正文表单删除正文删除公文正文表单关闭窗口关闭公文正文上载窗口工作流信息表单(WorkFlowInfo)工作流信息表单用于存储工作流程模版的基本属性信息。在流程信息表单中定义的重要数据域如下:表2-2-4工作流信息表单数据域类型说明Workflow_Name文本域流程名称Workflow_Type列表框流程类型,可选值为“预定义流程”和“自定义流程”Workflow_Author文本域此流程创建人姓名Workflow_Created文本域此流程创建时间Workflow_Body文本域此流程功能简要说明

操作说明修改编辑工作流信息表单保存保存工作流信息表单删除删除工作流信息表单流程节点表单(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文本域用于区分模版和实例,可取值为“模版”、“实例”SelectPre复选框此节点是否为选择性收点SelectNext复选框此节点是否为选择性发点SelectNode文本域如果此节点是选择性发点,则此域用于记录所选定的后继节点名称

操作说明修改编辑流程节点表单保存保存流程节点表单删除删除流程节点表单说明:(1)流程节点定义中的Att(事件属性集合)通过数据域Workflow_Id、Data_Id、Event_Id、Event_Name、Evnent_Personlist、SXQM等表达出来。Event_Pre_Name、Event_Pre_Id为允许多值的文本域,以节点名称和节点文档Id两种方式表达此节点的前驱节点集合Pre;Event_Next_Name、Event_Next_Id则以节点名称和节点文档Id两种方式表达此节点的后继节点集合Next。Event_Status表达节点状态信息。(2)Workflow_Id数据域用于标识此流程节点文档所从属的工作流程。属于同一工作流程的流程节点文档具有相同的Workflow_Id。(3)Data_Id数据域用于实现应用数据实例同过程定义实例的一一对应。Data_Id的值为公文表单的文档实例的文档Id,由工作流管理系统自动填写。组成一个过程定义实例的所有流程节点文档具有相同的Data_Id值。(4)Event_Status标识流程节点的状态信息,由工作流引擎自动设置。(5)构成过程定义的流程节点文档在工作流进入运行期之前,存储在过程定义模版库中;在运行期,则存储到过程定义实例库。因此,在流程节点表单中使用Event_Period数据域来标识过程定义的状态。属于同一过程定义的节点文档的Event_Period域的值是相同的。其可能取值为“模版”和“实例”。(6)SelectPre数据域用于标识此节点是否为选择性收点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不同的启动条件构造算法。(7)SelectNext数据域用于表示此节点是否为选择性发点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不同的完成条件构造算法。节点所选定的后继节点的名称保存在SelectNode数据域中。已办公文记录表单(DoneRecord)已办公文记录表单用于记录用户已经处理完成的公文的相关信息,以备日后查阅。表2-2-6已办公文记录表单设计数据域类型说明Subject文本域公文标题NGR文本域记录公文的拟稿人姓名SDSJ文本域收到此公文的时间BJSJ文本域完成处理的时间PYYJ文本域用户的批阅意见

操作说明删除删除已办公文记录表单用户角色设置表单(UserRuls)用户角色设置表单用于记录用户同其职务的对应关系。表2-2-7用户角色设置表单设计数据域类型说明RulName文本域角色名称SendTo文本域人员名称ZhiNeng文本域角色职能说明

操作说明修改编辑用户角色设置表单保存保存用户角色设置表单删除删除用户角色设置表单搜索表单(SearchForm)搜索表单用于输入文档检索条件。表2-2-8搜索表单设计数据域类型说明Search_ViewName列表框选择要检索的视图Search_Info文本域人员名称Search_Type文本域角色职能说明HTML文本域文档检索结果操作说明检索文档进行检索操作四.视图设计工作流名称列表用于显示数据库中所有工作流信息文档。文档选择条件:SELECTform="WorkFlowInfo"模版事件列表用于显示所有具有“模版”属性的流程节点文档。文档选择条件如下:SELECT((Form="流程节点")&(Event_Period="模版"))激活事件列表用于显示所有具有“激活”属性的流程节点文档。文档选择条件如下:SELECT((Form="流程节点")&(Event_Period="激活"))数据表单列表用于显示所有公文文档。文档选择条件如下:SELECTform="数据表单"&Start=0公文草稿列表用于显示所有保存为草稿的公文文档。文档选择条件如下:SELECTform="数据表单"&Start=1公文附件列表用于显示所有公文附件文档。文档选择条件如下:SELECTform="AddAttachment"公文正文列表用于显示所有公文正文文档。文档选择条件如下:SELECTform="AddDocumentBody"已办公文列表用于显示所有已办公文记录文档。文档选择条件如下:SELECTform="DoneRecord"五.工作流流转控制算法设计功能分析将工作流引擎的功能细化为以下几个子功能:(1)创建过程定义实例在工作流进入运行期以前,过程定义以模版的形式保存在过程定义模版库中。工作流进入运行期,工作流引擎必须根据用户所选定的过程定义模版自动生成过程定义实例,并存入负载最低的过程定义实例子库。(2)完成应用数据实例和过程定义实例的绑定操作在过程定义实例生成以后,工作流引擎必须将其同对应的应用数据实例绑定,实现一一对应,从而完成数据单元实例的组建。(3)在工作流实例运行期间,对流程节点的状态信息进行维护在基于流程节点单一设计元素的过程定义模型中,定义了流程节点状态信息来描述节点对应用数据的处理状态。而整个工作流实例的运行状态会通过流程节点的状态表达出来。工作流引擎需要根据流程节点的启动条件和完成条件来对节点的状态进行设置,从而模拟出数据流动的效果。这是工作流引擎的核心功能。(4)对应用数据文档的访问控制列表进行维护流程节点状态信息的变化必须转化为用户对应用数据处理权限的变化。某一流程节点状态信息变为active,实际意味着在此节点定义中指定的处理人获得了对应用数据文档的处理权;状态信息为inactive或done则表示指定的处理人没有处理文档的权限。因此,工作流引擎需要根据流程节点状态信息的变化,对应用数据表单中的用户访问控制列表进行修改,从而实现节点状态信息和用户对文档处理权限的一致变化。(5)工作流实例运行期间,给予用户对过程定义实例的动态修改的能力由于实际业务处理过程往往表现出一定的随意性,因此,工作流引擎应该向用户提供在工作流实例运行期间,对过程定义实例的修改能力,使用户可以根据文档处理的需要,对预定义的流程进行临时性的修改。这种动态修改流程的能力,可以大大加强工作流系统的灵活性,使工作流系统更加满足用户的实际需求。下图表示了当用户完成应用数据文档的处理,将文档保存提交以后,工作流引擎处理数据的过程:图2-2-3工作流引擎处理数据流程创建过程定义实例和同应用数据实例绑定在流程节点表单(Event)中定义了数据域Event_Period来区分属于过程定义模版库的节点文档和过程定义实例库的节点文档;而Data_Id域用于记录对应应用数据文档的文档Id信息。工作流引擎通过四个步骤完成过程定义实例的创建和同应用数据文档的绑定操作。(1)流程节点文档复制将过程定义模版库中属于相应过程定义的流程节点文档复制,生成一个新的流程节点文档。此新节点文档的数据域的值同其原型完全相同。关键代码如下:‘在数据库中创建新文挡Setnewnode=NewNotesDocument(db)‘将模版库中的节点文档node的全部数据域复制到新文档Callnode.CopyAllItems(newnode,True)(2)置Event_Period域将新建流程节点文档中Event_Period数据域的值由“模版”改为“实例”。关键代码如下:newnode.Event_Period=“实例”(3)同应用数据实例绑定将应用数据文档如公文文档的文档Id值置入新建流程节点文档的Data_Id域,从而完成绑定操作。关键代码如下:‘data为应用数据文档newnode.Data_Id=data.Universalid维护流程节点状态信息a)原理流程假设某节点node完成了应用数据文档处理,接下来工作流引擎会通过设置流程节点的状态信息来更新工作流实例的运行状态。工作流实例运行状态的更新过程可以用下图所示的原理流程表达:

图2-2-4状态更新原理流程从状态更新的原理流程中可以看出,状态更新过程由节点node完成对应用数据文档的处理触发,之后工作流引擎分三步来修改节点状态:a.设置节点node状态为done当流程节点处理完成后,状态有active变为done。b.激活新流程节点流程节点的启动条件决定了节点何时被激活,何时获得处理权限。在此步骤中,工作流引擎通过构造各个流程节点的启动条件,判断其值来完成节点处理权限的传递。因为流程节点的启动条件可以通过其所有前驱节点的状态信息和流转顺序信息的逻辑组合表达出来,所以在节点node完成处理后,工作流引擎没有必要计算构成过程定义实例的所有节点的启动条件,而只需要计算节点node的所有后继节点的启动条件即可。c.决定哪些节点的状态有done变为inactive流程节点状态由done转化为inactive的必要性在过程定义模型部分已经作了说明,节点的完成条件规定了这一状态转化的条件。在某节点完成处理后,工作流引擎通过计算其它节点的完成条件,来确定哪些状态为done的节点可以将状态设置为inactive。步骤1的具体实现步骤1的目的是在节点node完成对应用数据文档的处理以后,将节点状态设置为done。关键代码如下:node.Event_Status=“done”后继节点状态设置算法步骤2的目的是设置节点node的后继节点的状态,节点node的类型以及其后继节点的类型决定了步骤2有不同的实现方式。设置node后继节点状态的过程可以用下图表达:图2-2-5后继节点状态设置算法从图中可以看出,将设置算法依据节点node的分类分为两种情况:a.节点node为唯一后继节点或者发点此种情况下,节点node需要遍历其所有的后继节点,计算每个后继续节点的启动条件的取值。b.节点node为选择性发点当节点node为选择性发点时,根据选择性发点的定义,只有一个后继节点可以获得处理权,因此不需要遍历其所有的后继节点,只需计算其所选定的后继节点的启动条件即可。根据后继节点的类型,计算启动条件分为两种情况(状态设置算法1和状态设置算法2):a.后继节点为收点或唯一前驱节点当节点node的某个后继节点next为收点或唯一前驱收点时,在遍历next的所有前驱节点时,对每个前驱节点计算判断式(select(prei)CTNnext)AND(status(prei)=“done”)的值,只要有一个为false,则next的启动条件必然不成立,即可以终止遍历循环。判断next的启动条件值的关键代码如下:DimflagasBooleanflag=false‘遍历next的全部前驱节点ForallnInnext.Event_Pre_IdSetprenode=db.GetDocumentByUNID(n)IfNot(Select(prenode,next)=trueANDprenode.Event_Status(0)=“done”)Then‘Select()函数用于判断prenode所选定的后继节点列表中是否包括nextflag=trueExitForAllEndIfEndForall

‘设置后继节点next的状态Ifflag=truethen‘节点next的启动条件不满足,状态不变Else‘节点next的启动条件满足,将状态变为activenext.Event_Status=“active”next.saveTrue,True,TrueEndIfb.后继节点为选择性收点当节点node的某个后继节点next为选择性收点时,不需要遍历next的所有前驱节点,而只需要判断下式对节点node的取值即可。(select(node)CTNnext)AND(status(nodei)=“done”)关键代码如下:If(Select(node,next)=trueANDnote.Event_Status(0)=“done”)then‘Select()函数用于判断node所选定的后继节点列表中是否包括nextnext.Event_Status=“active”next.saveTrue,True,TrueElse‘next状态保持不变EndIfd)设置完成条件得到满足的流程节点状态当完成对流程节点node的后继节点状态设置以后,其后继节点状态的变化可能使某些节点的完成条件得到满足,从而完成流程节点状态信息由done向inactive的转化。在判断流程节点的完成条件时,没有必要计算组成过程定义实例的所有流程节点的完成条件,只需要检查节点node的获得了处理权的后继节点的所有前驱节点的完成条件即可。判断完成条件的处理流程如图2-2-6所示。从流程中可以看到,根据next的前驱节点类型,构造next的前驱节点的完成条件有两种方式(完成条件判断算法1和完成条件判断算法2):next的前驱节点为唯一后继节点或者发点关键代码如下:DimflagasBooleanflag=false‘假设prenode为next某个前驱节点,nextnode为prenode的某个后继节点ForallxInprenode.Event_Next_Name Setnextnode=db.getdocumentbyunid(GetIdByName(y)) Ifnextnode.Event_Status(0)<>“active”Then flag=True EndIfEndForallIfflag=TrueThen ‘prenode的完成条件不满足,保持状态不变Else prenode.Event_Status=“inactive” prenode.saveTrue,True,TrueEndIf(2)next的前驱节点为选择性发点关键代码如下:‘假设prenode为next的某个具有选择性发点类型的前驱节点,nextnode为prenode所选定的获得处理权的唯一后继节点Setnextnode=db.getdocumentbyunid(GetIdByName(prenode.SelectEvent(0)))Ifnextnode.Event_Status(0)=“active”then‘prenode的完成条件得到满足 prenode.event_system=“inactive” prenode.saveTrue,True,TrueElse‘prenode的完成条件不成立,状态保持不变EndIf图2-2-6流程节点完成条件判断算法设置应用数据文档的访问控制列表公文表单中的Data_Personlist数据域用于存储允许访问列表,只有列在此列表中的用户才具有对文档的处理权限。通过查找过程定义实例中所有状态为active的流程节点,将它们在Event_Personlist数据域中所指定的处理人姓名添加到应用数据文档的Data_Personlist数据域,来完成节点状态和应用数据文档处理权限的同步变化。关键代码如下:‘假设过程定义实例存储在过程定义实例视图view中,data为应用数据文档Setitem=data.getfirstitem(“Data_Personlist”) Setnode=view.getfirstdocumentWhileNot(nodeIsNothing)‘判断与此应用数据文档相绑定的流程节点的状态If((node.Data_Id(0)=data.Universalid)And(node.Event_Status(0)=“active”))Then‘找到了具有处理权的流程节点,将其指定的处理人加入到应用数据文档的Data_Personlist数据域中 Callitem.appendtotextlist(node.Event_Personlist(0)) data.saveTrue,True,True EndIf Setnode=view.getnextdocument(node) Wend六.工作流流程定义工具设计流程定义工具的功能可以细分为:(1)向用户提供定义工作流的操作界面(2)根据用户的输入自动生成以文本形式表达的工作流抽象描述(3)将以文本形式表达的工作流抽象描述发送给格式转化工具组件类关系将流程节点抽象为流程节点类(Node),同时,将流程节点定义中的事件属性集合、前驱节点集合、后继节点集合均做对象化处理,由此产生属性信息(Attibute)、前驱节点信息(PreNodes)、后继节点信息(NextNodes)三个类。这三个类同流程节点类构成复合聚合的关系,如下图所示。图2-2-7复合聚合型的类关系类结构设计(1)流程节点类(Node)ClassNode{privateStringnode_id;privateAttibuteatt;privatePreNodesp;privateNextNodesn;privateStringtype;privateStringstatus;PublicStringgetId();PublicvoidsetId(Strings);PublicAttibutegetAtt();PublicPreNodesgetP();PublicNextNodesgetN();PublicStringgetStatus();PublicvoidsetStatus(Strings);}实际业务处理过程最终会抽象表达为一系列流程节点类实例的集合。对流程节点类的定义完全遵循流程节点的定义。类定义中成员变量和方法的含义在下表中加以说明:表2-2-9流程节点类设计成员变量含义node_id流程节点的唯一标识符att对流程节点属性信息类(Attribute)的引用p对流程节点前驱节点信息类(PreNodes)的引用n对流程节点后继节点信息类(NextNodes)的引用type流程节点的类型方法作用getId()取得流程节点唯一标识setId()设置流程节点唯一标识getAtt()取得节点状态信息类的指针getP()取得节点前驱节点信息类的指针gerN()取得节点后继节点信息类的指针getType()取得节点类型信息serType()设置流程节点类型信息(2)属性信息类(Attibute)ClassAttibute{privateStringnode_name;privateStringnode_person;privateBooleannode_reply;privateBooleannode_sign;privateStringnode_body;PublicStringgetName();PublicvoidsetName(Strings);PublicStringgetPerson();PublicvoidsetPerson(Strings);PublicStringgetReply();PublicvoidsetReply(Booleanb);PublicStringgetSign();PublicvoidsetSign(Booleanb);PublicStringgetBody();PublicvoidsetBody(Stirngs);}属性信息类用于表达流程节点所代表的实际业务步骤的重要属性信息。属性信息类定义中成员变量和方法的含义在下表中加以说明:表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)ClassNextNodes{ArrayListnextList;PublicvoidaddNext();PublicObjectgetNext(Strings);PublicintgetAcount();PublicvoidemptyList();}后继节点信息类用于对流程节点的后继节点进行记录和管理。类定义中成员变量和方法的含义在下表中加以说明:表2-2-12后继节点信息类设计成员变量含义nextList节点的后继节点引用列表方法作用addNext()向列表中添加新后继节点引用getNext()从列表中取得指定后继节点引用getAcount()取得后继节点数目emptyList()清空后继节点列表过程定义工具文本输出格式选择XML作为工作流抽象描述文本的输出格式。定义DTD如下:<!ELEMENTworkflow(node+)><!ATTLISTworkflowworkflownameCDATA#REQUIREDworkflowtype(public|private)#REQUIREDauthorCDATA#REQUIRED><!ELEMENTnodeEMPTY><!ATTLISTnodenodenameCDATA#REQUIREDprenodesCDATA#REQUIREDnextnodesCDATA#REQUIREDtypeCDATA#REQUIREDpersonCDATA#REQUIREDsign(yes|no)#REQUIREDbodyCDATA#REQUIRED>在DTD中定义了两种元素:workflow和node。workflow元素用于记录用户所定义的工作流流程的名称、类型、创建人信息。一个workflow可以包括一个或者多个node元素实例。node元素用于记录过程定义中某一流程节点的信息,其属性值对应上节所定义的流程节点类(Node)中所包含的信息。七.格式转化工具设计格式转化工具的功能可以细分为:(1)接收工作流过程定义工具的文本输出流(2)对接收到的抽象表达工作流的文本序列进行分析,生成相应的数据库操作指令。格式转化功能的实现流程可以用下图来表达:图2-2-8格式转化功能实现流程通过JAVA语言提供的SAX(扩展标记语言简易应用程序编程接口)[25]来读取XML格式文本序列中的信息。支持SAX接口的XML解析器对接收到的XML格式工作流抽象描述文本序列进行分析,当它发现了一个元素实例后,随即触发文档处理器中用于处理该种元素实例的代码。不同种类元素实例的处理代码均在文档处理器中定义。元素实例处理代码首先取得元素实例的所有属性信息,之后利用数据库提供的数据库远程操作接口,在数据库中创建相应的数据文档。以流程节点文档的创建过程为例。XML格式工作流抽象描述文本中的node元素实例被XML解析器解析出来,触发文档处理器中针对node元素实例的处理程序。处理程序首先取得node元素实例的参数值,作为在Domino数据库中创建的流程节点文档的数据域的值,随后通过Domino系统为JAVA语言提供的数据库远程操作接口完成流程节点文档的创建。当XML格式文本序列中所包含的workflow元素实例和多个node元素实例所对应的数据库文档均创建完成以后,格式转化工作即告完成。§2.3公共事务一.总体结构设计XX工业研究院公共事务模块整体结构如下:公共事务公共事务日程安排会议安排办公室设备管理其他日常事务全部会议日程全部日程列表日程草稿列表审批日程列表空闲时间查询空闲日期查询全部会议列表全部会议列表审批会议列表会议记录列表会议纪要列表空闲会议室会议室空时段会议室管理固定资产管理来宾接待图2-3-1公共事务模块结构图二.表单设计1.日程安排表单日程安排表单用于记录日程安排的相关信息。具体设计如下:表3.1日程安排表单条目域功能备注表单安排名称Arrange_Name输入该安排名称文字域任务范围Arrange_Range选择该安排涉及范围全公司、个人起始时间Arrange_Starttime选择安排起始时间时间域结束时间Arrange_Stoptime选择安排结束时间时间域涉及处室Arrange_Dept选择涉及的处室文字域涉及人员Arrange_Person选择涉及的人员文字域安排描述Arrange_Describe输入该阶段的任务文字域审批类型Review_Type选择审批类型并行、串行审批人名单Reviewer_List输入所有审批人姓名域审批意见Choice选择同意或不同意同意、不同意审批建议Suggestion输入审批建议文字域状态标志Status表示安排所处状态文字域发布标志Arrange_Status表示安排发布状态文字域工具条存储安排X存储编辑的日程安排保存草稿X保存日程安排的草稿提交审批X提交日程安排审批完成审批X完成日程安排审批填写意见X填写审批意见编辑X重新编辑日程安排草稿删除X删除日程安排退出X退出日程安排的编辑说明:日程安排的发布范围为全公司时,才进行审批流程,因此在发布范围为个人时,与审批相关域与工作条为隐藏状态。Status域包含3种状态,分别用数字1、2、3表示,1表示安排处于新建立状态,2表示安排处于审批状态,3表示安排处于审批完成状态。Arrange_Status域包含2种状态,分别用数字0、1表示,0表示安排未发布,1表示安排已被发布。删除和编辑工作也是只由日程安排起草者完成。对于其他用户呈隐藏状态。2.会议安排表单会议安排表单用于记录会议安排的相关信息。具体设计如下:表3.2会议安排表单条目域功能备注表单会议主题Arrange_Name输入该安排名称文字域任务范围Arrange_Range选择该安排涉及范围全公司、本部门、指定起始时间Arrange_Starttime选择安排起始时间时间域结束时间Arrange_Stoptime选择安排结束时间时间域会议主持人President会议主持人姓名姓名域会议起草人Draftman会议起草人姓名姓名域涉及处室Arrange_Dept选择涉及的处室文字域涉及人员Arrange_Person选择涉及的人员文字域会议描述Arrange_Describe输入该阶段的任务文字域审批类型Review_Type选择审批类型并行、串行审批人名单Reviewer_List输入所有审批人姓名域审批意见Choice选择同意或不同意同意、不同意审批建议Suggestion输入审批建议文字域状态标志Status表示会议所处状态文字域发布标志Meeting_Status表示会议发布状态文字域工具条发布通知X存储编辑的会议安排保存草稿X保存会议安排的草稿填写记录X填写会议记录提交审批X提交会议审批完成审批X完成会议审批填写意见X填写审批意见编辑X重新编辑会议草稿删除X删除会议退出X退出会议的编辑说明:会议安排的发布范围为全公司、本部门、指定三种,三种状态下均能进入审批流程。Status域包含3种状态,分别用数字1、2、3表示,1表示会议处于新建立状态,2表示会议处于审批状态,3表示会议处于审批完成状态。Meeting_Status域包含2种状态,分别用数字0、1表示,0表示会议未发布,1表示会议已被发布。3.会议记录表单会议记录表单用于记录会议记录的相关信息。具体设计如下:表3.3会议记录表单条目域功能备注会议时间Meeting_Time显示会议的时间文字域,自动生成会议地点Meeting_Location显示开会地点文字域,自动生成会议起草人Meeting_Draftman显示会议起草人文字域,自动生成会议主题Meeting_Topic显示会议主题文字域,自动生成会议主席Meeting_President显示会议的主席文字域与会者Meeting_Member显示与会者文字域缺席者Meeting_unabsent显示缺席者文字域记录页数Record_Page显示记录页数文字域审批类型Review_Type选择审批类型并行、串行审批人名单Reviewer_List输入所有审批人姓名域审批意见Choice选同意或不同意同意、不同意审批建议Suggestion输入审批建议文字域状态标志Status表示记录所处状态文字域发布标志Record_Status表示记录发布状态文字域工具条发布记录X存储会议记录填写纪要X填写会议纪要提交审批X提交记录审批完成审批X完成记录审批填写意见X填写审批意见编辑X重编会议记录删除X删除会议记录退出X退出会议记录说明:会议记录为详细的会议内容记录,包括文字和语音文件,同时需要进行详细的审批工作。并详细记录与会人员情况。Status域包含3种状态,分别用数字1、2、3表示,1表示记录处于新建立状态,2表示记录处于审批状态,3表示记录处于审批完成状态。Record_Status域包含2种状态,分别用数字0、1表示,0表示记录未发布,1表示记录已被发布。4.会议纪要表单会议纪要表单用于记录会议纪要的相关信息。具体设计如下:表3.4会议纪要表单条目域功能备注会议时间Meeting_Time显示会议的时间文字域,自动生成会议地点Meeting_Location显示开会地点文字域,自动生成会议起草人Meeting_Draftman显示会议起草人文字域,自动生成会议主题Meeting_Topic显示会议主题文字域,自动生成会议简要Meeting_Summ

温馨提示

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

最新文档

评论

0/150

提交评论