1

Notesデータベースからすべての競合ドキュメントを取得したい。これまでのところ、私はこれを持っています:

Domino.NotesSession notesSession;
Domino.NotesDatabase notesDatabase = this.OpenDatabase(out notesSession);

Domino.NotesDateTime dateTime = notesSession.CreateDateTime(String.Empty);

Domino.NotesDocumentCollection results =
    notesDatabase.Search(this.SearchString, dateTime, 0);

たとえば、次のように機能します。

searchString = "@Contains(ShortName;\"Bob\")";

競合ドキュメントと同等の方法を実行するにはどうすればよいですか?

4

2 に答える 2

5

これを試して:

searchString = "@IsAvailable($Conflict)";
于 2010-03-24T14:50:12.097 に答える
2

「$Conflict」と呼ばれる競合としてNotesドキュメントにフラグを立てるフィールドがドキュメントにあります。それがドキュメントに存在する場合、それは競合であることがわかります(Carlosが回避しているように)。

式を含むビューをデータベースに作成できます。

@isAvailable( "$ Conflict")を選択します

次に、ビュー内のすべてのドキュメントをループします。Javaでやっているようですので、こんな感じになると思います

import lotus.domino.*;
import java.util.*;
//.....
//.....
        Session s = NotesFactory.createSession();
        Database db = s.getDatabase("server", "filename");
        View vw = db.getView("viewname");
        Document doc = null;
        doc = vw.getFirstDocument();

        while (doc != null) {
            // do what you want in here.
            doc = vw.getNextDocument(doc);
            }

プロジェクトにDominojarが追加されていることを確認する必要があります。これは、DominoJava開発用のEclipseIDEをセットアップするための優れたリファレンスです。

PS。データベースの設計を変更して、レプリケーションの競合を最小限に抑えることもできます。しかし、私はここであなたを詳細に退屈させません。このスレッドに関する指示を知りたい場合は、コメントを投稿してください。

于 2010-03-26T05:27:27.527 に答える