中国人民银行石家庄中心支行 陈力勇
传统的企业管理软件,一般都是根据不同的企业进行定制的管理软件。这些定制的管理软件各不相同,各个企业的软件之间无法相互复用,企业管理软件缺乏变化的灵活性。不同的企业有着不同的管理模式和不同的管理流程,甚至不同单位的同一工作的工作流程也不尽相同。随着企业的发展,企业管理的进步,企业管理软件会根据新需求而不能适应现有管理流程,需要对软件大动干戈,甚至是重新编写企业管理软件,这样不仅仅影响企业的正常工作,而且无形之中扩大了软件成本。随着计算机技术的飞速发展,计算机管理系统应该适应企业的这一变化。为了适应这一现象,我们可以将业务逻辑和过程逻辑相分离,在业务逻辑不变的情况下,只需要修改过程逻辑就可以解决问题,而不需要对管理软件大动干戈。将工作流技术与业务系统结合是工作流技术的核心思想。
Lotus软件是IBM公司开发的一款办公电子协作平台。其中Domino/Notes产品由于其在协作平台市场上占据绝对优势,目前已经成为业界的一种群件标准。越来越多的企事业应用Lotus Domino/Notes软件平台开发办公自动化系统,将Lotus Domino/Notes软件名声越来越大。很多行业内外的人一想到办公自动化系统,就会到了Lotus,而提起了Lotus软件,就一定会想起办公自动化系统。以至于有一种说法,Lotus就是OA,OA就是Lotus。这个说法,一方面体现了Lotus软件在中国协作市场受到认同和推广的普遍事实;另一方面,也是因为许多技术和非技术人员对于Lotus软件的内涵和应用还了解得不够深入和全面。
Lotus Domino/Notes不仅仅是一款优秀的办公电子协作平台,而且它还具有可靠的安全特性,它有层层的安全控制机制,共八层。从上层到最底层的安全机制分别是:域安全、区段安全、文档安全、表单视图安全、数据库安全、服务器安全、会话安全、网络信道安全共八层安全机制。
任何一个工作流程都是需要一个人或者一组人完成一系列的任务,这些任务如收发电子邮件,自动跟踪项目计划等等。工作流应用程序应该满足能够自动完成这些任务。本文以群件系统Lotus Domino/Notes为平台,按照软件工程思想设计并实现基于B/S架构的办公自动化系统项目。由于语言的跨平台性,我们选择JAVA作为开发语言。
工作流管理信息系统的设计,首先步骤应该是工作流建模,将信息存储到流程信息数据库中,通过JDBC协议与工作流引擎进行通讯。工作流引擎作为一个远程服务器对象,定义了流程操作的接口,客户端用户可以通过JAVA RMI,即JAVA Remote Method Invocation远程方法调用实现与工作流引擎的通讯。工作流引擎封装了RMI远程方法调用对象,如果要为工作流引擎开发新功能,直接在接口中增加新的接口即可,很容易实现功能扩展。在Domino服务器Notes应用数据库中,部署RMI的远程接口,RMI服务器对象编译所得的客户端stub,可序列化对象DocState等等。它的工作步骤是:首先工作流引擎调用RMI服务器对象与本地主机上进行绑定,客户端调用按名称查询远程RMI对象并获得其引用,然后通过InterfaceEngine接口中提供的方法,对工作流引擎进行操作。
Web对客户端的调用方法有两种,一种是通过输入URL地址直接运行。另一种是页面提交方式,该方式是通过调用webQuerySave来部署。
在DominoR6版本中,附带了文档集模板和工作室模板,它们是两个应用模板。软件中模板的扩展名为.ntf。我们可以根据具体工作流需要直接采用Domino软件所提供的现有模板。
文档集模板是doclbw6.ntf,主要职责是使用特定的评审流程,将文档链接以邮件的形式发送给一个或者一组收件人。其中评审方式分为两种,一种叫串行评审,一种叫并行评审。前者不希望所有收件人同时评审文档。后者只要一个收件人备注了文档,则会通知其他所有收件人更新这一现象。
工作室模板是teamrm6.ntf。文档集模板而工作室模板的职责是自动发送并归档简报或者便签。
如下步骤是一个评审活动的邮件收发步骤。User01为标记评审用户,checker01为评审用户。步骤如下所示:
a.首先建立用户user01和checker01。
b.首先创建一个文档集数据库。服务器为默认安装服务器,标题为“测试工作流1”,文件名为doclib6.nsf,勾选“显示高级模板”和“继承以后的设计更改”。点击“确定”按钮。
c.会弹出“存取控制列表:测试工作流1”的对话框。点击“-Default-”,属性列权限为“作者”,检查它的存取控制列表,勾选“创建文档”、“删除文档”、“创建个人代理”、“创建个人文件夹/视图”、“复制或拷贝文档”。点击“确定”按钮。
d.切换到用户user01,打开数据库,创建一个未评阅的文档,并制定一个评阅者checker01。然后点击“提交评阅”按钮;此时可以通过Designer查看此操作的代码。
e.切换到checker01用户,打开checker01用户的邮件数据库。收件箱中会有一封邮件,打开查看是刚才user01发送的评阅文档。邮件中标记红色五角星符号的为未读邮件。其中文档的“Send”方法,专门负责发送文档。
f.打开未读邮件,在邮件正文中会有文档链接。通过单击链接,可以打开“文档集数据库”中未评阅的文档。打开附件,阅读文档内容,并编辑文档输入评审意见,输入完成后,单击“评阅完成”按钮。会提示“user01此文档完成评阅的通知已发出”的字样。该步骤中所用的关键代码“AppendDocLink”是附加文档链接的意思。
g.切换到user01用户,打开user01的邮箱,会收到一封未读邮件,点击查看刚才评阅的文档及其评阅意见。
以上步骤就完成了一个文档的评审工作,如果评审人员不只是一个,可以增加评审人员。如果数据库的主要职责是为了收发邮件,则还需要在Domino目录中创建“函件收集数据库”文档。需要注意的是每个存储该数据库副本的服务器也都必须在Domino目录中包含此文档。只有包含了此文档,数据库才能正常收发邮件。
Lotus Domino软件是非常强大的,主要代理有ReadACL代理,OnSubmit代理,SearchProc代理,Claim代理,Remind代理,Suspend代理,TerminateProc代理,Reassign代理等等代理。ReadACL代理指的是在系统启动时,自动读入各人员的组织模型和操作权限。OnSubmit代理还可以创建一个自动答复代理,自动答复已收到的邮件。SearchProc代理可以自动搜索到流程中的执行文档。Claim代理是自动开展某项任务的执行以及同步任务的处理,可以通过选择“讨论数据库”功能,使用代理发送通知。Remind代理是应用在有时需要创建一个定时代理,定时通知每项任务的负责人,可以使用代理邮寄通知功能。Suspend代理是强制挂起一项任务。TerminateProc代理是强制终止一项任务。Reassign代理是为某项任务重新设置执行者。
用Lotus Domino群件设计实现工作流管理信息系统虽然比较容易上手,但是需要设置的内容还是很多的。一个工作流应用程序从开始的文档生成,到文档流传到不同负责人手中进行评审,再到不同执行者手中进行具体实施,每个阶段,相关人员负责与文档相关的特定任务。将很多信息文档、人员、职能有机的组织、协调管理是工作流主要解决的问题。工作流的应用使得用户能够方便快捷的获取自己所需的数据文档,为领导决策和工作人员日常工作提供了方便的服务。同时,需要注意的是工作流管理信息系统的应用对于办公人员的计算机水平有一定的要求,在应用之前需要进行必要的培训。
[1]Rose M Kelleher,Thomas A Jones.武坤等译.Lotus Domino/Notes R5 web高级编程(第1版)[M].北京:机械工业出版社,2000.
[2]范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.
[3]王少锋,王克宏.基于Java RMI技术的工作流管理系统的设计[J].计算机集成制造系统,2000.
[4]杨新伦,等.基于LotusNotes/Domino的办公自动化解决方案[J].广西工学院学报,2000,1.
[5]武坤,等.Lotus Domino/Notes R5y应用教程[M].北京:机械工业出版社,2000,5.
[6]Kyle Brown Notes与Domino5实用大全[M].中国水利水电出版社,2001.
[7]罗林.Notes编程疑难详解[J].人民邮电出版社,2000.