Pergunta

Eu estou usando o Lotus Notes 6.5.1 Java API para ler um arquivo .nsf. Todo documento no arquivo .nsf tem história de múltiplos documentos. Enquanto atravessando através dos documentos do processo NSF usando a API do Lotus Notes Java eu ??estou recebendo todas as versões de documentos como documentos separados.

Como posso garantir que apenas a versão mais recente de cada documento é recuperado pelo Lotus Notes? Existe uma maneira para identificar exclusivamente um documento e todo o seu histórico de versões como seus filhos?

Foi útil?

Solução

Há um construído em função de controle de versão de documentos em Notes Domino. Dependendo hows está configurado no projeto de banco de dados (e assumindo que o desenvolvedor de banco de dados não rolar seus próprios) as versões será ou respostas a um pai original, ou o contrário, onde novas versões se tornar o pai, com versões mais antigas sendo respostas.

Tudo isso, porém, é a criação de uma hierarquia de resposta no banco de dados para você automaticamente quando você editar os documentos. Como o resto dos interage de design de banco de dados com essa hierarquia é até o desenvolvedor.

O que você provavelmente quer fazer é criar uma exibição que mostra somente documentos no topo da hierarquia de resposta. Você pode então atravessar essa visão e saber que os documentos que você começa a partir dele são as versões mais recentes.

Assim se você tiver documentos criados com um formulário de "artigo" a fórmula de seleção de vista seria.

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

Isso seleciona todos os documentos Artigo que não são respostas. Agora, no código que você pode simplesmente abrir a vista e atravessá-lo.

Uma vez que você tem uma alça sobre um documento que você pode obter suas respostas filho imediato através

doc.getResponses()

Este retorna um DocumentCollection que você pode recurse para baixo encontrar respostas a respostas. Você não pode obter um documento pai diretamente. Você primeiro precisa obter sua id com doc.getParentDocumentUNID() e depois chamar db.getDocumentByUNID(). Claro que você pode combinar isso:

db.getDocumentByUNID(doc.getParentDocumentUNID())

Em qualquer caso, você terá que olhar para o que seu banco de dados está realmente fazendo, como ele foi originalmente concebido e se encaixa com isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top