如何实现多人审批同一文档

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

(一)

首先,Lotus Notes作为一个文档型的数据库,并未提供记录(文档)的锁定。

因而作为一个面向群组的文档,如果不采取措施,将会发生文档的编辑和保存冲突,这

是显然的。Lotus 提供了复制技术和版本控制技术,但是,由于应用的复杂性,尚且不

能满足我们的要求。于是许多人都想用编程控制的方法实现这种控制。

在这里,我们主要讨论关于编程的方法,关于复制和版本控制另作讨论。

(二)

解决方法之一:加锁

加锁分为两种,一种是文档锁,一种是自锁。两种方式各有利弊。但是通常的方式是文档锁。

一、文档锁:

所谓文档锁就是对目标文档建立一个附属文档,利用附属文档对目标文档进行锁定。

具体描述如下:

附属文档通常和目标文档建立一对一的连接。

在附属文档中设立状态域,标识对目标文档拥有编辑权限(保存权限)的用户属性。

在目标文档被编辑并且保存时,把当前状态写入附属文档的状态域,从而为文档加了锁。如果有

其他用户试图保存时,首先检测附属文档,判断状态域,如果不符合保存条件,取消保存。从而

避免了冲突。

值得注意的是;加了锁定的文档,一定要在操作结束时解锁,也即复位附属文档的状态域。

二、自锁:

所谓自锁,就是在文档中设立状态域,在此文档第一次保存时修改此状态域的值,记录文档当前

拥有编辑保存的权限的用户信息。此后的用户打开文档时,首先判断状态域的值,若有人正在编

辑,则不进入编辑状态,从而避免了冲突。此种方式同样需要解锁。

三、两种方法的比较:

原理上是一致的。

但是我们知道当目标文档加锁后,解锁前,如果发生意外,如断电,死机等情况使得来不及解锁,

就关闭了文档。再次打开时,已经成了死文档,不能进行修改了(除非管理员)。采用第二种方

法,肯定会遇到此类问题。但是如果是第一种方法,适当设置权限,编制解锁程序,可以使用户

自己就能完成解锁,不必麻烦管理员。

(三)

解决方法之二:版本控制

所谓版本控制,就是当多人同时审批一篇文档时,分别保存各自的文档作为目标文档的答复。

即用不同的版本实现多人审批。

一、设计表单时,选择表单属性为版本控制。

二、编程实现灵活的版本控制。

请参见有关版本控制的讨论。

对文档的版本控制

(一) 什么是版本控制?

许多人对菜单里的选项[文件]-[另存为新版本]表示疑惑,这与命令

@Command([FileSaveNewversion])意义是相同的。那么到底是什么意思呢?我们先理解一下

版本控制。

Notes提供了一个设计绝妙的双向复制机制。在复制时不可避免的会发生多个人在同一个服务

器或不同服务器上编辑了同一个数据库或其复本的同一个文档。那么怎么处理这些不同人的

修改呢?当然在服务器看来,他们是具有同等地位的,去掉任何一个都是不合适的,于是,他

们的信息分别保存,于是就产生了同一文档的不同版本。

(二)

下面的部分摘自Notes 帮助数据库。

在表单中添加一个 $VersionOpt 域允许用户创建编辑文档的新版本。使用这个特殊

的域比使用表单的版本控制要灵活的多,因为后者将影响使用该表单创建的每一个文档。

1. 创建名为“$VersionOpt”的域并将它定义为计算的文本域或可编辑的关键字域,

不要选择“允许多值”或者“可使用不在列表中的值”选项。“显示时计算”和“创建

时计算”的域不能在这种条件下使用。

2. 对于一个关键字域,请选择“输入关键字(每行一个)”并编写每一个项目,使用关

键字和与之等效的同义词。例如,自动保存为答复文档 | 2。

3. 单击设计窗格,单击“公式”并编写公式。

4. 对于计算域,请添加公式,对于可编辑的域,请添加缺省值公式。

计算的文本域

在计算的 $VersionOpt 域中可以包含以下值:

值跟踪类型0不进行版本跟踪1当用户选择“文件”“另存为新版本”来保存文档时,新的

版本变为答复文档2保存时新的版本自动变为答复文档3当用户选择“文件”“另存为新版

本”来保存文档时,旧的版本变为答复文档4保存时旧的版本自动变为答复文档5当用户选

择“文件”“另存为新版本”来保存文档时,新的版本变为并列(同级)文档6保存时新的

版本自动变为并列(同级)文档

可编辑的关键字域

在可编辑的关键字域中,要使选项更容易被用户理解,请使用必要的值作为关键字同义词,并在同义词前面添加可读性较强的关键字名称,使用竖线 (|) 间隔关键字与同义词。例如:

不进行版本跟踪 | 0

在使用“文件”“另存为新版本”时创建答复文档 | 1

自动创建答复文档 | 2

在使用“文件”“另存为新版本”时升级为主文档 | 3

自动升级为主文档 | 4

在使用“文件”“另存为新版本”时创建新的主文档 | 5

自动创建新的主文档 | 6

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航