Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Abaixo segue um exemplo de como implementar esse evento:

 

1
2
3
4
5
6
7
8
9
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");
}

 

...

var beforeSendValidate = function(numState,nextState){
    console.log("-beforeSendValidate-");
    console.log("numState: " + numState);
    console.log("nextState: " + nextState);  
    var isOk = confirm("Deseja realmente enviar o processo ?");
    return isOk;
 }

 

afterReleaseVersion

Ocorre após a liberação de uma versão do processo.

 

Parâmetro:

Descrição
Tipo
XML com a definição do processostring

 

beforeStateEntry

Ocorre antes da entrada em uma nova atividade.

Informações
titleDica

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 atividadeInteger

 

beforeTaskCreate

Ocorre antes que o usuário receba uma tarefa.

 

Parâmetro:

Descrição
Tipo
Matrícula do usuáriostring

 

afterTaskCreate

Ocorre após o usuário receber uma tarefa.

 

Parâmetro:

Descrição
Tipo
Matrícula do usuáriostring

 

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 atividadeInteger

 

beforeSendData

 

 

validateAvailableStates

Ocorre após montada a lista de tarefas disponíveis para o usuário a partir da tarefa atual.


Exemplo:

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
iCurrentStateSequência da atividade atualInteger
stateListLista das sequências dapublishWorkflowAttachments atividadesList<Integer>

 

beforeTaskSave

Ocorre antes de salvar as informações selecionadas pelo usuário.

 

Parâmetros:

Descrição
Tipo
Usuário correntestring
Sequência da próxima atividadeInteger
Lista de usuários destinoList<String>

 

afterProcessCreate

Ocorre logo após a criação de um novo processo.

 

Parâmetro:

Descrição
Tipo
Número do novo processoInteger

 

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
titleObservação

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 correntestring
Seqüência da próxima atividadeInteger
Lista de usuários destinoList<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 correntestring
Seqüência da próxima atividadeInteger
Lista de usuários destinoList<String>

 

beforeStateLeave

Ocorre antes da saída de uma atividade.

 

Parâmetro:

Descrição
Tipo
Seqüência da atividadeInteger

 

afterStateLeave

Ocorre após a saída de uma atividade.

 

Parâmetro:

Descrição
Tipo
Seqüência da atividadeInteger

 

setProcess

Ocorre quando um processo é "setado" na API.

Nota
titleObservação

A propriedade WKCompletTask não deve ser utilizada neste evento, pois quando ele é executado o produto ainda não tem a informação se atividade foi ou não completada.

 

Parâmetro:

Descrição
Tipo
Número do processoInteger

 

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. O Exemplo abaixo irá procurar o usuário corrente no dataset de colleagueGroups. Caso o usuário não esteja neste grupo não será possível para este usuário adicionar complementos extras.

 

subProcessCreated

Ocorre quando um sub-processo é criado.

 

Parâmetro:

Descrição
Tipo
Número do sub-processoInteger

 

afterProcessFinish

Ocorre após finalizada a solicitação.

 

Parâmetro:

Descrição
Tipo
Número do processoInteger

 

beforeCancelProcess

Ocorre antes do cancelamento da solicitação.

 

Parâmetros:

Descrição
Tipo
Usuário correntestring
Número do processoInteger

 

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 correntestring
Número do processoInteger

 

Eventos nas etapas dos processos

 

Liberar nova versão do processo

...

 

Nota
titleAtenção
  • Para o correto funcionamento deste método, o serviço do Real Time deve estar iniciado.
  • Se não levar um tempo considerável no processamento após a atribuição da mensagem, não é possível visualizar o carregamento e a mensagem.
  • Por padrão, todos os eventos executados são informados em tela, como por exemplo: "Executando validateForms", "Executando afterStateEntry" ou "Executando createDataset", mesmo se atribuída uma mensagem usando este método.

 

checkComplementsPermission

A partir do fluig 1.5.8, é possível configurar a adição de complementos extras para solicitações workflow. Também é possível definir um evento chamado checkComplementsPermission aonde é 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. O Exemplo abaixo irá procurar o usuário corrente no dataset de colleagueGroups. Caso o usuário não esteja neste grupo não será possível para este usuário adicionar complementos extras.

...