ImageVerifierCode 换一换
格式:DOC , 页数:73 ,大小:1.60MB ,
文档编号:5780980      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5780980.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(2023DOC)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(工业研究院办公自动化系统设计方案附MIS系统设计和网站设计说明(DOC 91页).doc)为本站会员(2023DOC)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

工业研究院办公自动化系统设计方案附MIS系统设计和网站设计说明(DOC 91页).doc

1、 . XX工业研究院办公自动化系统设计方案XXXX年6月目录第一章系统总体结构6第二章系统设计7 2.1 电子7一. 表单设计71. 表单(Memo)72. 回信表单(Reply)83. 转发表单(wForward)84. 信件邮递报告表单(NonDelivery Report)9二. 视图设计91.收件箱($Inbox)92. 发件箱($Sent)93.草稿箱($Drafts)104.垃圾箱(Carbage)10 2.2 公文流转11一. 结构设计11二. 功能设计11三. 表单设计121.公文表单(Data)122.公文附件表单(AddAttachment)133.公文正文表单(AddDo

2、cumentBody)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.类结构设

3、计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. 来宾接待视

4、图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二. 视图设计5

5、41.组织机构列表(DepartmentList)542.用户列表(Persons)543.职务列表(Caste_Name)544.用户权限列表(Limit)54附录1 XX工业研究院MIS系统设计55 1 概述55 2 需求分析55一、 科技项目管理55l项目申报(科委项目、工研院项目)55l合同管理55l项目跟踪55二、 教育培训管理55l职工教育培训55l招生管理55三、 科技情报管理55l科技情报发布55l下属单位需求55四、 申请书编号管理55五、 用户权限管理55 3 功能表格56科技项目管理X56教育管理培训J56科技情报管理Q56 4 功能模块设计57一.功能模块57l科技项目

6、管理57l教育培训管理58l科技情报管理58二. 功能说明58l科技项目管理58l教育培训管理59l科技情报信息管理59 5 数据表格设计59一. 科技项目与合同管理59l科技项目申请表59l申请一览表61l工研院项目执行情况报告书61二.教育管理培训62三.科技情报管理62l科技情报发布62l下属单位需求63附录2 设计64 1 概述64 2 功能设计64一.情况介绍64二.需求分析64三.功能模块与实现65四.数据接口66五.目录结构67 3 数据库设计6773 / 73第一章系统总体结构XX工业研究院办公自动化系统基于Lotus Domino / Notes平台开发,系统的总体结构如下图

7、所示:图1-1 XX工业研究院办公自动化系统总体结构第二章系统设计 2.1 电子电子模块的结构如下图所示。图2-1-1电子模块一. 表单设计1. 表单(Memo)表2-1-1表单设计数据域类型说明SendTo文本域收件人地址CopyTo文本域抄送地址BlindCopyTo文本域密送地址WebSubject文本域主题Text文本域(允许多行)正文haveread文本域文件已读标志操作说明发送发送保存为草稿将保存为草稿回复回复转发转发地址簿打开地址簿表单编辑编辑删除删除2. 回信表单(Reply)表2-1-2回信表单设计数据域类型说明SendTo文本域收件人地址CopyTo文本域抄送地址Blind

8、CopyTo文本域密送地址WebSubject文本域主题Text文本域(允许多行)正文haveread文本域文件已读标志操作说明发送发送保存为草稿将保存为草稿回复回复转发转发地址簿打开地址簿表单编辑编辑删除删除3. 转发表单(wForward)表2-1-3转发表单设计数据域类型说明SendTo文本域收件人地址CopyTo文本域抄送地址BlindCopyTo文本域密送地址WebSubject文本域主题Text文本域(允许多行)正文haveread文本域文件已读标志操作说明发送发送保存为草稿将保存为草稿回复回复转发转发地址簿打开地址簿表单编辑编辑删除删除4. 信件邮递报告表单(NonDeliver

9、y Report)表2-1-4信件邮递报告表单设计数据域类型说明OriginalSubject文本域被邮递的信件名称IntendedRecipient文本域被邮递信件的收件人地址FailureReason文本域为邮递到目的地原因SendTo文本域被邮递文件中指定的收件地址CopyTo文本域被邮递文件中指定的抄送地址BlindCopyTo文本域被邮递文件中指定的密送地址Subject文本域被邮递文件的主题Body文本域(允许多行)被邮递文件的容haveread文本域文件已读标志操作说明删除删除二. 视图设计1. 收件箱($Inbox)收件箱通过文件夹实现,所有接收到文件均由系统自动放入收件箱中。

