2009-02-26 28 views
3

Lotus Notes 6.5.1 Java APIを使用して.nsfファイルを読み取ります。 .nsfファイルのすべてのドキュメントには、複数のドキュメント履歴があります。 Lotus Notes Java APIを使用して.nsfファイル内のドキュメントをトラバースしながら、すべてのドキュメントバージョンを別々のドキュメントとして取得しています。Java APIを使用してLotus Notes文書を読み取る

各文書の最新バージョンのみがLotus Notesによって確実に取得されるようにするにはどうすればよいですか?ドキュメントとそのバージョン履歴をその子として一意に識別する方法はありますか?

答えて

3

Notes Dominoにバージョン管理文書の機能が組み込まれています。それはデータベース設計で設定された方法に応じて(データベース開発者が独自にロールアップしていなかったと仮定して)、バージョンは元の親への応答か、新しいバージョンが親になるもう一方の方法になります。反応。

しかし、これはすべて、文書を編集するときに自動的にデータベースに応答階層を設定することです。残りのデータベース設計がこの階層とどのように相互作用するかは、開発者次第です。

おそらく、応答階層の最上位にあるドキュメントのみを表示するビューを作成することです。そのビューをトラバースし、そこから取得したドキュメントが最新バージョンであることを知ることができます。

フォーム "Article"で作成されたドキュメントがある場合、ビュー選択式は次のようになります。

SELECT form*="Article" & [email protected]($ref) 

これは、応答ではないすべての記事文書を選択します。今すぐコードを開いて、ビューを開いてトラバースするだけです。

ドキュメントのハンドルを持っていたら、これはあなたが回答への応答を見つけるダウン再帰的にすることができますDocumentCollectionを返し

doc.getResponses() 

を通じてその直接の子の応答を取得することができます。親文書を直接取得することはできません。まず、doc.getParentDocumentUNID()でIDを取得してから、db.getDocumentByUNID()に電話する必要があります。

いずれの場合においても
db.getDocumentByUNID(doc.getParentDocumentUNID()) 

、あなたはそれが最初に設計された方法を使用しているデータベースは、実際に、何をしているかを見て、それに合う必要があります。もちろん、あなたがいることを組み合わせることができます。

関連する問題