Web service REST
Permite a chamada de um web service do tipo REST através de tarefas do Workflow.
As propriedades deste executor são organizadas pelos agrupadores:
Executor
Escolha o executor: "Web service REST".
Scripts...
Acesse a tela Editor de JavaScript.
Variáveis...
Acesse a tela Editor de Variáveis.
Modo de execução da tarefa
A tarefa pode ser executada de modo assíncrona ou síncrona e o serviço síncrono.
Em tarefas assíncronas é necessário o envio do tokenFlow para o web service externo, no qual será realizada a chamada. Isto ocorre, pois é imprescindível a chamada do web service do Workflow, SOAP ou REST, que dá a sequência a este processo. Dependendo do método, é possível adicionar este tokenFlow apenas em formato Placeholder na URL ou Body.
- Como o método Get ou Head não permite informar um conteúdo na requisição, é necessário adicionar à URL: http://localhost:8081/context?<nomedoparâmetro>=${tokenFlow};
- Quando o método for Post, Put ou Delete também é possível adicionar à URL:
{
"tokenFlow": "${tokenFlow};"
"chave": "valor";
}
Notas
No caso de ser uma tarefa realizada por usuário que esteja utilizando o sistema, este parâmetro é desabilitando e mantém com Assíncrona selecionada.
Utilize a função <task>.getToken(): String para obter o token.
URL
Informe a URL para requisição REST com:
- Protocolo HTTP ou HTTPS (obrigatório);
- Variáveis pelo padrão Placeholder;
- Inclusão de parâmetros do tipo query param e pathparams:
Exemplo:query param: http://servidor:<porta>/contexto/metodo?chave=valor&chave1=valo1
pathparams: http://servidor:<porta>/contexto/metodo/param1/param2
Método
Escolha um dos métodos disponíveis.
Responsável
Informe o responsável pelo tratamento da tarefa.
Parâmetros da URL
Adicione os parâmetros no formato query param às URLs.
Parâmetros do Header
Adicione os parâmetros no formato query param às URLs, considerando que a chave deve sugerir as definições estabelecidas para o Header.
Os parâmetros da URL e do Header não são obrigatórios possuem um único meio de inclusão, com as seguintes diretrizes:
- Parâmetros no formato chave/valor;
- Utilização de variáveis de Placeholder apenas no campo Valor;
- Sem restrição na quantidade de novos parâmetros inclusos;
- Exclusão do parâmetro selecionado;
- Alteração da ordem dos parâmetros (ordem utilizada para montar a URL).
Autenticação
Defina a forma de autenticação:
- "Basic Auth": informe Usuário e Senha;
- "No Auth": não possui configuração.
Determine o conteúdo, quando o método não for Get ou Head.
Timeout
Determine o timeout da chamada do web service REST, informando a quantidade em minutos, com no mínimo 0 e no máximo 35.791 minutos.
Quando a caixa de seleção Permitir capturar o erro (erro de negócio) não estiver assinalado e o timeout for atingido, o Workflow trata como um erro de ambiente. Ou seja não é considerado um erro gerado por validações de regras de negócio, ocorridos na execução de um processo devido a algum problema no seu modelo ou lançado por um End Event de erro.
As propriedades também podem ser definidas pelo performer através da utilização das funções JavaScript. Para adicionar estar propriedades, utilize o método getPerformer() e as funções:
Before:
- <performer>.addQueryParameter(name, value : String);
- <performer>.removeQueryParameter(name : String);
- <performer>.addHeaderParameter(name, value : String);
- <performer>.removeHeaderParameter(name : String).
After: context.getTask().getOutput(): Object
Quando o modo de execução da tarefa for síncrona, o script AfterExecute disponibiliza, no formato apenas de leitura, os seguintes parâmetros pré-definidos:
- getList("headers");
- getInt("statuscode");
- getString("body").
Quando o modo da tarefa for assíncrona os parâmetros citados acima são disponibilizados, porém sem conteúdo.
Retorno
Existem dois tipos de retorno que dependem da tarefa ser:
Síncrona
O retorno é o resultado da execução de um web service REST;
Assíncrona
O retorno é proveniente dos dados enviados como resposta de uma pendência. Este retorno não é do web service do tipo REST. Ou seja, para que o performer compreenda o retorno e o transforme no formato apenas de leitura, é necessário:
- Obter resposta no formato JSON;
- Atender os tipos DateTime, Date e Integer;
- Nos tipos de data, respeitar o padrão ISO-8601: (AAAA-MM-DD);
- Nó root: "response".
"response": {
"pessoa": {
"nome": "Maria";
"idade": 25,
"filhos": ["filho01", "filho02", "filho03"],
"endereço": {
"rua": "rua dos ladrilhos"
}
}
}

English
Español


