Histórico da Página
...
Evento | Descrição | Parâmetros | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
afterCancelProcess | Ocorre após o cancelamento da solicitação. |
| |||||||||||
afterProcessCreate | Ocorre logo após a criação de um novo processo.
|
| |||||||||||
afterProcessFinish | Ocorre após finalizada a solicitação. |
| |||||||||||
afterReleaseVersion | Ocorre após a liberação de uma versão do processo. |
| |||||||||||
afterStateEntry | Ocorre após a entrada em uma nova atividade. |
| |||||||||||
afterStateLeave | Ocorre após a saída de uma atividade. |
| |||||||||||
afterTaskComplete | Ocorre após o usuário completar uma tarefa, porém as informações de próxima tarefa e usuários destino já foram salvas. |
| |||||||||||
afterTaskCreate | Ocorre após o usuário receber uma tarefa. |
| |||||||||||
afterTaskSave | Ocorre após salvar as informações selecionadas pelo usuário. |
| |||||||||||
beforeCancelProcess | Ocorre antes do cancelamento da solicitação. |
| |||||||||||
beforeSendData | ------ | ---- | |||||||||||
beforeStateEntry | Ocorre antes da entrada em uma nova atividade. |
| |||||||||||
beforeStateLeave | Ocorre antes da saída de uma atividade. |
| |||||||||||
beforeTaskComplete | Ocorre antes que o usuário complete uma tarefa, porém as informações de próxima tarefa e usuários destino já foram salvas. |
| |||||||||||
beforeTaskCreate | Ocorre antes que o usuário receba uma tarefa. |
| |||||||||||
beforeTaskSave | Ocorre antes de salvar as informações selecionadas pelo usuário. |
| |||||||||||
calculateAgreement | Ocorre após o cálculo do consenso (somente para atividades conjuntas) e permite alterar os dados do consenso de uma atividade. Exemplo:
|
| |||||||||||
onNotify | Ocorre após a movimentação da solicitação e antes de enviar as notificações. | Para mais detalhes consulte o capítulo Customização de E-mail. | |||||||||||
setProcess | Ocorre quando um processo é "setado" na API.
|
| |||||||||||
subProcessCreated | Ocorre quando um sub-processo é criado. |
| |||||||||||
validateAvailableStates | Ocorre após montada a lista de tarefas disponíveis para o usuário a partir da tarefa atual. |
|
...
Parâmetros Workflow para Customização de Formulários
...
Para processos que possuem uma definição de formulário definida são passados alguns parâmetros com informações sobre o processo para serem utilizados nos eventos da definição de formulário, conforme abaixo:
Parâmetro | Descrição |
---|---|
WKDef | Código do processo |
WKVersDef | Versão do processo |
WKNumProces | Número da solicitação de processo |
WKNumState | Número da atividade |
WKCompany | Número da empresa |
WKUser | Código do usuário corrente |
WKUserPassword | Senha do usuário corrente em MD5 |
WKCompletTask | Se a tarefa foi completada (true/false) |
WKNextState | Número da próxima atividade (destino) |
WKCardId | Código do formulário do processo |
WKFormId | Código da definição de formulário do processo |
Nos scripts dos eventos da definição de formulário basta recuperar as informações com o comando getValue, conforme exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
var vCodProcess = getValue("WKDef"); |
Âncora | ||||
---|---|---|---|---|
|
Customização de E-mail
É possível incluir customizações de e-mail durante o andamento de um workflow. Existem duas modalidades de customização nessa categoria:
- Envio e alteração de e-mail padrão através do evento onNotify;
- Envio de e-mail customizado em qualquer evento do workflow.
Envio de E-mail Padrão
Para interferir no envio de um e-mail padrão, deve ser utilizado o evento onNotify, que é disparado no exato momento em que qualquer um dos e-mails de processo é enviado. Nesse evento, podem ser feitas alterações, como por exemplo adicionar outros destinatários ao e-mail (além daqueles que estão participando do processo), modificar os valores dos parâmetros utilizados no template de e-mail, etc.
Abaixo se encontra um exemplo de como implementar esse evento:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
function onNotify(subject, receivers, template, params) {
if (template.match("tpl028") != null) {
receivers.add("[email protected]");
}
} |
O evento onNotify está disponível na lista de eventos do processo. Portanto, ao selecionar esse evento na lista de eventos disponíveis, a assinatura da função acima já será preenchida automaticamente. Este evento disponibiliza os seguintes parâmetros:
Parâmetro | Descrição |
---|---|
subject | É o assunto do e-mail. A alteração desta variável irá implicar que todos os usuários recebam o e-mail com o novo assunto configurado, inclusive aqueles que participam do processo. Exemplo de utilização: subject.add("ASSUNTO"); |
receivers | Lista de e-mails destinatários. Também é possível adicionar outros e-mails, de usuários que não participam do processo. Inclusive, podem ser adicionados e-mails de usuários que não estão cadastrados no Fluig, caso seja necessário notificar uma pessoa que não tenho acesso ao sistema. |
template | Permite validar qual tipo de e-mail está sendo enviado (por exemplo, template de nova tarefa, notificação de gestor, etc). Com base nessa variável podemos distinguir quais e-mails queremos customizar. É recomendável que sempre seja verificado o código do template, para evitar que ocorram alterações em outros tipos de e-mail, que não necessitariam de customização. |
params | É um mapa de dados que permite alterar/incluir parâmetros para que sejam apresentados no e-mail. O nome dos parâmetros informados nesse mapa devem ser os mesmos que são utilizados dentro do arquivo de template. |
No exemplo que foi apresentado acima está sendo validado se o template é o TPL028 (que corresponde a Notificação do Gestor), em caso positivo, um novo e-mail será adicionado na lista de destinatários. Ou seja, além do gestor do processo, outra pessoa será notificada, recebendo uma cópia do e-mail que o gestor irá receber. Como está sendo validado o código do template, os demais tipos de e-mail não serão afetados.
Os templates podem ser consultados dentro do diretório do volume, em: <VOLUME>\templates\tplmail. Se for necessário adicionar algum parâmetro no e-mail padrão, os templates podem ser editados diretamente nesse diretório.
Envio de E-mail Customizado
Caso seja necessário incluir um novo tipo de e-mail, além daqueles que são disponibilizados pelo produto, o Fluig permite que o usuário cadastre templates de e-mails customizados, através da opção Templates de Emails presente na aba Gerais do Painel de Controle.
Para incluir um novo Template, basta acionar a opção Adicionar no menu e preencher os dados solicitados. Nesta etapa também deve ser feito upload do arquivo de template.
Para adicionar parâmetros dentro de um arquivo de template (TXT ou HTML), deve-se utilizar a seguinte notação:
Sem Formato |
---|
${NOME_DO_PARAMETRO} |
Neste caso, será utilizado o identificador "NOME_DO_PARAMETRO" durante a customização para atribuir um valor a este parâmetro. Os templates disponíveis no volume da empresa (<VOLUME>\templates\tplmail) podem ser consultados para mais exemplos de utilização de parâmetros.
Após cadastrar um novo template, é possível utilizá-lo para enviar e-mail a partir de qualquer um dos eventos do processo (exceto no onNotify – ver "Envio de E-mail Padrão"). Para efetuar um envio de e-mail, em base de um template customizado, é utilizado o objeto notifier, chamando a função "notify", conforme o código abaixo:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
try{
//Monta mapa com parâmetros do template
var parametros = new java.util.HashMap();
parametros.put("NOME_USUARIO", "JOAO");
parametros.put("CODIGO_USUARIO", "01");
//Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "ASSUNTO");
//Monta lista de destinatários
var destinatarios = new java.util.ArrayList();
destinatarios.add("CODIGO-DESTINATARIO");
//Envia e-mail
notifier.notify("MATRICULA-REMETENTE", "CODIGO-TEMPLATE", parametros, destinatarios, "text/html");
} catch(e){
log.info(e);
} |
Onde:
- O primeiro parâmetro que a função notify recebe é o código/matrícula do usuário que irá enviar o e-mail (remetente).
- O segundo parâmetro é o código do template que foi cadastrado no Fluig.
- O terceiro parâmetro é um mapa de dados (java.util.HashMap) que contém os parâmetros que serão utilizados para preencher as variáveis do template.
Por padrão, os parâmetros WDK_VirtualDir (diretório virtual) e WDK_AdviceUser (Nome do colaborador remetente) são adicionados ao mapa de parâmetros automaticamente e podem ser utilizados no template, sem que os valores sejam adicionados pela customização. - O quarto parâmetro representa a lista de usuários que irão receber o e-mail (java.util.ArrayList). Esta lista de usuários consiste em uma lista de códigos de usuários cadastrados no Fluig.
- O quinto e último parâmetro especifica qual será o formato do e-mail enviado. Os valores aceitos são "text/html" e "text/plain".
Outra forma de executar o método de envio de email é informando o número da ficha, conforme exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
notifier.notify("MATRICULA-REMETENTE", NUMERO DO FORMULARIO, "CODIGO-TEMPLATE", parametros, destinatarios, "text/html"); |
Nota |
---|
Atenção: Obrigatoriamente o valor informado deve ser um formulário. Outros tipos de documentos não serão tratados e ocorrerá erro na execução do evento. |
Ao executar este método, automaticamente os parâmetros abaixo serão adicionados na lista de parâmetros e podem ser utilizados no template:
Parâmetro | Descrição |
---|---|
WDK_CardContent | Conteúdo HTML do formulário (simula a visualização) |
WDK_DocumentAuthor | Nome do Autor |
WDK_DocumentComments | Comentário adicional |
WDK_DocumentDescription | Descrição do formulário |
WDK_DocumentIconImage | Imagem do ícone do formulário |
WDK_DocumentNumber | Número do formulário |
WDK_DocumentUpdatedDate | Data de atualização do formulário |
WDK_DocumentVersion | Versão do formulário |
WDK_DocumentViewLink | Link para acesso ao formulário |
...
Customização de E-mail
...