Domanda

Sto usando il Lotus Notes 6.5.1 API Java per leggere un file .nsf. Ogni documento nel file .nsf ha storia documenti multipli. Mentre attraversa attraverso i documenti nel file .nsf utilizzando l'API di Lotus Notes Java sto ottenendo tutte le versioni dei documenti come documenti separati.

Come faccio a garantire solo l'ultima versione di ogni documento viene recuperato da Lotus Notes? C'è un modo per identificare univocamente un documento e tutta la sua storia di versione come i suoi figli?

È stato utile?

Soluzione

V'è una costruito in funzione per il controllo delle versioni dei documenti in Notes Domino. A seconda how è configurato nella progettazione del database (e supponendo che lo sviluppatore database non ha rotolare il proprio) le versioni saranno essere o risposte a un genitore originale, o viceversa, in cui le nuove versioni diventano il genitore, con le versioni precedenti di essere risposte.

Tutto questo non fa però è quello di istituire una gerarchia di risposta nel database in modo automatico quando si modifica dei documenti. Come il resto della progettazione del database interagisce con questa gerarchia è allo sviluppatore.

Quello che probabilmente vuole fare è creare una vista che mostra solo i documenti in cima alla gerarchia di risposta. È quindi possibile attraversare questo punto di vista e sapere che i documenti si ottiene da esso sono le ultime versioni.

Quindi, se avete i documenti creati con una forma "articolo" la formula di vista della selezione sarebbe.

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

Questo seleziona tutti i documenti articolo che non sono risposte. Ora nel codice si può semplicemente aprire la vista e attraversarlo.

Una volta che hai una maniglia su un documento è possibile ottenere le sue risposte immediate bambino attraverso

doc.getResponses()

Questo restituisce un DocumentCollection che si può recurse giù trovare risposte alle risposte. Non è possibile ottenere direttamente un documento genitore. È necessario prima di ottenere il suo id con doc.getParentDocumentUNID() e quindi chiamare db.getDocumentByUNID(). Naturalmente è possibile combinare che:

db.getDocumentByUNID(doc.getParentDocumentUNID())

In ogni caso, si dovrà guardare a ciò che il database è effettivamente facendo, come è stato originariamente progettato e in sintonia con quello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top