質問

私は.NSFファイルを読むためのLotus Notes 6.5.1のJava APIを使用しています。 .NSFファイル内のすべての文書が複数の文書の歴史を持っています。ロータスノーツのJava APIを使用して.NSFファイルに書類を横断しながら、私は別の文書として、すべてのドキュメントのバージョンを取得しています。

どのように私は、Lotus Notesによって取得された各文書の最新バージョンのみを確保するのですか?独自にその子として文書とそのすべてのバージョン履歴を確認する方法はありますか?

役に立ちましたか?

解決

ノーツドミノで文書をバージョン管理のための機能であり構築されています。それは、データベースの設計に設定されていますノウハウに依存する(およびデータベース開発者が自分をロールバックしていないと仮定した場合)のバージョンが古いバージョンがあることで、新しいバージョンが親になり、元の親、あるいは他の方法でラウンド、への応答のどちらかになりますレスポンスます。

このすべては、しかし、あなたがドキュメントを編集するときに自動的にデータベース内に応答階層を設定することではありません。データベース設計の残りの部分は、この階層と対話する方法を開発者に任されています。

あなたはおそらくやりたいことだけ応答階層の最上位に文書を表示するビューを作成することです。あなたは、そのビューを横断し、あなたがそれから得る文書が最新バージョンであることを知ることができます。

フォーム「条」で作成した文書を持っているので、もしビュー選択式は次のようになります。

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

このは回答できません、すべての記事の文書を選択します。今のコードでは、単にビューを開くと、それを通過することができます。

あなたは、ドキュメントのハンドルを持っていたら、

は、

を通じて、その直接の子の応答を取得することができます
doc.getResponses()

これは、あなたが回答への応答を見つけるダウン再帰的にすることができますDocumentCollectionを返します。あなたは直接の親文書を取得することはできません。最初doc.getParentDocumentUNID()でそのIDを取得し、db.getDocumentByUNID()を呼び出す必要があります。もちろん、あなたがそれを組み合わせることができます:

db.getDocumentByUNID(doc.getParentDocumentUNID())

いずれにせよ、あなたはそれが最初に設計された方法を使用しているデータベースは、実際に、何をしているかを見て、それに合う必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top