Preciso do documetId de um documento que irá expirar, mas dentro do evento beforeSendNotification o getValue("WKDocument") não recebe o documento, vem como null. Tem alguma outra forma de conseguir?
function beforeSendNotification(notification){
try{
var doc = getValue("WKDocument");
log.info("--------------"+doc.getDocumentId()+"-----------------------------------------------------");
}catch(e){
log.error("---------ERROR-------"+ e);
}
}
Olá Marcos,
O evento beforeSendNotification é executado a cada envio de notificação, que pode ser do card Social, BPM, ECM, etc. Por isso, a variável WKDocument não está disponível.
Porém, você pode recuperar o código do documento dentro da variável "notification". Nessa variável você deve conseguir recuperar o código do template de e-mail - o que deve facilitar identificar quando a notificação é de expiração de documento - e todo conteúdo da notificação.
No seu evento, use o código abaixo para ver o conteúdo da variável "notification":
log.dir(notification);
Você não vai conseguir acessar diretamente o objeto metadata pois é um hashmap. Para acessar os dados de um hashmap, você precisa .get e o que você precisa recuperar. Nesse caso, ficaria:
notification.metadata.get("WDK_DocumentNumber");
Para testar, você pode usar:
log.info(notification.metadata.get("WDK_DocumentNumber"));
Abs,
Marcos
Obrigado, consegui ver o numero do Documento, porém não consigo pegar somente essa informação
log.dir(notification.metadata["WDK_DocumentNumber"]);
Esta retornando undefined
Marcos, atualizei a resposta com um exemplo de como acessar valores de um hashmap. Abs!
obrigado. Tem como receber o documento como objeto DocumentDto? Eu preciso dos usuários que podem modificar o documento que vai expirar, para isso eu pretendo utilizar o WKListSecurity.
link.
Por nada, Marcos! Para consultar a segurança de um documento você pode consultar o dataset documentSecurityConfig, passando o WDK_DocumentNumber como constraint no campo documentSecurityConfigPK.documentId.
Não é mais fácil fazer isso no onNotify? Você pode user receivers.add lá.
Obrigado pela ajuda e pelas dicas, deu certo.