3

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

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

4

1 に答える 1

3

Notes Domino には、文書のバージョン管理機能が組み込まれています。データベース設計でどのように構成されているかに応じて (データベース開発者が自分でロールバックしていないと仮定すると)、バージョンは元の親への応答になるか、新しいバージョンが親になり、古いバージョンが反応。

ただし、これは、ドキュメントを編集するときにデータベースに応答階層を自動的に設定するだけです。データベース設計の残りの部分がこの階層とどのように相互作用するかは、開発者次第です。

おそらくやりたいことは、応答階層の最上位にあるドキュメントのみを表示するビューを作成することです。次に、そのビューをたどって、そこから取得したドキュメントが最新バージョンであることを確認できます。

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

SELECT form*="Article" & !@IsAvailable($ref)

これにより、応答ではないすべての Article ドキュメントが選択されます。コードでは、ビューを開いてトラバースするだけです。

ドキュメントのハンドルを取得したら、直接の子の応答を取得できます

doc.getResponses()

DocumentCollectionこれは、応答への応答を見つけて再帰できることを返します。親ドキュメントを直接取得することはできません。最初に で ID を取得してdoc.getParentDocumentUNID()から を呼び出す必要がありますdb.getDocumentByUNID()。もちろん、それを組み合わせることができます:

db.getDocumentByUNID(doc.getParentDocumentUNID())

いずれにせよ、データベースが実際に何を行っているか、最初にどのように設計され、それに適合するかを確認する必要があります。

于 2009-02-27T11:00:49.723 に答える