Histórico da Página
Índice | ||||||
---|---|---|---|---|---|---|
|
Eventos
Os eventos de um processo são um conjunto de scripts carregados pela API de workflow. Tais scripts são desenvolvidos com o uso da linguagem JavaScript e chamados ao longo da execução do processo em momentos predeterminados, como por exemplo a criação da solicitação do processo ou a entrada em uma nova atividade.
...
Para criar um novo evento do processo, clicar com o botão direito do mouse no projeto, acessar a opção New e, em seguida, a opção Other. No assistente aberto, selecionar a opção "Script evento workflow", presente na pasta fluig, e clicar no botão Next. Na nova tela, selecionar qual o evento que será criado e relacionar ele a um processo já existente. Para finalizar, clicar no botão Finish:
afterReleaseProcessVersion
Evento disparado após a criação ou modificação nas configurações de um determinado processo.
Nota | ||
---|---|---|
| ||
Caso o processo possua o evento "afterReleaseVersion" implementado, este evento global será desconsiderado na liberação de novas versões do processo em questão |
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterReleaseProcessVersion(processXML){ var pdv = getValue("ProcessDefinitionVersionDto"); var processInfo = "\n### Nova versão de processo liberada: ###"; processInfo += "\n User: " + getValue("WKUser"); processInfo += "\n processDescription: " + pdv.getProcessDescription(); processInfo += "\n processId: " + pdv.getProcessId(); processInfo += "\n version: " + pdv.getVersion(); log.info(processInfo + "\n"); } |
...
São disponibilizadas algumas propriedades referentes ao processo que esta sendo liberado, porém somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
WKCompany | Código da empresa | long |
WKUser | Usuário logado | String |
ProcessDefinitionVersion | Objeto com propriedades da versão do processo alterada | ProcessDefinitionVersionDto |
afterReleaseVersion
Ocorre após a liberação de uma versão do processo.
Parâmetro:
Descrição | Tipo |
---|---|
XML com a definição do processo | string |
...
beforeStateEntry
Ocorre antes da entrada em uma nova atividade.
Informações | ||
---|---|---|
| ||
Utilize este evento para realizar validações que ocasionalmente possam resultar no bloqueio da movimentação do processo. Para suspender a movimentação e exibir uma mensagem de alerta para o usuário, utilize o comando 'throw', conforme exemplo abaixo: throw "Erro ao movimentar solicitação"; |
Parâmetro:
Descrição | Tipo |
---|---|
Sequência da atividade | Integer |
beforeTaskCreate
Ocorre antes que o usuário receba uma tarefa.
Parâmetro:
Descrição | Tipo |
---|---|
Matrícula do usuário | string |
...
afterTaskCreate
Ocorre após o usuário receber uma tarefa.
Parâmetro:
Descrição | Tipo |
---|---|
Matrícula do usuário | string |
afterStateEntry
Ocorre após a entrada em uma nova atividade.
Nota |
---|
Este evento não retorna erros para a tela naturalmente. Caso ocorra um erro durante a execução do afterStateEntry, ele será ignorado. Se o mesmo erro resultar no encerramento da transação (por exemplo, causando o timeout de transação ou uma exceção que force Rollback) a mensagem de transação abortada será apresentada em tela ao invés do erro esperado. |
...
Parâmetro:
Descrição | Tipo |
---|---|
Sequência da atividade | Integer |
Exemplo (chamada do Dataset com varredura por colunas):
Bloco de código |
---|
var datasetReturned = DatasetFactory.getDataset("Formuláriodelocal6", null, null, null); log.info("===============COLUNAS======================="); log.info("===============NOME COLUNAS======================="); for (var j = 0; j < datasetReturned.rowsCount; j++) { try { log.info("******** COLUMN ---->" + datasetReturned.getColumnName(j)); } catch (e) { log.info("EEEEEEEEEEEEEEEEEE ->" + e); } } |
beforeSendData
É o último evento a ser executado. Possui integração com Analytics, podendo enviar dados específicos de processos Workflow.
Para maiores detalhes sobre a utilização desse evento, acesse Guia de Implementação Fluig Analytics.
validateAvailableStates
Ocorre após montada a lista de tarefas disponíveis para o usuário a partir da tarefa atual.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function validateAvailableStates(iCurrentState, stateList) { // Código: 1 - Descrição: Atividade inicial // Código: 2 - Descrição: Atividade ordem 3 // Código: 3 - Descrição: Atividade ordem 2 // Código: 4 - Descrição: Atividade ordem 1 // stateList atual: [2,3,4] var stateArray = new Array(); if (iCurrentState == 1) { stateList.clear(); stateArray.push(4,3,2); } stateArray.forEach(function(code) { stateList.add(new java.lang.Integer(code)); }); // stateList reordenado: [4,3,2] return stateList; } |
Parâmetro:
Tipo | Descrição | Tipo |
---|---|---|
iCurrentState | Sequência da atividade atual | Integer |
stateList | Lista das sequências dapublishWorkflowAttachments atividades | List<Integer> |
...
beforeTaskSave
Ocorre antes de salvar as informações selecionadas pelo usuário.
Parâmetros:
Descrição | Tipo |
---|---|
Usuário corrente | string |
Sequência da próxima atividade | Integer |
Lista de usuários destino | List<String> |
...
afterProcessCreate
Ocorre logo após a criação de um novo processo.
Parâmetro:
Descrição | Tipo |
---|---|
Número do novo processo | Integer |
...
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.
Nota | ||
---|---|---|
| ||
Diferente dos demais eventos do tipo before, este evento não dispara suas validações ao servidor, fazendo com que o sistema não pare a movimentação da atividade quando o mesmo lança uma exceção. |
...
Parâmetros:
Descrição | Tipo |
---|---|
Usuário corrente | string |
Seqüência da próxima atividade | Integer |
Lista de usuários destino | List<String> |
...
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.
Parâmetros:
Descrição | Tipo |
---|---|
Usuário corrente | string |
Seqüência da próxima atividade | Integer |
Lista de usuários destino | List<String> |
beforeStateLeave
Ocorre antes da saída de uma atividade.
Parâmetro:
Descrição | Tipo |
---|---|
Seqüência da atividade | Integer |
afterStateLeave
Ocorre após a saída de uma atividade.
Parâmetro:
Descrição | Tipo |
---|---|
Seqüência da atividade | Integer |
...
onNotify
Se refere a um evento global que ocorre após a movimentação da solicitação e antes de enviar as notificações.
Para mais detalhes consulte a página Desenvolvimento de eventos - On Notify.
checkComplementsPermission
Através dele é possível determinar se o usuário corrente do processo poderá ou não adicionar complementos mesmo com permissionamento ligado na modelagem do processo. Este evento possui acesso a todas as propriedades dos processos workflow (quando disponíveis) bem como acesso a hAPI, FLUIG e seus métodos.
...
Nota | ||
---|---|---|
| ||
|
...
subProcessCreated
Ocorre quando um sub-processo é criado.
Parâmetro:
Descrição | Tipo |
---|---|
Número do sub-processo | Integer |
afterProcessFinish
Ocorre após finalizada a solicitação.
Parâmetro:
Descrição | Tipo |
---|---|
Número do processo | Integer |
...
beforeCancelProcess
Ocorre antes do cancelamento da solicitação.
Parâmetros:
Descrição | Tipo |
---|---|
Usuário corrente | string |
Número do processo | Integer |
...
afterCancelProcess
Ocorre após o cancelamento da solicitação. É recomendado não disparar exceções neste método, pois o cancelamento já foi realizado.
Parâmetros:
Descrição | Tipo |
---|---|
Usuário corrente | string |
Número do processo | Integer |
Eventos nas etapas dos processos
Liberar nova versão do processo
Quando liberar uma nova versão do processo configurado, o evento executado será:
- afterReleaseVersion
Salvar nova solicitação
Quando iniciar uma solicitação pelo menu Processos, é evento executado será:
...
- beforeStateEntry
- beforeTaskCreate
- afterTaskCreate
- afterStateEntry
- beforeSendData
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
- afterProcessCreate
Criar nova solicitação
Quando iniciar uma solicitação pelo menu Processos, é evento executado será:
...
- beforeStateEntry
- beforeTaskCreate
- afterTaskCreate
- afterStateEntry
- beforeSendData
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
- beforeTaskComplete
- afterTaskComplete
- beforeStateLeave
- afterStateLeave
- afterProcessCreate
- onNotify
Visualizar solicitação
Quando acessar a Central de Tarefas, abrir uma solicitação já iniciada, os eventos executados serão:
- validateAvailableStates
- checkComplementsPermission
...
Salvar solicitação
Quando acionar o botão Salvar a solicitação, os eventos executados serão:
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
Movimentar solicitação
Quando movimentar a solicitação acionando o botão Enviar, os eventos executados serão:
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
- beforeTaskComplete
- afterTaskComplete
- beforeStateLeave
- afterStateLeave
- beforeStateEntry
- beforeTaskCreate
- afterTaskCreate
- afterStateEntry
- beforeSendData
- onNotify
Movimentar para subprocesso
Quando movimentar a solicitação para subprocesso acionando o botão Enviar, os eventos executados serão:
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
- beforeTaskComplete
- afterTaskComplete
- beforeStateLeave
- afterStateLeave
- beforeStateEntry
- subProcessCreated
- afterStateEntry
- BeforeSendData
- onNotify
Finalizar solicitação
Quando finalizar a solicitação acionando o botão Enviar, os eventos executados serão:
- validateAvailableStates
- beforeTaskSave
- afterTaskSave
- beforeTaskComplete
- afterTaskComplete
- beforeStateLeave
- afterStateLeave
- beforeStateEntry
- afterStateEntry
- afterProcessFinish
- beforeSendData
Cancelar solicitação
Quando usuário acessar solicitação já iniciada na Central de Tarefas para Cancelamento, o evento executado será:
...