工业研究院办公自动化系统设计专业技术方案附MIS系统设计和网站设计.docx
- 文档编号:27646723
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:96
- 大小:281.47KB
工业研究院办公自动化系统设计专业技术方案附MIS系统设计和网站设计.docx
《工业研究院办公自动化系统设计专业技术方案附MIS系统设计和网站设计.docx》由会员分享,可在线阅读,更多相关《工业研究院办公自动化系统设计专业技术方案附MIS系统设计和网站设计.docx(96页珍藏版)》请在冰豆网上搜索。
工业研究院办公自动化系统设计专业技术方案附MIS系统设计和网站设计
XX工业研究院
办公自动化系统
设
计
方
案
XXXX年6月
第一章系统总体结构
《XX工业研究院办公自动化系统》基于LotusDomino/Notes平台开发,系统的总体结构如下图所示:
图1-1XX工业研究院办公自动化系统总体结构
第二章系统设计
§2.1电子邮件
电子邮件模块的结构如下图所示。
图2-1-1电子邮件模块
一.表单设计
1.邮件表单(Memo)
表2-1-1邮件表单设计
数据域
类型
说明
SendTo
文本域
收件人地址
CopyTo
文本域
邮件抄送地址
BlindCopyTo
文本域
邮件密送地址
WebSubject
文本域
邮件主题
Text
文本域(允许多行)
邮件正文
haveread
文本域
邮件文件已读标志
操作
说明
发送
发送邮件
保存为草稿
将邮件保存为草稿
回复
回复邮件
转发
转发邮件
地址簿
打开地址簿表单
编辑
编辑邮件
删除
删除邮件
2.回信表单(Reply)
表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.收件箱($Inbox)
收件箱通过文件夹实现,所有接收到邮件文件均由系统自动放入收件箱中。
2.发件箱($Sent)
用于所发送的邮件均自动保存在发件箱中。
文档选择条件为:
SELECTDeliveredDate=""&PostedDate!
=""
&!
(@IsMember("S";ExcludeFromView))&Viewtag!
="Delete"
3.草稿箱($Drafts)
所有保存为草稿的邮件均显示在草稿箱中。
文档选择条件为:
SELECTPostedDate=""&$MessageType=""
&@IsNotMember("D";ExcludeFromView)&ISMAILSTATIONERY!
=1
&Viewtag="Istrash"
4.垃圾箱(Carbage)
所有被删除的邮件均保存在此视图中。
在此视图中再次删除的话,则邮件文件被真正删除。
文档选择条件为:
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
列表框
公文类型
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域用于记录所有对本文档具有处理权限的用户的用户名列表,只有在此列表中列出的用户才能够对公文进行处理。
其取值由工作流引擎自动填写。
2.公文附件表单(AddAttachment)
公文附件表单用于存储某一公文所包含的附件文件,一个公文可以包含多个附件,每个附件对应一个公文附件表单。
表2-2-2公文附件表单设计
数据域
类型
说明
Attachment_Info
文本域
对附件的简要说明
FileUpload
控件
上载文件控件
ParentId
文本域
此附件表单所从属的公文表单ID
Attachment_Name
文本域
附件文件名
Attachment_Size
文本域
附件文件大小
操作
说明
保存附件
保存公文附件表单
删除附件
删除公文附件表单
关闭窗口
关闭公文附件上载窗口
3.公文正文表单(AddDocumentBody)
公文正文表单用于存储某一公文所包含的正文文件,一个公文可以包含多个正文文件,每个正文文件对应一个公文正文表单。
表2-2-3公文正文表单设计
数据域
类型
说明
Attachment_Info
文本域
对正文文件的简要说明
FileUpload
控件
上载文件控件
ParentId
文本域
此公文正文表单所从属的公文表单ID
Attachment_Name
文本域
附件文件名
Attachment_Size
文本域
附件文件大小
操作
说明
保存正文
保存公文正文表单
删除正文
删除公文正文表单
关闭窗口
关闭公文正文上载窗口
4.工作流信息表单(WorkFlowInfo)
工作流信息表单用于存储工作流程模版的基本属性信息。
在流程信息表单中定义的重要数据域如下:
表2-2-4工作流信息表单
数据域
类型
说明
Workflow_Name
文本域
流程名称
Workflow_Type
列表框
流程类型,可选值为“预定义流程”和“自定义流程”
Workflow_Author
文本域
此流程创建人姓名
Workflow_Created
文本域
此流程创建时间
Workflow_Body
文本域
此流程功能简要说明
操作
说明
修改
编辑工作流信息表单
保存
保存工作流信息表单
删除
删除工作流信息表单
5.流程节点表单(event)
流程节点表单用于记录过程定义中流程节点所包含的信息。
过程定义中的每个流程节点都与Domino数据库中的一个流程节点文档对应。
表2-2-5流程节点表单设计
数据域
类型
说明
Workflow_Id
文本域
节点所从属的工作流信息文档Id
Data_Id
文本域
与此过程定义所绑定的应用数据文档Id
Event_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数据域中。
6.已办公文记录表单(DoneRecord)
已办公文记录表单用于记录用户已经处理完成的公文的相关信息,以备日后查阅。
表2-2-6已办公文记录表单设计
数据域
类型
说明
Subject
文本域
公文标题
NGR
文本域
记录公文的拟稿人姓名
SDSJ
文本域
收到此公文的时间
BJSJ
文本域
完成处理的时间
PYYJ
文本域
用户的批阅意见
操作
说明
删除
删除已办公文记录表单
7.用户角色设置表单(UserRuls)
用户角色设置表单用于记录用户同其职务的对应关系。
表2-2-7用户角色设置表单设计
数据域
类型
说明
RulName
文本域
角色名称
SendTo
文本域
人员名称
ZhiNeng
文本域
角色职能说明
操作
说明
修改
编辑用户角色设置表单
保存
保存用户角色设置表单
删除
删除用户角色设置表单
8.搜索表单(SearchForm)
搜索表单用于输入文档检索条件。
表2-2-8搜索表单设计
数据域
类型
说明
Search_ViewName
列表框
选择要检索的视图
Search_Info
文本域
人员名称
Search_Type
文本域
角色职能说明
HTML
文本域
文档检索结果
操作
说明
检索文档
进行检索操作
四.视图设计
1.工作流名称列表
用于显示数据库中所有工作流信息文档。
文档选择条件:
SELECTform="WorkFlowInfo"
2.模版事件列表
用于显示所有具有“模版”属性的流程节点文档。
文档选择条件如下:
SELECT((Form="流程节点")&(Event_Period="模版"))
3.激活事件列表
用于显示所有具有“激活”属性的流程节点文档。
文档选择条件如下:
SELECT((Form="流程节点")&(Event_Period="激活"))
4.数据表单列表
用于显示所有公文文档。
文档选择条件如下:
SELECTform="数据表单"&Start=0
5.公文草稿列表
用于显示所有保存为草稿的公文文档。
文档选择条件如下:
SELECTform="数据表单"&Start=1
6.公文附件列表
用于显示所有公文附件文档。
文档选择条件如下:
SELECTform="AddAttachment"
7.公文正文列表
用于显示所有公文正文文档。
文档选择条件如下:
SELECTform="AddDocumentBody"
8.已办公文列表
用于显示所有已办公文记录文档。
文档选择条件如下:
SELECTform="DoneRecord"
五.工作流流转控制算法设计
1.功能分析
将工作流引擎的功能细化为以下几个子功能:
(1)创建过程定义实例
在工作流进入运行期以前,过程定义以模版的形式保存在过程定义模版库
中。
工作流进入运行期,工作流引擎必须根据用户所选定的过程定义模版自动
生成过程定义实例,并存入负载最低的过程定义实例子库。
(2)完成应用数据实例和过程定义实例的绑定操作
在过程定义实例生成以后,工作流引擎必须将其同对应的应用数据实例绑
定,实现一一对应,从而完成数据单元实例的组建。
(3)在工作流实例运行期间,对流程节点的状态信息进行维护
在基于流程节点单一设计元素的过程定义模型中,定义了流程节点状态信
息来描述节点对应用数据的处理状态。
而整个工作流实例的运行状态会通过流
程节点的状态表达出来。
工作流引擎需要根据流程节点的启动条件和完成条件
来对节点的状态进行设置,从而模拟出数据流动的效果。
这是工作流引擎的核
心功能。
(4)对应用数据文档的访问控制列表进行维护
流程节点状态信息的变化必须转化为用户对应用数据处理权限的变化。
某
一流程节点状态信息变为active,实际意味着在此节点定义中指定的处理人获得
了对应用数据文档的处理权;状态信息为inactive或done则表示指定的处理人没
有处理文档的权限。
因此,工作流引擎需要根据流程节点状态信息的变化,对
应用数据表单中的用户访问控制列表进行修改,从而实现节点状态信息和用户
对文档处理权限的一致变化。
(5)工作流实例运行期间,给予用户对过程定义实例的动态修改的能力
由于实际业务处理过程往往表现出一定的随意性,因此,工作流引擎应该向
用户提供在工作流实例运行期间,对过程定义实例的修改能力,使用户可以根据
文档处理的需要,对预定义的流程进行临时性的修改。
这种动态修改流程的能力,
可以大大加强工作流系统的灵活性,使工作流系统更加满足用户的实际需求。
下图表示了当用户完成应用数据文档的处理,将文档保存提交以后,工作流引擎处理数据的过程:
图2-2-3工作流引擎处理数据流程
2.创建过程定义实例和同应用数据实例绑定
在流程节点表单(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
3.维护流程节点状态信息
a)原理流程
假设某节点node完成了应用数据文档处理,接下来工作流引擎会通过设置流程节点的状态信息来更新工作流实例的运行状态。
工作流实例运行状态的更新过程可以用下图所示的原理流程表达:
图2-2-4状态更新原理流程
从状态更新的原理流程中可以看出,状态更新过程由节点node完成对应用数据文档的处理触发,之后工作流引擎分三步来修改节点状态:
a.设置节点node状态为done
当流程节点处理完成后,状态有active变为done。
b.激活新流程节点
流程节点的启动条件决定了节点何时被激活,何时获得处理权限。
在此步骤
中,工作流引擎通过构造各个流程节点的启动条件,判断其值来完成节点处理权限的传递。
因为流程节点的启动条件可以通过其所有前驱节点的状态信息和流转顺序信息的逻辑组合表达出来,所以在节点node完成处理后,工作流引擎没有必要计算构成过程定义实例的所有节点的启动条件,而只需要计算节点node的所有后继节点的启动条件即可。
c.决定哪些节点的状态有done变为inactive
流程节点状态由done转化为inactive的必要性在过程定义模型部分已经作
了说明,节点的完成条件规定了这一状态转化的条件。
在某节点完成处理后,工作流引擎通过计算其它节点的完成条件,来确定哪些状态为done的节点可以将状态设置为inactive。
b)步骤1的具体实现
步骤1的目的是在节点node完成对应用数据文档的处理以后,将节点状态设置为done。
关键代码如下:
node.Event_Status=“done”
c)后继节点状态设置算法
步骤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的启动条件值的关键代码如下:
DimflagasBoolean
flag=false
‘遍历next的全部前驱节点
ForallnInnext.Event_Pre_Id
Setprenode=db.GetDocumentByUNID(n)
IfNot(Select(prenode,next
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工业 研究院 办公自动化 系统 设计 专业技术 方案 MIS 网站
![提示](https://static.bdocx.com/images/bang_tan.gif)