2

Lotus Domino ドキュメントの作成者と最終変更者を取得したいと考えています。どうすればこれを行うことができますか?

Authorsプロパティを見つけましたがVector、その順序はドキュメントで定義されていません。最初の要素がクリエーターであり、最後の要素が最後の修飾子であると信頼できますか?

4

2 に答える 2

5

最も安全な解決策は、ドキュメントの作成時に現在のユーザーに設定されるデザインに「作成時に計算」タイプのフィールドを設定し、最後の修飾子名(イベント@SetField("LastUpdatedby";@UserName)のようなもの)を保持する別のフィールドを設定することです。QuerySave

あなたの場合、既存のアプリケーションからデータを収集したいだけで、手動で追加できるフィールドがない場合は、考慮すべきいくつかの事実があります。

1.)$UpdatedByアイテムとAuthorsプロパティは同じです。LotusscriptのAuthorsプロパティを使用すると、$Updatedbyアイテムから収集された配列が返されます。

2.)$UpdatedByアイテムを操作することはできません=この観点からは安全に使用できます

@Subset($Updatedby;1)3.)そこにすべての履歴があると仮定すると*、またはCstr(updatedbyarray(Lbound(updatedbyarray)))ロータススクリプトのような式で作成者を取得します

4.)または$Updatedbyを使用して配列の最後のエントリを確認することにより、常に最後の修飾子を取得します。@Subset($Updatedby;-1)Cstr(array(Ubound(array)))

5 *。)エントリのスペースをかなり消費する可能性があるため、DBにエントリの制限がある可能性があります(DBレベルの設定、最後のタブ、フィールドの$Updatedbyエントリの制限)。$UpdatedByこの制限に達すると、追加する新しいエントリがあるときに、Notesは古いエントリの削除を開始し、配列の最初のメンバーをクエリしても、作成者は表示されなくなります。

6.)配列内に作成者が見つからない可能性がある$Updatedbyため、次のようなコードでコードを保護する必要があります。

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

安全な場合は、先に進み、$Updatedbyアイテムを使用して計算を行います。ちなみに、(Ytria)scanEZ製品を使用すると、コーディングなしでデータベース内のすべてのドキュメントのこれらの値を収集できます。簡単な数式はほとんどなく、DXLまたはCSVにエクスポートする準備ができた完全なレポートがあります。

于 2012-11-01T21:35:06.760 に答える
3

$UpdatedByフィールドを直接使用してみてください。(プロパティもそれを使用していると思いAuthorsます。) このフィールドでは、すべてのアップデーターが時系列順に格納されます: 作成者 -- 最初、最後に変更された -- 最後。

データベースのプロパティで「フィールドのエントリを制限する」$UpdatedByオプションが設定されている場合、間違ったデータが表示される可能性があります。制限に達すると、 の最初のエントリが削除$UpdatedByされるため、ドキュメントの作成者を知ることができません。

于 2012-10-26T09:14:47.323 に答える