获取Lotus Domino文档的创建者和最后一个修饰符

时间:2012-10-26 04:13:18

标签: java lotus-notes lotus-domino lotus

我想获得Lotus Domino文档的创建者和最后一个修饰符。我怎么能这样做?

我找到了Authors property,它是Vector,但其顺序未在文档中定义。我可以依赖于第一个元素是创建者而最后一个元素是最后一个修饰符吗?

2 个答案:

答案 0 :(得分:5)

最安全的解决方案是在创建文档时设置为当前用户的设计上设置'计算合成时'类型字段,并设置另一个保存最后修饰符名称的字段(类似{{1在@SetField("LastUpdatedby";@UserName)事件中)。

在您的情况下,如果您只想从现有应用程序收集数据并且没有可以使用的手动添加字段,则需要考虑以下几个事实:

1。)QuerySave项和Authors属性相同:使用Lotusscript中的Authors属性将返回从$UpdatedBy项目收集的数组。

2。)$Updatedby项目无法操纵=从这方面来说,使用它是安全的

3。)假设你已经获得了整个历史*,你将在lotusscript

中为创建者提供类似$UpdatedBy@Subset($Updatedby;1)的公式

4。)通过使用Cstr(updatedbyarray(Lbound(updatedbyarray)))$Updatedby查看@Subset($Updatedby;-1)数组中的最后一个条目,您将始终获得最后一个修饰符。

5 *。)您的数据库可能存在Cstr(array(Ubound(array)))条目的限制,因为这些可能非常占用空间(数据库级别设置,最后一个选项卡,限制{{1}中的条目} fields)。一旦达到此限制,当有新的条目添加时,Notes将开始删除旧条目,并且查询数组的第一个成员将不再为您提供创建者。

6。)由于您可能无法在$Updatedby数组中找到创建者,因此应使用以下内容保护您的代码:

$UpdatedBy

如果安全,请继续使用$Updatedby项进行计算。 顺便说一句,使用我们的(Ytria)scanEZ产品,您将能够为数据库中的所有文档收集这些值,而无需任何编码。很少有简单的公式,并且您已准备好完整的报告导出到DXL或CSV。

答案 1 :(得分:3)

尝试直接使用$UpdatedBy字段。 (我认为Authors属性也使用它。)在这个字段中,所有更新器都按时间顺序存储:originator - first,last modified - last。

如果在数据库属性中设置“限制$UpdatedBy字段中的条目”,它可能会显示错误的数据:当它达到限制时,它会删除{{1}中的第一个条目},所以你无法了解文档创建者。