10、2. 发件箱($Sent)用于所发送的均自动保存在发件箱中。文档选择条件为:SELECT DeliveredDate= & PostedDate!= & !(IsMember(S;ExcludeFromView)&Viewtag!=Delete3. 草稿箱($Drafts)所有保存为草稿的均显示在草稿箱中。文档选择条件为:SELECT PostedDate = & $MessageType = & IsNotMember(D;ExcludeFromView) & ISMAILSTATIONERY != 1& Viewtag=Istrash4. 垃圾箱(Carbage)所有被删除的均保存在此视图

11、中。在此视图中再次删除的话,则文件被真正删除。 文档选择条件为:SELECT (FORM=Memo | form=Reply | Form=wForward) & Deleted=true 2.2 公文流转一. 结构设计XX工业研究院OA系统公文流转模块总体结构如下图所示。图2-2-1公文流转模块结构设计二. 功能设计公文流转模块提供的具体功能如下图所示:图2-2-2公文流转模块功能设计三. 表单设计1. 公文表单(Data)公文表单用于记录公文的相关信息。具体设计如下:表2-2-1公文表单设计数据域类型说明GWLX列表框公文类型DM列表框公文的登记部门DJSJ文本域公文的登记时间Subjec

12、t文本域公文标题NGR文本域公文起草人GWHJ列表框公文缓急信息列表ZTCB文本域公文的主题词ZBDW文本域主办单位名称ZCDW文本域主送单位名称CSDW文本域抄送单位名称CBDW文本域抄报单位名称Info文本域(允许多行)公文正文容Data_Number文本域公文的编号SelectWorkFlow列表框显示过程定义模版列表PersonAnswer文本域显示处理人的批复意见Data_Personlist文本域允许处理本公文的用户列表Start文本域公文是否为首次提交Data_Current_Editor文本域记录当前编辑公文的用户CuiBan文本域是否存在公文催办通知操作说明提交流转提交公文进

13、入流转过程暂存将公文保存为草稿签收处理人打开公文进行编辑编辑公文作者编辑公文删除删除公文催办发出公文催办通知说明:(1) Subject、Info等用于记录公文的容信息,公文的容信息包括公文主题、公文编号、公文容、公文密级、公文缓急等。(2) NGR、DJSJ分别记录公文文档的创建人和创建时间,工作流的管理与监控功能会用到这些信息。(3) SelectWorkFlow是列表框,用于显示所有可供使用的过程定义模版。在公文的创建阶段,用户从列表中选择要使用的流程;在公文进入流转过程以后,由工作流引擎根据所选择的流程,自动生成过程定义实例,之后实现公文文档同过程定义实例的绑定操作。(4) Data_

14、Personlist域用于记录所有对本文档具有处理权限的用户的用户名列表,只有在此列表中列出的用户才能够对公文进行处理。其取值由工作流引擎自动填写。2. 公文附件表单(AddAttachment)公文附件表单用于存储某一公文所包含的附件文件,一个公文可以包含多个附件,每个附件对应一个公文附件表单。表2-2-2公文附件表单设计数据域类型说明Attachment_Info文本域对附件的简要说明File Upload控件上载文件控件ParentId文本域此附件表单所从属的公文表单IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小操作说明保存附件保存公文

15、附件表单删除附件删除公文附件表单关闭窗口关闭公文附件上载窗口3. 公文正文表单(AddDocumentBody)公文正文表单用于存储某一公文所包含的正文文件,一个公文可以包含多个正文文件,每个正文文件对应一个公文正文表单。表2-2-3公文正文表单设计数据域类型说明Attachment_Info文本域对正文文件的简要说明File Upload控件上载文件控件ParentId文本域此公文正文表单所从属的公文表单IDAttachment_Name文本域附件文件名Attachment_Size文本域附件文件大小操作说明保存正文保存公文正文表单删除正文删除公文正文表单关闭窗口关闭公文正文上载窗口4. 工

16、作流信息表单(WorkFlowInfo)工作流信息表单用于存储工作流程模版的基本属性信息。在流程信息表单中定义的重要数据域如下:表2-2-4工作流信息表单数据域类型说明Workflow_Name文本域流程名称Workflow_Type列表框流程类型,可选值为“预定义流程”和“自定义流程”Workflow_Author文本域此流程创建人Workflow_Created文本域此流程创建时间Workflow_Body文本域此流程功能简要说明操作说明修改编辑工作流信息表单保存保存工作流信息表单删除删除工作流信息表单5. 流程节点表单(event)流程节点表单用于记录过程定义中流程节点所包含的信息。过程

17、定义中的每个流程节点都与Domino数据库中的一个流程节点文档对应。表2-2-5流程节点表单设计数据域类型说明Workflow_Id文本域节点所从属的工作流信息文档IdData_Id文本域与此过程定义所绑定的应用数据文档IdEvent_Id文本域流程节点文档Id,在节点文档生成后自动填写Event_Name文本域流程节点功能描述名称,如初审、批阅等。Event_Pre_Names列表框此流程节点的全部前趋节点列表Event_Personlist文本域此节点允许处理人名称Event_Personlist_Type列表域指定处理人类型:“个人”、“交色”SXQM复选框是否使用手写签名功能Event

18、_Body文本框(允许多值)此节点功能简要说明Event_Pre_Name文本域(允许多值)以节点名称表示的前驱节点列表Event_Pre_Id文本域(允许多值)以节点Id表示的前驱节点列表Evemt_Next_Name文本域(允许多值)以节点名称表示的后继节点列表Event_Next_Id文本域(允许多值)以节点Id表示的后继节点列表Event_Status文本域流程节点状态Event_Period文本域流程节点文档状态Event_Period文本域用于区分模版和实例,可取值为“模版”、“实例”SelectPre复选框此节点是否为选择性收点SelectNext复选框此节点是否为选择性发点Se

19、lectNode文本域如果此节点是选择性发点,则此域用于记录所选定的后继节点名称操作说明修改编辑流程节点表单保存保存流程节点表单删除删除流程节点表单说明:(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两种方式表达此节点的后继节点集合

20、Next。Event_Status表达节点状态信息。(2) Workflow_Id数据域用于标识此流程节点文档所从属的工作流程。属于同一工作流程的流程节点文档具有一样的Workflow_Id。(3) Data_Id数据域用于实现应用数据实例同过程定义实例的一一对应。Data_Id的值为公文表单的文档实例的文档Id,由工作流管理系统自动填写。组成一个过程定义实例的所有流程节点文档具有一样的Data_Id值。(4) Event_Status标识流程节点的状态信息,由工作流引擎自动设置。(5) 构成过程定义的流程节点文档在工作流进入运行期之前,存储在过程定义模版库中;在运行期,则存储到过程定义实例库

21、。因此,在流程节点表单中使用Event_Period数据域来标识过程定义的状态。属于同一过程定义的节点文档的Event_Period域的值是一样的。其可能取值为“模版”和“实例”。(6) SelectPre数据域用于标识此节点是否为选择性收点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不同的启动条件构造算法。(7) SelectNext数据域用于表示此节点是否为选择性发点。在工作流实例运行期间,工作流引擎需要根据此数据域的取值选择不同的完成条件构造算法。节点所选定的后继节点的名称保存在SelectNode数据域中。6. 已办公文记录表单(DoneRecord)已办公文记录表单用

22、于记录用户已经处理完成的公文的相关信息,以备日后查阅。表2-2-6 已办公文记录表单设计数据域类型说明Subject文本域公文标题NGR文本域记录公文的拟稿人SDSJ文本域收到此公文的时间BJSJ文本域完成处理的时间PYYJ文本域用户的批阅意见操作说明删除删除已办公文记录表单7. 用户角色设置表单(UserRuls)用户角色设置表单用于记录用户同其职务的对应关系。表2-2-7用户角色设置表单设计数据域类型说明RulName文本域角色名称SendTo文本域人员名称ZhiNeng文本域角色职能说明操作说明修改编辑用户角色设置表单保存保存用户角色设置表单删除删除用户角色设置表单8. 搜索表单(Sea

23、rchForm)搜索表单用于输入文档检索条件。表2-2-8搜索表单设计数据域类型说明Search_ViewName列表框选择要检索的视图Search_Info文本域人员名称Search_Type文本域角色职能说明HTML文本域文档检索结果操作说明检索文档进行检索操作四. 视图设计1. 工作流名称列表用于显示数据库中所有工作流信息文档。 文档选择条件:SELECT form=WorkFlowInfo2. 模版事件列表用于显示所有具有“模版”属性的流程节点文档。文档选择条件如下:SELECT (Form = 流程节点) & (Event_Period=模版) 3. 激活事件列表用于显示所有具有“激

24、活”属性的流程节点文档。文档选择条件如下:SELECT (Form = 流程节点) & (Event_Period=激活) 4. 数据表单列表用于显示所有公文文档。文档选择条件如下:SELECT form=数据表单 & Start=0 5. 公文草稿列表用于显示所有保存为草稿的公文文档。文档选择条件如下: SELECT form=数据表单 & Start=1 6. 公文附件列表用于显示所有公文附件文档。文档选择条件如下:SELECT form=AddAttachment7. 公文正文列表用于显示所有公文正文文档。文档选择条件如下:SELECT form=AddDocumentBody8. 已办

25、公文列表用于显示所有已办公文记录文档。文档选择条件如下:SELECT form=DoneRecord五. 工作流流转控制算法设计1. 功能分析将工作流引擎的功能细化为以下几个子功能: (1) 创建过程定义实例在工作流进入运行期以前,过程定义以模版的形式保存在过程定义模版库中。工作流进入运行期,工作流引擎必须根据用户所选定的过程定义模版自动生成过程定义实例,并存入负载最低的过程定义实例子库。 (2) 完成应用数据实例和过程定义实例的绑定操作在过程定义实例生成以后,工作流引擎必须将其同对应的应用数据实例绑定,实现一一对应,从而完成数据单元实例的组建。 (3) 在工作流实例运行期间,对流程节点的状态

26、信息进行维护在基于流程节点单一设计元素的过程定义模型中,定义了流程节点状态信息来描述节点对应用数据的处理状态。而整个工作流实例的运行状态会通过流程节点的状态表达出来。工作流引擎需要根据流程节点的启动条件和完成条件来对节点的状态进行设置,从而模拟出数据流动的效果。这是工作流引擎的核心功能。 (4) 对应用数据文档的访问控制列表进行维护流程节点状态信息的变化必须转化为用户对应用数据处理权限的变化。某一流程节点状态信息变为active,实际意味着在此节点定义中指定的处理人获得了对应用数据文档的处理权;状态信息为inactive或done则表示指定的处理人没有处理文档的权限。因此,工作流引擎需要根据流

27、程节点状态信息的变化,对应用数据表单中的用户访问控制列表进行修改,从而实现节点状态信息和用户对文档处理权限的一致变化。 (5) 工作流实例运行期间,给予用户对过程定义实例的动态修改的能力由于实际业务处理过程往往表现出一定的随意性,因此,工作流引擎应该向用户提供在工作流实例运行期间,对过程定义实例的修改能力,使用户可以根据文档处理的需要,对预定义的流程进行临时性的修改。这种动态修改流程的能力,可以大大加强工作流系统的灵活性,使工作流系统更加满足用户的实际需求。下图表示了当用户完成应用数据文档的处理,将文档保存提交以后,工作流引擎处理数据的过程:图2-2-3工作流引擎处理数据流程2. 创建过程定义

28、实例和同应用数据实例绑定在流程节点表单(Event)中定义了数据域Event_Period来区分属于过程定义模版库的节点文档和过程定义实例库的节点文档;而Data_Id域用于记录对应应用数据文档的文档Id信息。工作流引擎通过四个步骤完成过程定义实例的创建和同应用数据文档的绑定操作。(1) 流程节点文档复制将过程定义模版库中属于相应过程定义的流程节点文档复制,生成一个新的流程节点文档。此新节点文档的数据域的值同其原型完全一样。关键代码如下: 在数据库中创建新文挡 Set newnode = New NotesDocument( db ) 将模版库中的节点文档node的全部数据域复制到新文档Cal

29、l node.CopyAllItems( newnode, True ) (2) 置Event_Period域将新建流程节点文档中Event_Period数据域的值由“模版”改为“实例”。关键代码如下:newnode.Event_Period =“实例”(3) 同应用数据实例绑定将应用数据文档如公文文档的文档Id值置入新建流程节点文档的Data_Id域,从而完成绑定操作。关键代码如下: data为应用数据文档 newnode.Data_Id = data.Universalid3. 维护流程节点状态信息a) 原理流程假设某节点node完成了应用数据文档处理,接下来工作流引擎会通过设置流程节点的

30、状态信息来更新工作流实例的运行状态。工作流实例运行状态的更新过程可以用下图所示的原理流程表达:图2-2-4状态更新原理流程从状态更新的原理流程中可以看出,状态更新过程由节点node完成对应用数据文档的处理触发,之后工作流引擎分三步来修改节点状态:a. 设置节点node状态为done当流程节点处理完成后,状态有active变为done。 b. 激活新流程节点流程节点的启动条件决定了节点何时被激活,何时获得处理权限。在此步骤中,工作流引擎通过构造各个流程节点的启动条件,判断其值来完成节点处理权限的传递。因为流程节点的启动条件可以通过其所有前驱节点的状态信息和流转顺序信息的逻辑组合表达出来,所以在节

31、点node完成处理后,工作流引擎没有必要计算构成过程定义实例的所有节点的启动条件,而只需要计算节点node的所有后继节点的启动条件即可。c. 决定哪些节点的状态有done变为inactive流程节点状态由done转化为inactive的必要性在过程定义模型部分已经作了说明,节点的完成条件规定了这一状态转化的条件。在某节点完成处理后,工作流引擎通过计算其它节点的完成条件,来确定哪些状态为done的节点可以将状态设置为inactive。b) 步骤1的具体实现步骤1的目的是在节点node完成对应用数据文档的处理以后,将节点状态设置为done。关键代码如下: node.Event_Status = “

