Pregunta

Estoy utilizando el API de Java Lotus Notes 6.5.1 para leer un archivo NSF. Todos los documentos en el archivo de la historia .nsf tiene múltiples documentos. Al atravesar a través de los documentos en el archivo NSF mediante la API de Lotus Notes de Java que estoy recibiendo todas las versiones de los documentos como documentos separados.

¿Cómo me aseguro sólo la última versión de cada documento es recuperado por Lotus Notes? ¿Hay una manera de identificar de forma exclusiva un documento y todo su historial de versiones como sus hijos?

¿Fue útil?

Solución

Hay una construida en función del control de versiones de documentos de Notes Domino. Dependiendo de los cómo está configurado en el diseño de bases de datos (y suponiendo que el desarrollador de base de datos no rodar su propia) las versiones serán o respuestas a un padre original, o al revés, donde las nuevas versiones se convierten en los padres, con ser versiones más antiguas respuestas.

Todo esto lo hace sin embargo, es la creación de una jerarquía de respuestas en la base de datos de forma automática cuando se edita los documentos. Como el resto de la base de datos de diseño interactúa con esta jerarquía es responsabilidad del desarrollador.

Lo que usted probablemente querrá hacer es crear una vista que sólo muestra los documentos en la parte superior de la jerarquía de respuestas. A continuación, puede atravesar ese punto de vista y saber que los documentos que recibe de ella son las últimas versiones.

Así que si usted tiene los documentos creados con un "artículo" forma la fórmula vista de selección sería.

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

Esto selecciona todos los documentos Artículo que no son respuestas. Ahora en código sólo tiene que abrir la vista y atravesarlo.

Una vez que tenga una manija en un documento que puede obtener sus respuestas secundarios inmediatos a través

doc.getResponses()

Esto devuelve una DocumentCollection que puede recursivamente hasta encontrar las respuestas a las respuestas. No se puede conseguir un documento de nivel superior directamente. Primero tiene que obtener su id con doc.getParentDocumentUNID() y luego llamar db.getDocumentByUNID(). Por supuesto que se pueden combinar:

db.getDocumentByUNID(doc.getParentDocumentUNID())

En cualquier caso, tendrá que mirar lo que su base de datos está haciendo realidad, la forma en que fue diseñado originalmente y encajar con eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top