Histórico da Página
...
- Conhecimento da linguagem JavascriptJavaScript;
- Conhecimento sobre a construção de fluxos de processo Workflow Fluig;
- Conceitos sobre utilização de Datasets Fluig;
- Entendimento sobre serviços da Web, WebservicesWeb services, SOAP e XML;
- Familiaridade com a ferramenta de desenvolvimento, TOTVS Developer Studio ou Eclipse;
- Instalação do Fluig Studio.
...
Para iniciar sua construção, deve-se, em um projeto existente, clicar na pasta mechanisms e acessar o menu Arquivo > Novo > Outros... (acessível pelas teclas de atalho CTRL+N, ou clicar com o botão direito do mouse sobre a pasta, e seguir pelo menu suspenso), expandir o grupo (pasta) Fluig, selecionar a opção Mecanismo Customizado Fluig e clicar no botão Avançar. Na tela seguinte, indicar o Código (obrigatório e não pode ser alterado depois) no campo respectivo e sua Descrição (opcional) igualmente, e, finalmente, clicar no botão Concluir.
Informações | ||
---|---|---|
| ||
O código para o mecanismo deve seguir a especificação de padronização conforme o documento Formulários Fluig. |
...
A função deve retornar uma listagem, do tipo ArrayList com as matrículas dos usuários. A matrícula não é necessariamente igual ao login deste usuário. A matrícula corresponde ao valor existente no campo de mesmo nome no cadastro deste usuário e à coluna colleaguePK.colleagueId do Dataset colleague.
Nota | ||
---|---|---|
| ||
Se ocorrer qualquer erro de sintaxe ou na execução do mecanismo, este será abortado e, consequentemente, não devolverá nenhum responsável para próxima tarefa/atividade do processo. É importante que toda a implementação passe por um tratamento de erros e proteção de execução. Uma boa prática é utilizar as cláusulas try catch. |
...
Informações | ||
---|---|---|
| ||
Nenhuma mensagem de erro pode ser emitida ao usuário durante sua execução, pois estes mecanismos podem ser invocados sem que haja a interação com o usuário, como por exemplo, as chamadas ao webservice ECMWorkflowEngineService por meio das integrações externas. |
...
Um exemplo de retorno de uma relação fixa de usuários é apresentado a seguir:
Bloco de código | ||
---|---|---|
| ||
function resolve(process,colleague){ var userList = new java.util.ArrayList(); userList.add('matricula_1'); userList.add('matricula_2'); userList.add('matricula_3'); return userList; } |
...
No exemplo acima, para que o(s) Grupo(s) seja(m) listado(s) é necessária a inclusão do prefixo "Pool:Group:" concatenado ao código deste Grupo. Com isto, ao selecionar o grupo a atividade é atribuida atribuída ao Grupo e uma pessoa deste deverá assumíassumi-la. Da mesma forma ocorre para o(s) Papel(éis) Workflow, porém o prefixo deve ser "Pool:Role:" mais o código do Papel.
...
A construção de um mecanismo ainda possibilita a utilização de um Serviço de Integração Fluig, que poderá consumir um webservice do tipo SOAP ou do tipo Progress para obter os responsáveis, de acordo com uma regra de negócio provida pelo ERP, por exemplo. Este método pode seguir o modelo abaixo:
Bloco de código | ||
---|---|---|
| ||
function resolve(process,colleague){ var userList = new java.util.ArrayList(); //-- CHAMADA A UM SERVICO DE INTEGRACAO FLUIG, COM UM WEBSERVICE ESPECIFICADO var biblioteca = ServiceManager.getService('ECMColleagueService').getBean(); var endpoint = biblioteca.instantiate('com.totvs.technology.ecm.foundation.ws.ECMColleagueServiceServiceLocator'); var webservice = endpoint.getColleagueServicePort(); var usuariosDtoArray = webservice.getSummaryColleagues(1); for each(usuario in usuariosDtoArray.getItem()){ userList.add( usuario.getColleagueId().toString() ); } return userList; } |
...
WorkflowProcess | |
---|---|
Parâmetro | Tipo |
workflowProcessPK
| WorkflowProcessPK |
processId | String |
version | Integer |
requesterId | String |
active | Boolean |
attachmentSeqId | Integer |
sourceProcess | Integer |
sourceThreadSequence | Integer |
UUID | String |
...
Colleague | |
---|---|
Parâmetro | Tipo |
colleaguePK
| ColleaguePK |
userTenantId | long |
colleagueName | String |
String | |
login | String |
passwd | String |
active | Boolean |
adminUser | Boolean |
groupId | String |
...