32、done”c) 后继节点状态设置算法步骤2的目的是设置节点node的后继节点的状态,节点node的类型以与其后继节点的类型决定了步骤2有不同的实现方式。设置node后继节点状态的过程可以用下图表达:图2-2-5后继节点状态设置算法从图中可以看出,将设置算法依据节点node的分类分为两种情况:a. 节点node为唯一后继节点或者发点此种情况下,节点node需要遍历其所有的后继节点,计算每个后继续节点的启动条件的取值。b. 节点node为选择性发点当节点node为选择性发点时,根据选择性发点的定义,只有一个后继节点可以获得处理权,因此不需要遍历其所有的后继节点,只需计算其所选定的后继节点的启动条件

33、即可。根据后继节点的类型,计算启动条件分为两种情况(状态设置算法1和状态设置算法2):a. 后继节点为收点或唯一前驱节点当节点node的某个后继节点next为收点或唯一前驱收点时,在遍历next的所有前驱节点时,对每个前驱节点计算判断式(select(prei) CTN next) AND (status(prei) = “done”)的值,只要有一个为false,则next的启动条件必然不成立,即可以终止遍历循环。判断next的启动条件值的关键代码如下:Dim flag as Booleanflag = false 遍历next的全部前驱节点Forall n In next.Event_Pr

