我想获得创建者和Lotus domino文档的最后一个修饰符。我该怎么做?
我找到了Authors
属性,该属性是Vector
,但在文档中未定义其排序。我可以依靠第一个元素是创建者,最后一个是最后一个修饰符?
最安全的解决方案是在创建文档时设置为当前用户的设计时设置一个'计算的'计算'计算'修改器名称(在QuerySave
事件中类似于@SetField("LastUpdatedby";@UserName)
)。
在您的情况下,如果您只想从现有应用程序中收集数据,并且没有手动添加的字段可以使用,则需要考虑一些事实:
1。)$UpdatedBy
项目和作者属性相同:使用Lotusscript的作者属性将返回从$Updatedby
项目收集的数组。
2。)$UpdatedBy
项目不能被操纵=从这方面使用它是安全使用的
3。)假设您在那里拥有整个历史*,您会在Lotusscript中获得诸如@Subset($Updatedby;1)
或Cstr(updatedbyarray(Lbound(updatedbyarray)))
之类的公式的创建者
4。)您将始终使用@Subset($Updatedby;-1)
或Cstr(array(Ubound(array)))
查看$Updatedby
数组中的最后一个条目,从而获得最后的修饰符。
5*。)您的数据库可能对$Updatedby
条目有一个限制,因为这些条目可能是相当大的空间(DB级设置,最后一个选项卡,限制$UpdatedBy
字段中的条目)。一旦您击中此限制说明,当要添加一个新条目时,将开始删除旧条目,并且查询阵列的第一个成员将不再为您提供创建者。
6。)由于您可能在$Updatedby
数组中找不到创建者的可能性,因此应使用类似的内容保护您的代码:
If Ubound(var)+1 <> db.LimitUpdatedBy Then
'You are safe
Else
Msgbox "Ouch!"
End If
如果安全,您可以继续使用$Updatedby
项目来进行计算。顺便说一句,使用我们的(YTRIA)SCANEZ产品,您可以在数据库中的所有文档中收集这些值,而无需任何编码。很少有简单的公式,您已经准备好已准备出口到DXL或CSV。
尝试直接使用$UpdatedBy
字段。(我认为Authors
属性也使用它。)在此字段中,所有更新器都按时间顺序存储:发起者 - 首先,最后修改 - 最后。
如果选项"限制 $UpdatedBy
字段中的限制条目" 在数据库属性中设置了错误的数据:当它到达限制时,它会在 $UpdatedBy
中删除第一个条目,因此您无法成为关于文档创建者的了解。