2009-02-26 7 views
3

J'utilise l'API Java Lotus Notes 6.5.1 pour lire un fichier .nsf. Chaque document du fichier .nsf a plusieurs historiques de document. Lors de la traversée des documents du fichier .nsf à l'aide de l'API Java de Lotus Notes, toutes les versions du document apparaissent sous forme de documents distincts. Comment puis-je m'assurer que seule la dernière version de chaque document est récupérée par Lotus Notes? Existe-t-il un moyen d'identifier de façon unique un document et toute son histoire de version comme ses enfants?Utilisation de l'API Java pour lire les documents Lotus Notes

Répondre

3

Une fonctionnalité intégrée permet de gérer les documents dans Notes Domino. Selon la configuration de la base de données (et en supposant que le développeur de la base de données ne les a pas produites), les versions seront soit des réponses à un parent original, soit l'inverse, où les nouvelles versions deviennent les versions réponses

Tout ceci cependant consiste à configurer automatiquement une hiérarchie de réponses dans la base de données lorsque vous modifiez les documents. La façon dont le reste de la conception de la base de données interagit avec cette hiérarchie dépend du développeur.

Ce que vous voulez probablement faire est de créer une vue qui n'affiche que les documents en haut de la hiérarchie de réponse. Vous pouvez ensuite parcourir cette vue et savoir que les documents que vous obtenez sont les dernières versions. Par conséquent, si vous avez créé des documents avec un formulaire "Article", la formule de sélection de vue sera.

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

Ceci sélectionne tous les documents d'article qui ne sont pas des réponses. Maintenant, dans le code, vous pouvez simplement ouvrir la vue et la 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() 

Ce 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 identifiant 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.

Questions connexes