Á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
Bloco de código
2
language
3
js
4
linenumbers
5
6
7
8
9
true
function 
function 
afterReleaseProcessVersion(processXML){
    var pdv =

    var pdv = getValue("ProcessDefinitionVersionDto");
    var processInfo = 

    var processInfo = "\n### Nova versão de processo liberada: ###";
    processInfo

    processInfo +=
 
 "\n User: "
 
 + getValue("WKUser");
       processInfo
   
    processInfo +=
 
 "\n processDescription: "
 
 + pdv.getProcessDescription();
    processInfo

    processInfo +=
 
 "\n processId: "
 
 + pdv.getProcessId();
    processInfo

    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
numStatenúmero da atividade atualint


Exemplo de implementação

 

...

Bloco de código
languagejs
linenumberstrue
var beforeMovementOptions = function(numState){

...


    console.log("-beforeMovementOptions-");

...


    console.log("numState: "

...

 + numState);

...


    console.log("valor campo Email: "

...

 +document.formulario.email.value);

...


    if(document.cad01.nome.value ===

...

 'false'){

...

        return false;
    }

...


        return false;
    }
    if(document.cad01.nome.value !==

...

 ''){

...


        throw("Erro "

...

 + document.formulario.nome.value);

...

    }

    }
}

 

beforeSendValidate

Ocorre antes da solicitação ser movimentada, após já ter sido selecionada a atividade destino, o usuário e demais informações necessárias à solicitação.

...

Bloco de código
languagejs
linenumberstrue
var beforeSendValidate = function(numState,nextState){
    console.log("-beforeSendValidate-");
    console.log("numState: " + numState);
    console.log("nextState: " + nextState);  
    throw("Erro Xyz");
}

 

...

Bloco de código
languagejs
linenumberstrue
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;

...


    return isOk;
 }

 

afterReleaseVersion

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

...

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


Exemplo:

Bloco de código
languagejs
linenumberstrue
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;
}

...

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. 

Bloco de código
languagejs
linenumberstrue
function checkComplementsPermission() {
    var user = getValue("WKUser");
    var company = getValue("WKCompany");
    var group = "Auditoras";
    var Id = DatasetFactory.createConstraint('colleagueGroupPK.colleagueId',
            user, user, ConstraintType.MUST);
    var group = DatasetFactory.createConstraint('colleagueGroupPK.groupId',
            group, group, ConstraintType.MUST);
    var company = DatasetFactory.createConstraint('colleagueGroupPK.companyId',
            company, company, ConstraintType.MUST);
    var colleagueGroup = DatasetFactory.getDataset('colleagueGroup', null,
            new Array(Id, group, company), null);
    if (colleagueGroup != null && colleagueGroup.getRowsCount() == 1) {
        return true;
    } else {
        return false
    }
 
}

...