34、e_Id Set prenode = db.GetDocumentByUNID(n)If Not(Select(prenode,next) = true AND prenode.Event_Status(0) = “done”) ThenSelect()函数用于判断prenode所选定的后继节点列表中是否包括next flag = true Exit ForAll End IfEnd Forall 设置后继节点next的状态If flag = true then 节点next的启动条件不满足,状态不变Else 节点next的启动条件满足,将状态变为active next.Event_Statu

35、s = “active” next.save True,True,TrueEnd Ifb. 后继节点为选择性收点当节点node的某个后继节点next为选择性收点时,不需要遍历next的所有前驱节点,而只需要判断下式对节点node的取值即可。(select(node) CTN next) AND (status(nodei) = “done”) 关键代码如下:If (Select(node,next) = true AND note.Event_Status(0) = “done”) thenSelect()函数用于判断node所选定的后继节点列表中是否包括next next.Event_Sta

36、tus = “active” next.save True,True,TrueElse next状态保持不变End Ifd) 设置完成条件得到满足的流程节点状态当完成对流程节点node的后继节点状态设置以后,其后继节点状态的变化可能使某些节点的完成条件得到满足,从而完成流程节点状态信息由done向inactive的转化。在判断流程节点的完成条件时,没有必要计算组成过程定义实例的所有流程节点的完成条件,只需要检查节点node的获得了处理权的后继节点的所有前驱节点的完成条件即可。判断完成条件的处理流程如图2-2-6所示。从流程中可以看到,根据next的前驱节点类型,构造next的前驱节点的完成条件

