林业科学  2007, Vol. 43 Issue (2): 84-88   PDF    
0

文章信息

赵辉, 周玉成, 程放, 安源, 张亚勇.
Zhao Hui, Zhou Yucheng, Cheng Fang, An Yuan, Zhang Yayong.
基于Domino工作流技术分析
Analysis of Workflow Based on Lotus Domino/Notes
林业科学, 2007, 43(2): 84-88.
Scientia Silvae Sinicae, 2007, 43(2): 84-88.

文章历史

收稿日期:2005-06-03

作者相关文章

赵辉
周玉成
程放
安源
张亚勇

基于Domino工作流技术分析
赵辉, 周玉成, 程放, 安源, 张亚勇     
中国林业科学研究院木材工业研究所 北京 100091
摘要: 在分析工作流的概念及参考模型的基础上,介绍基于Domino工作流的实现技术,详细介绍工作流实现的问题,并给出完整的代码。对工作流中的安全问题提出更高的要求,实现在工作流中不可再被编辑的功能,保证工作流的准确性,实现高度的安全性。
关键词:工作流    Domino    群件    办公自动化    
Analysis of Workflow Based on Lotus Domino/Notes
Zhao Hui, Zhou Yucheng, Cheng Fang, An Yuan, Zhang Yayong     
Research Institute of Wood Industry, CAF Beijing 100091
Abstract: Based on analysis of the concept of workflow and workflow reference model, this article not only introduced the implementation of workflow technology ground on Domino, particularly introduced the problem when design application, but also presented full code of application. For the more, the article put forward the higher standard about security, achieve the function of disabling editing document in workflow, ensure the veracity and security of workflow.
Key words: workflow    Domino    groupware    office automation(OA)    

工作流就是业务流程的计算机化或自动化。目前,许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动运行,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。工作流旨在改善业务流程的自动处理、跟踪及流程控制以实现协同工作。工作流把人员配置、工作流控制和工作流应用三者完全分离。用户可以根据工作需要对工作人员进行实时配置,同时控制工作流的流向,设置工作流属性,并根据人员配置情况分配流程中的人员属性,管理工作流之间的信息交换,根据用户的不同流程需要开发出相应的物流和文件流应用系统(安庆文,2004)。

1 工作流的概念及模型

工作流管理联盟(WFMC——一个致力于工作流管理标准化的国际性组织)给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行(David,1998)。WFMC还提出有关工作流管理系统的一些规范,定义工作流管理系统的结构及其应用、管理工具和其他工作流管理系统之间的应用编程接口,其主要目的是为了实现工作流技术的标准化和开放性,从而支持异构工作流管理系统与产品之间的互操作,并且使得其他的应用可以使用该结构和定义好的通用API(应用编程接口)访问不同的工作流管理系统提供的服务,实现与其他应用的快速有效集成。WFMC提出的工作流参考模型如图 1所示。

图 1 工作流参考模型 Fig. 1 Workflow reference model

WFMC给出了5类接口。接口1:工作流服务和工作流建模工具间接口,包括工作流模型的解释和读写访问;接口2:工作流服务和客户应用之间的接口,这是最主要的接口规范,它约定所有客户方应用和工作流服务之间的功能访问方式;接口3:工作流机和应用间的直接接口;接口4:工作流管理系统之间的互操作接口;接口5:工作流服务和工作流管理工具之间的接口。

Lotus Domino/Notes作为一个工作流管理系统,提供了一整套工作流管理方案。Domino Desiger充当工作流建模工具,用于建立工作流模型,其结果是一个工作流引擎能解释的过程定义。Domino服务器充当工作流执行服务器,Notes客户机充当工作流客户端应用程序,Domino Administrator充当工作流管理与监控工具。但是从标准化的角度分析,Lotus Domino/Notes对于工作流的支持还不够十分完善,接口1、接口2、接口5都是Lotus Domino/Notes独特的内部接口, 缺乏开放性;接口3也只使用简单函数(shell())或公式命令(exec[])来调用外部应用程序,而没有与被调用应用程序交互的标准协议,很难从一个较高的层次与外部程序交互。但在与其他工作流管理系统互操作方面,Lotus Domino/Notes已经支持了XML,这为与其他工作流管理系统互操作提供了途径(池炜成等,2001)。

Domino服务器、Notes客户机、Domino Designer和Domino Administrator组合成一个较为完整的工作流管理系统。Domino/Notes是面向新世纪的通讯基础设施,是群件的第一个产品,也是群件产品事实上的标准,集企业级通信、协作、工作流、Intranet和Internet Web应用功能于一体的软件平台。Domino内置的工作流引擎可以按照用户应用所定义的流程分发、传递和跟踪文档。Domino强大、灵活的工作流功能可以帮助企业实现企业内部、企业之间以及Internet上的协同工作,优化企业服务流程。Domino的消息服务、日历功能和开发工具可以帮助用户快速构建企业级的工作流应用。

