2009-02-26 9 views
3

Ich verwende die Lotus Notes 6.5.1-Java-API zum Lesen einer .nsf-Datei. Jedes Dokument in der .nsf-Datei hat mehrere Dokumenthistorien. Beim Durchlaufen der Dokumente in der .nsf-Datei mit der Lotus Notes-Java-API erhalte ich alle Dokumentversionen als separate Dokumente.Verwenden der Java-API zum Lesen von Lotus Notes-Dokumenten

Wie stelle ich sicher, dass nur die neueste Version jedes Dokuments von Lotus Notes abgerufen wird? Gibt es eine Möglichkeit, ein Dokument und seine gesamte Versionsgeschichte eindeutig als seine untergeordneten Elemente zu identifizieren?

Antwort

3

Es gibt eine integrierte Funktion für die Versionierung von Dokumenten in Notes Domino. Je nachdem, wie es im Datenbankentwurf konfiguriert ist (und davon ausgegangen wird, dass der Datenbankentwickler keine eigene Version erstellt hat), handelt es sich bei den Versionen entweder um Antworten auf ein ursprüngliches Parent oder umgekehrt um Versionen mit älteren Versionen Antworten.

All dies ist jedoch, eine Antworthierarchie in der Datenbank für Sie automatisch einzurichten, wenn Sie die Dokumente bearbeiten. Wie der Rest des Datenbankentwurfs mit dieser Hierarchie interagiert, bleibt dem Entwickler überlassen.

Wahrscheinlich möchten Sie eine Ansicht erstellen, in der nur Dokumente am Anfang der Antworthierarchie angezeigt werden. Sie können diese Ansicht dann durchlaufen und wissen, dass die Dokumente, die Sie daraus erhalten, die neuesten Versionen sind.

Wenn Sie also Dokumente mit einem Formular "Artikel" erstellt haben, wäre die Ansichtsauswahlformel.

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

Dies wählt alle Artikel Dokumente, die keine Antworten sind. Jetzt im Code können Sie einfach die Ansicht öffnen und durchqueren.

Sobald Sie einen Griff auf einem Dokument haben Sie seine unmittelbare Kind Antworten durch

doc.getResponses() 

Das gibt ein DocumentCollection erhalten können, die Sie rekursiv können Antworten auf Antworten zu finden. Sie können ein übergeordnetes Dokument nicht direkt abrufen. Sie müssen zuerst seine ID mit doc.getParentDocumentUNID() abrufen und dann db.getDocumentByUNID() anrufen. Natürlich können Sie kombinieren, dass:

db.getDocumentByUNID(doc.getParentDocumentUNID()) 

In jedem Fall werden Sie an, was Ihre Datenbank aussehen müssen, ist tatsächlich tun, wie es ursprünglich und damit passen entworfen wurde.

Verwandte Themen