37、有两种方式(完成条件判断算法1和完成条件判断算法2):(2) next的前驱节点为唯一后继节点或者发点关键代码如下:Dim flag as Booleanflag = false 假设prenode为next某个前驱节点,nextnode为prenode的某个后继节点Forall x In prenode.Event_Next_NameSet nextnode=db.getdocumentbyunid(GetIdByName(y)If nextnode.Event_Status(0) “active” Thenflag=TrueEnd IfEnd ForallIf flag=True Then

38、 prenode的完成条件不满足,保持状态不变Else prenode.Event_Status= “inactive” prenode.save True,True,TrueEnd If(2) next的前驱节点为选择性发点关键代码如下: 假设prenode为next的某个具有选择性发点类型的前驱节点,nextnode为prenode所选定的获得处理权的唯一后继节点Set nextnode=db.getdocumentbyunid(GetIdByName(prenode. SelectEvent(0)If nextnode.Event_Status(0)= “active” thenpren

39、ode的完成条件得到满足 prenode.event_system= “inactive” prenode.save True,True,TrueElse prenode的完成条件不成立,状态保持不变End If图2-2-6流程节点完成条件判断算法e) 设置应用数据文档的访问控制列表公文表单中的Data_Personlist数据域用于存储允许访问列表,只有列在此列表中的用户才具有对文档的处理权限。通过查找过程定义实例中所有状态为active的流程节点,将它们在Event_Personlist数据域中所指定的处理人添加到应用数据文档的Data_Personlist数据域,来完成节点状态和应用数据

40、文档处理权限的同步变化。关键代码如下: 假设过程定义实例存储在过程定义实例视图view中,data为应用数据文档 Set item=data.getfirstitem(“Data_Personlist”)Set node=view.getfirstdocumentWhile Not(node Is Nothing) 判断与此应用数据文档相绑定的流程节点的状态If (node.Data_Id(0)=data.Universalid) And (node.Event_Status(0)= “active”)Then找到了具有处理权的流程节点,将其指定的处理人加入到应用数据文档的Data_Perso

41、nlist数据域中 Call item.appendtotextlist(node.Event_Personlist(0) data.save True,True,True End If Set node=view.getnextdocument(node)Wend六. 工作流流程定义工具设计流程定义工具的功能可以细分为:(1) 向用户提供定义工作流的操作界面(2) 根据用户的输入自动生成以文本形式表达的工作流抽象描述(3) 将以文本形式表达的工作流抽象描述发送给格式转化工具组件1. 类关系将流程节点抽象为流程节点类(Node),同时,将流程节点定义中的事件属性集合、前驱节点集合、后继节点集合均做对象化处理,由此产生属性信息(Attibute)、前驱节点信息(PreNodes)、后继节点信息(NextNodes)三个类。这三个类同流程节点类构成复合聚合的关系,如下图所示。图2-2-7复合聚合型的类关系2. 类结构设计(1) 流程节点类(Node)Class Node private String node_id ; private Attibute att ; private Pre

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|