2012-10-26 101 views
2

我想獲取創建者和Lotus Domino文檔的最後修改者。我怎麼能這樣做?獲取Lotus Domino文檔的創建者和最後修改者

我找到了Authors property,這是一個Vector,但它的排序沒有在文檔中定義。我可以依靠第一個元素是創造者而最後一個是最後一個修飾者嗎?

+0

是否只想檢查現有文檔或更改設計以跟蹤創建者/修飾者? – pstr

+0

@pstr:只需檢查現有文檔。我可以'修改數據庫(我只有只讀訪問權限)。 – palacsint

+0

您確定沒有字段值已經設置給文檔創建者嗎?我認爲如果創建它的人很重要,設計師會把它放在一個領域。 –

回答

3

嘗試直接使用$UpdatedBy字段。 (我認爲Authors屬性也使用它。)在此字段中,所有更新程序都按時間順序存儲:創建者 - 第一個,最後一個修改 - 最後一個。

它可以告訴你錯誤的數據,如果選擇「在$UpdatedBy領域限制的條目」設置在數據庫屬性:當達到限制其刪除$UpdatedBy第一個條目,所以你不能對文檔創建者被稱爲。

+0

我發現使用索引1給出了第一個字段:'$ updatedby [1]' –

5

最安全的解決方案是在創建文檔時爲當前用戶設置的設計中設置'合成時計算'類型字段,以及另一個包含最後修飾名稱(類似於@SetField("LastUpdatedby";@UserName)事件QuerySave)。

在你的情況,如果你只是想從現有的應用程序收集數據,並有你可以使用任何人工添加字段,都會有幾個事實需要考慮:

1)的$UpdatedBy item和Authors屬性相同:使用Lotusscript的Authors屬性將返回從$Updatedby項目收集的數組。

2)的$UpdatedBy項目不能被操縱=從這個方面它可以安全地使用它

3)假設你已經得到了整個歷史上有*,你會得到的創造者在LotusScript中

4)像@Subset($Updatedby;1)Cstr(updatedbyarray(Lbound(updatedbyarray)))公式,您將始終在尋找使用@Subset($Updatedby;-1)Cstr(array(Ubound(array)))$Updatedby數組中的最後一個項目獲取的最後修改。

5 *)有你的DB已制定了$Updatedby項的限制,因爲這些可以說是相當消耗空間(DB級別設置,最後一個選項卡,在$UpdatedBy領域限制的條目)的可能性。一旦你達到這個限制,Notes會在有新的條目被添加時開始刪除舊的條目,查詢數組的第一個成員將不會再給你創建者。

6)由於你不會找到$Updatedby數組中的創造者,你應該是這樣的保護您的代碼的可能性:

If Ubound(var)+1 <> db.LimitUpdatedBy Then 
    'You are safe 
Else 
    Msgbox "Ouch!" 
End If 

如果它是安全的,你繼續使用$Updatedby項目來做你的計算。 順便說一句,使用我們的(Ytria)scanEZ產品,您將能夠爲您的數據庫中的所有文檔收集這些值,而無需任何編碼。幾個簡單的公式,並且您已經準備好了一份完整的報告,可以導出爲DXL或CSV。

相關問題