No exemplo acima informamos a sigla “SP” no atributo “id” para filtrar apenas o estado específico que vai retornar.
[{
“id”: “SC”,
“estado”: “São Paulo”
}]
Com isso, podemos usar o campo estado para alimentar algum campo do processo.
Para configurar um serviço acesse o menu principal do BPM em Configurações > Serviço externo
Para o serviço configura-se então o nome, o tipo GET/POST (consulte o fornecedor do serviço para saber o tipo) e a URL. O Tipo de Execução e Protocolo do Serviço são padrões conforme a imagem. O serviço deve ser https por questões de segurança.
Conforme na URL de exemplo mais acima, o id é um parâmetro de entrada. E a resposta do serviço (saída) retorna o próprio id e também o atributo estado, que possui o nome do estado.
Em relação aos parâmetros de entrada, quando o tipo da requisição for GET, são enviados com query param (Ex.: <url>?param1=<valor_1>&param_2=<valor_2>). Quando é uma requisição POST, os valores de entrada são enviados em um objeto JSON, sendo cada parâmetro um atributo do objeto (Ex.: { “param1”: <valor_1>, “param2”: <valor_2> }).
Em relação aos parâmetros de saída, é esperado um objeto JSON de retorno sendo cada um dos valores configurados um atributo do objeto (Ex.: { “retorno1”: <valor_1>, “retorno2”: <valor_2> }). Caso o objeto de retorno do serviço contenha valores não configurados como saída do serviço externo, esses valores serão ignorados. Se o retorno for um array JSON, o primeiro objeto deste array é extraído e os outros serão ignorados.
Em um serviço devem ser definidas entradas e saídas, podendo ter apenas entradas ou apenas saídas. Serviços com apenas entradas são comum em cenários em que realizam a persistência de dados. Quando possuem apenas saídas, são comuns em cenários que provêm informações sobre algum contexto, como dados sobre o usuário corrente.
Vamos à utilização do serviço em um processo.
No modelador de processos, clique sobre a engrenagem da ligação que você quer que execute o serviço externo:
No painel de propriedades (lado direito) da ligação, possui a guia Serviço Externo. Ao clicar em configurar, será exibido a tela de configuração abaixo:
O que tiver sido definido de entrada e saída no serviço, será apresentado nessa tela para conectar com o processo.
No exemplo acima, utilizaremos uma variável do processo chamada “sigla_uf” para alimentar o campo de entrada “id” do serviço.
E a resposta “estado” do serviço alimentará a variável do processo com o nome “nome_estado”. Dessa forma fechamos o ciclo de enviar parâmetros e receber a resposta no processo.
Os parâmetros de entrada podem ser de 3 tipos:
Variável de processo: variáveis definidas no formulário no na interface web;
Constante: valor fixo;
Variável de execução: Disponibiliza 4 informações. Instancia do processo, nome do processo, usuário solicitante e usuário responsável atual da tarefa.
Poderia haver um serviço similar, porém com os parâmetros de entrada id e estado, e sem parâmetros de saída. E ao invés do serviço retornar informações, o serviço gravaria os dados enviados em alguma base. Onde e como os dados são gravados são de responsabilidade do serviço.