Essa validação é algo muito importante, para um usuário não sobescrever o que o outro acabou de fazer e também para evitar conflitos em geral.
Bom, vamos lá.
Após já ter um NotesXspDocument definido em Data da XPage ou Custom Control, vá em eventos da página, entre no nome definido em Data por você (por padrão, document1) e então no evento "postOpenDocument". Apenas insira um evento com o seguinte código:
viewScope.acessado = @Now();
Agora crie um validator (validateExpression) em apenas UM dos campos da página. Em expression insira o seguinte código:
if(!document1.isNewNote()){
var modificado:Date = document1.getDocument().getLastModified().toJavaDate();
var acessado:Date = viewScope.acessado;
return modificado.getTime() < acessado.getTime();
}
else{
return true;
}Agora vá em message do validator e selecione Compute value. Apenas insira o seguinte código (modificando a mensagem, caso queira):
var modificado:Date = document1.getDocument().getLastModified().toJavaDate(); return "O documentou foi modificado por outro usuário em " + modificado.toString() + ", atualize a página para evitar conflitos!";
Pronto! Agora, caso um usuário abra a página e enquanto ele edita um outro salvou, o validator irá validar isso e avisá-lo. Lembrando, é claro, que deve-se ter um Error Message vinculado ao campo ou um Error Messages na página.