Estou tentando pegar alguns parâmetros WDK para montar um e-mail personalizado, já sei como montar e ja montei um, mas agora tenho que montar um que pegue informações dos parâmetros WDK, vi que no tdn da Totvs te alguns WDk.
Boa tarde! Imagino que você tenha que fazer da seguinte forma: parametros.put("WDK_TaskNumber", parametros.get("WDK_TaskNumber"));
O primeiro parâmetro seria referente ao template de e-mail, e o segundo correspondente ao valor do parâmetro do Fluig…
Normalmente nos outros e-mail que fiz eu pego os valores assim:
var nome_gerente = hAPI.getCardValue(“SETOR”);
parametros.put(“DEPARTAMENTO_”, nome_gerente);
Então para pegar o valor do WDK tenho que fazer desse jeito que você mostrou? outra duvida no caso eu tenho que por em uma variável como faço normalmente ou só esse parâmetro que você mostrou?
Pode ser dessa forma mesmo, eu imagino… não necessariamente precisa por numa variável, somente replicar para garantir que todos os campos do template sejam preenchidos… e os campos que forem parâmetros da plataforma, você pegar do jeito do exemplo parametros.get("NOME_PARAMETRO") inserindo em um método .put().
function afterTaskComplete(colleagueId,nextSequenceId,userList){
if (nextSequenceId == 4) {
var idFluig = getValue("WKNumProces") + ''
var email_solicitante = "teste@outlook.com.br";
try{
var parametros = new java.util.HashMap();
parametros.put("WDK_TaskDeadLine", parametros.get("WDK_TaskDeadLine"));
//Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "Solicitação de compras (" + idFluig + ") / colaborador ");
var dest = new java.util.ArrayList();
dest.add(email_solicitante);
if (dest.size() > 0){
//Envia e-mail
notifier.notify("marcos.teste", "outroEmail", parametros, dest, "text/html");
}
} catch(e){
log.info(e);
}
function onNotify(subject, receivers, template, params) {
if (template.match("templateEmail") != null){
receivers.clear();
}
}
}
}
Deixei o WDK igual vc colocou deixou de exemplo, porém quando o e-mail chega não tem informação.
Na verdade, o parâmetro que vai retornar as informações do Fluig é o params do onNotify…
Pois a sua variável parâmetros está sendo inicialmente declarada como um novo Hashmap…
Você teria que fazer a tratativa dentro da função onNotify.
Ex: parametros.put("WDK_TaskNumber", params.get("WDK_TaskNumber"))
Desta forma os "parâmetros" correspondem ao seu template customizado, enquanto o "params" corresponde aos parâmetros do Fluig.
function afterTaskComplete(colleagueId,nextSequenceId,userList){
if (nextSequenceId == 4) {
var idFluig = getValue("WKNumProces") + ''
var email_solicitante = "teste@outlook.com.br";
try{
var parametros = new java.util.HashMap();
parametros.put("WDK_TaskDeadLine", params.get("WDK_TaskDeadLine"))
//Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "Solicitação de compras (" + idFluig + ") / colaborador ");
var dest = new java.util.ArrayList();
dest.add(email_solicitante);
if (dest.size() > 0){
//Envia e-mail
notifier.notify("marcos.teste", "outroEmail", parametros, dest, "text/html");
}
} catch(e){
log.info(e);
}
function onNotify(subject, receivers, template, params) {
if (template.match("templateEmail") != null){
receivers.clear();
}
}
}
}
Fiz como falou, porém agora não está chegando o e-mail.
O params é um parâmetro exclusivo do onNotify, como você está acessando antes de declarar a função está dando o erro… você deve montar DENTRO do onNotify:
Ex:
function onNotify(subject, receivers, template, params) {
if (template.match("templateEmail") != null){
receivers.clear();
parametros.put("subject", "Assunto de teste pegando parâmetro da plataforma - " + getValue("WKNumProces") + " - Grupo " +
params.get("WDK_TaskGroup"));
}
}
Pela documentação diz que se passar o número do registro do formulário o Fluig vai inserir automaticamente esses valores nos parâmetros passados ao e-mail.
var parametros = new java.util.HashMap();
parametros.put("subject", "Assunto");
parametros.put("NAME", "João");
parametros.put("CODE", "01");
var destinatarios = new java.util.ArrayList();
destinatarios .add("umemail@umprovedor.com");
notifier.notify(
"admin",
aqui vai número do registro do formulário,
"outroEmail",
parametros,
destinatarios ,
"text/html"
);
Assim no seu e-mail você terá acesso a todos esses WDK que quer utilizar.
<html>
<head>
<meta charset="utf-8">
<title>Fluig</title>
</head>
<body>
<h1>Exibe todo o conteúdo do formulário:</h1>
${WDK_CardContent!''}
</body>
</html>
Desse modo funcionou perfeitamente, o problema é que os templates que a própria totvs disponibilizou tem outros parâmetros WDK que não estão nessa lista da imagem, e são exatamente eles que não funcionam
Tentei desse modo que você colocou e também ficou vazio. Já tentei em vários eventos porém os únicos WDK que funcionam são os da imagem que colocou nas respostas anteriores.
function afterStateEntry(sequenceId){
if (sequenceId == 4) {
var idFluig = getValue("WKNumProces") + ''
var nome = getValue("WKDef")
var email_solicitante = "teste@outlook.com.br";
var linkSolicitacao = "https://teste.fluig.cloudtotvs.com.br/portal/p/1/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID="+idFluig;
var testar = getValue("WDK_TaskNumber")
try{
var parametros = new java.util.HashMap();
parametros.put("WDK_TaskNumber", getValue("WDK_TaskNumber"));
parametros.put("WDK_TaskLink", getValue("WDK_TaskLink"));
parametros.put("WDK_ProcessDescription", getValue("WDK_ProcessDescription"));
parametros.put("WDK_TaskDeadLine", getValue("WDK_TaskDeadLine"));
parametros.put("WDK_CardDescriptorField", getValue("WDK_CardDescriptorField"));
parametros.put("WDK_TaskComments", getValue("WDK_TaskComments"));
parametros.put("SERVER_URL", getValue("SERVER_URL"));
parametros.put("WDK_TaskIconImage", getValue("WDK_TaskIconImage"));
//Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "Solicitação Iniciar Processo ");
var dest = new java.util.ArrayList();
dest.add(email_solicitante);
if (dest.size() > 0){
//Envia e-mail
notifier.notify(getValue("WKUser"), 4304 , "teste", parametros, dest, "text/html");
}
} catch(e){
log.info(e);
}
function onNotify(subject, receivers, template, params) {
if (template.match("templateEmail") != null){
receivers.clear();
}
}
}
}
//Exemplos de parametros que devem estar no template de email
/*var parametros = new java.util.HashMap();
parametros.put("WDK_CompanyId", getValue("WKCompany"));
parametros.put("WDK_TaskLink", hAPI.getUserTaskLink(sequenceId));
notifier.notify(getValue("WKUser"), "", parametros, destinatarios, "text/html");*/
/*var destinatarios = new java.util.ArrayList();
//Envia para usuário cadastrado no fluig
destinatarios.add("matricula_usuario");
//Exemplos de parametros que devem estar no template de email
var parametros = new java.util.HashMap();
parametros.put("WDK_CompanyId", getValue("WKCompany"));
parametros.put("WDK_TaskLink", hAPI.getUserTaskLink(sequenceId));
notifier.notify(getValue("WKUser"), "aaa", parametros, destinatarios, "text/html");*/