Question

J'utilise Lotus Notes 6.5.1 API Java pour lire un fichier .nsf. Chaque document dans le fichier .nsf a plusieurs historique des documents. En traversant à travers les documents dans le fichier .nsf en utilisant l'API de Lotus Notes Java Je reçois toutes les versions de documents sous forme de documents séparés.

Comment puis-je assurer que la dernière version de chaque document est récupéré par Lotus Notes? Y at-il un moyen d'identifier un document et toute son histoire de version comme ses enfants?

Était-ce utile?

La solution

Il est construit en fonction des documents dans versioning Notes Domino. Selon Hows il est configuré dans la conception de base de données (et en supposant que le développeur de base de données ne roule pas leur propre) les versions seront soit des réponses à un parent d'origine, ou l'inverse, où les nouvelles versions deviennent les parents, avec les anciennes versions étant les réponses.

Tout cela ne fait cependant de mettre en place une hiérarchie de réponse dans la base de données pour vous automatiquement lorsque vous modifiez les documents. Comment le reste de la conception de base de données interagit avec cette hiérarchie est au développeur.

Qu'est-ce que vous voulez sans doute faire est de créer une vue qui affiche uniquement les documents en haut de la hiérarchie de réponse. Vous pouvez alors parcourir ce point de vue et savoir que les documents que vous obtenez de ce sont les dernières versions.

Donc, si vous avez des documents créés avec une forme « article » la formule de sélection de vue serait.

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

sélectionne tous les documents article qui ne sont pas des réponses. Maintenant, dans le code, vous pouvez simplement ouvrir la vue et le traverser.

Une fois que vous avez une poignée sur un document que vous pouvez obtenir ses réponses immédiates enfants par

doc.getResponses()

Ceci retourne une DocumentCollection que vous pouvez trouver des réponses récursif vers le bas à des réponses. Vous ne pouvez pas obtenir un document parent directement. Vous devez d'abord obtenir son id avec doc.getParentDocumentUNID() puis appelez db.getDocumentByUNID(). Bien sûr, vous pouvez combiner que:

db.getDocumentByUNID(doc.getParentDocumentUNID())

Dans tous les cas, vous devrez regarder ce que votre base de données est en train de faire, comment il a été conçu et adapter à cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top