Lotus Domino/Notes是以文档为中心、以邮件为联系纽带的工作流产品。它管理电子文档的生命周期,把文档库作为一种组织内共享的资源让组织成员访问;把文档甚至文档的一部分传递给个人,让他作为文档中指定的角色对文档信息进行阅读或更新操作。传递过程主要以邮件为传输纽带,用户可从邮件链接到文档中。该过程要求过程中独立活动的人按照一些过程规则对文档进行访问。Notes为实现文档型工作流提供了多种文档管理功能,主要有自动寻找路由传递文档以供批阅与发布、跟踪传递文档的状态、企业级与跨企业级的文档分发、文档存取可以有选择地控制、组织文档及链接文档、文档维护与归档、全文检索等。Notes根据工作流程的某种状态或数据库字段(域)的某种值,决定是否向某人发出信息(如催办通知、警示字句等)及是否更新文档或某个数据库。以客户服务为例,一个客户发来服务请求,Notes将请求表(以文档形式)存入数据库并自动向某个客户服务代表发出一封电子邮件;该代表在收到的电子邮件中单击文档链接即可调出客户的请求报告,进而决定处理方案。Notes将根据客户代表的处理情况自动安排下一步的行为,如果一定时间后,数据库中客户情况处理状态仍未置成“处理完毕”,Notes将自动向客户代表的上一级领导发出电子邮件,以告知此事。这个例子集中体现了Notes通过文档与邮件的结合以实现工作流的技术(池炜成等,2001)。

2 工作流的设计

根据工作流的特性,本文设计了一个包括文件起草、上级来文、下级来文、催办、复办、承办、归档、查询等功能的办公自动化系统。以日常事务管理子系统中的公文管理(包括文件起草和上下级来文)为例,设计工作流程如图 2所示。

图 2 公文管理工作流程 Fig. 2 Document management workflow

工作流程可以实现办公中正常流转的公文处理。以下是用一个工作流实例的执行过程来介绍一下工作流引擎的工作过程:1)用户通过客户端浏览器选择已定义好的工作流程并启动后,启动命令通过RMI调用工作流引擎的create And Start Process方法来生成一个新的工作流实例。该实例的信息以数据库形式保存,便于查询、监控。同时根据用户选择的流程,查询该流程的初始活动,生成活动实例存储在数据库中,并给活动的执行者生成工作项。2)每一项活动提交后,工作流引擎调用run Process导航工作流的执行,查询后续活动、判断活动开始条件、生成活动实例,形成用户工作项列表。3)工作流执行结束后,引擎调用complete Process结束整个流程。4)对于客户端应用,用户通过浏览器获取自己需要执行的活动后,单击“处理”按钮,由嵌入到Web页面上的Applet小程序调用引擎的change Activity Instance State方法改变相应活动的状态,同时给该活动加锁以避免出现多人同时处理一个活动的情况。当活动执行完毕后,单击浏览器界面上的“提交”按钮,同样由Applet小程序调用引擎的change Activity Instance State方法改变当前活动的状态,并进行相关数据的维护,然后由引擎根据活动定义继续推动流程进行(蔡馨庆等,2004)。

3 工作流的具体实现

以公文管理工作流中的拟办文稿为例,来说明工作流的具体实现。

在表单的上方(或者子表单中)设计如下域

拟办设置:handleset

提交拟办:sendhandle

撤回:recall1

完成拟办:finishhandle

它们的初始值都为0,总是隐藏。主要作用是控制拟办意见是否可编辑,在拟办意见中创建2个域,一个是可编辑的,用于输入拟办意见,且当FinishHandle=“1"|SendHandle=“0"|@UserName!=Person的值为真时,这个域是隐藏的;另外一个是计算域,用于显示拟办意见,且当FinishHandle=“0"的值为真时,这个域是隐藏的。创建4个操作(拟办设置、提交拟办、撤回、完成拟办),用于控制工作流的运行。

拟办设置操作主要实现的是从WorkFlowSetting1中获取经办人及办理时限,拟办设置操作的代码如下:

提交拟办操作实现的主要是给经办人发送邮件,提交拟办操作的代码如下:

撤回操作实现的主要是撤回批办,撤回操作的代码如下:

完成拟办操作实现的主要是拟办意见填写完成后,给起草人返回邮件,完成拟办操作的代码如下:

上面代码实现了整个拟办的工作流程,其他如核稿、审批、承办等都可以根据拟办的思路来进行设计。这样就可以建立起完整的工作流,这个工作流不仅具有完成公文管理的能力,而且具有相当高的安全性,再结合ACL、文档、区段及域级的权限控制安全性,其安全性可以满足任何企事业单位的需求。

4 结论

本文阐述了办公自动化子系统工作流的实现技术,详细给出办公自动化文档管理模块工作流的实现方法。办公自动化系统的应用将改善信息的收集、分析、处理以及交流方式等的速度,节省大量时间和资源,从而提高工作质量和效率,增强企业竞争力。Lotus Domino/Notes作为企业级的通讯基础设施和应用开发平台,可以满足企业高速成长的需求,提高对客户的反应速度以及商业处理过程的效率,更为企业协同工作以及进入电子商务时代做好了准备。

参考文献(References)
安庆文. 2004. 基于Notes开发环境的OAS工作流的设计与实现. 内蒙古大学学报:自然科学版, 35(3): 335-339.
蔡馨庆, 李燕, 张国煊. 2004. 一个基于Lotus Domino/Notes的工作流管理系统. 杭州电子工业学院学报, 24(3): 50-53. DOI:10.3969/j.issn.1001-9146.2004.03.014
池炜成, 伍小明. 2001. Lotus Domino/Notes的工作流技术剖析. 计算机应用研究, (12): 82-84. DOI:10.3969/j.issn.1001-3695.2001.12.028
David H. 1998. Workflow management coalition the workflow reference model. TC00-1003 Issue 1.1, http://www.wfmc.org