Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Versões comparadas

Chave

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

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

...

 

Customização de Processo

 

Com o uso de eventos, o ECM permite que um processo seja customizado possibilitando a execução de ações definidas pelo usuário, tais como:

...

Bloco de código
function afterProcessFinish(processId){
var func = { run: function(){
a();
}
};
var r = new java.lang.Runnable(func);
var t = new java.lang.Thread(r);
t.start();
log.info("Iniciei a thread");
return;
}
function a(){
try {
var atividade = getValue("WKNumState");
var user = getValue("WKUser");
var processo = getValue("WKNumProces");
log.info("########## Atividade: " + atividade);
log.info("########## inicio webservice workflow");
var workflow = ServiceManager.getService("WorkflowEngineService");
var serviceHelper = workflow.getBean();
var serviceLocator = serviceHelper.instantiate("com.datasul.technology.webdesk.workflow.ws.WorkflowEngineServiceServiceLocator");
var service = serviceLocator.getWorkflowEngineServicePort();
log.info("########## carregou serviço workflow");
log.info("########## Carrega Colaboradores do segundo processo");
var stringArray = service.getAvailableUsersStart("adm", "adm", 1, "process2", 0, 0);
var field1 = serviceHelper.instantiate("com.datasul.technology.webdesk.workflow.ws.KeyValueDto");
field1.setKey("nome");
field1.setValue("valorNome");
var field2 = serviceHelper.instantiate("com.datasul.technology.webdesk.workflow.ws.KeyValueDto");
field2.setKey("cid");
field2.setValue("valorCidade");
var resultArr = serviceHelper.instantiate("com.datasul.technology.webdesk.workflow.ws.KeyValueDtoArray");
resultArr.setItem(new Array(field1, field2));
log.info("########## Inicia StartProcess");
var userArray = serviceHelper.instantiate("net.java.dev.jaxb.array.StringArray");
userArray.setItem(new Array(user));
log.info("########## Usuario: " + userArray.getItem(0));
try {
var ret = service.startProcessClassic("adm", "adm", 1, "process2", 2, userArray , "webservice chamada", "adm", false, null,resultArr, null, true);
} catch(e) {
log.info("########## Erro startProcess: " + e);
}
} catch(x) {
log.info("########## Erro Process: " + x);
}
}

 

Tratamento de Excessões

 

As exceções podem ser tratadas nos seguintes eventos: beforeStateEntry, beforeTaskSave e beforeCancelProcess. O tratamento da exceção no evento beforeStateEntry pode ser utilizado somente na inicialização de solicitações, pois ele impede que a solicitação seja iniciada. O tratamento da exceção no evento beforeTaskSave pode ser utilizado somente se a solicitação já estiver inicializada. Abaixo segue os modelos para utilização em cada um dos eventos:

...

Bloco de código
function beforeTaskSave(colleagueId,nextSequenceId,userList){
if(getValue("WKUserComment")==null || getValue("WKUserComment")=="")
throw "A observação deve ser preenchida";
}
function beforeCancelProcess(colleagueId,processId){
if(getValue("WKUserComment")==null || getValue("WKUserComment")=="")
throw "A observação deve ser preenchida";
}

 

Mecanismo de Atribuição

 

Os mecanismos de atribuição são instrumentos utilizados durante um processo de workflow que permitem criar, segundo um critério estabelecido pelo próprio mecanismo, uma lista de possíveis colaboradores para uma atividade. Esta lista pode ser utilizada em dois momentos:
1. Na inicialização do processo, onde o sistema verifica se o usuário corrente faz parte desta lista e, portanto, pode iniciá-lo;
2. No momento do encaminhamento de uma tarefa, quando esta lista é apresentada ao usuário corrente com opções de encaminhamento da solicitação.
No primeiro caso, a lista é gerada de acordo com o mecanismo de atribuição existente na primeira atividade do processo (que representa a atividade de start). Nas demais atividades é adotado o segundo procedimento. Quando não houver um mecanismo de atribuição associado a uma atividade (seja ela inicial ou não), todos os usuários são considerados válidos.
Na inicialização do ECM são criados alguns mecanismos automaticamente, conforme abaixo:

...

Como Criar Um Mecanismo de Atribuição

 

O mecanismo de atribuição geralmente é composto de duas partes, a tela de configuração e o script de resolução do mecanismo de atribuição.

...

Parâmetros Workflow para Customização de Fichários

 

Para processos que possuem um fichário padrão definido são passados alguns parâmetros com informações sobre o processo para serem utilizados nas customizações do fichário, conforme abaixo:

...

var vCodProcess = getValue("WKDef");

 

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:

...