Timeout Senior Flow (Integrações externas)

Timeout Senior Flow (Integrações externas)

Sem categoria

Agora o Senior Flow permite que determinados endpoints aguardem mais de 30 segundos por uma resposta, o que amplia as possibilidades de integração e processamento em fluxos mais complexos.

Mas atenção, nem todos os endpoints são compativeis, verifique no link abaixo se o endpoint necessário já está disponível: https://dev.senior.com.br/api_publica/platform_bpm_timeout

Existem dois modos de execução, o modo simplicado que mentem a request por até 1 minuto e o modo avançado que consegue segurar até 5 minutos.

Modo simplicado (timeout ocorre com 1 minuto de execução)

Este modo oferece uma forma mais simples e direta de utilizar o recurso de timeout estendido, executando internamente os passos avançados de controle e pooling.

Para usá-lo, basta fazer uma requisição HTTP para o endpoint abaixo, com o payload estruturado da seguinte forma:
https://timeout.xplatform.com.br

{
“name”: “startProcess” // poder ser responsePendency, getFormAccessProperties, invoke…,
“payload”: {…} // parametros que seriam passado para o endpoint com timeout de 30 segundos
}

Print de um invoke do Plugin
Print de um invoke do Plugin

 

Modo Avançado (timeout dinâmico, espera até 5 minutos)

Este modo oferece um tempo de execução maior para as operações, porém requer uma implementação um pouco mais trabalhosa. Confira abaixo a lista de endpoints compatíveis com essa abordagem:

Para o exemplo será usado o endpoint:
https://platform.senior.com.br/t/senior.com.br/bridge/1.0/rest/platform/bpm_timeout/queries/invoke

{
  “id”:”ba7ee198-4a32-4774-b51c-e83d0d6a5447″,
  “inputData”:{
     “customHeaders”:””,
     “url”:”https://hoiocr6bsm5wt6mzy6jieezx5y0vlbyy.lambda-url.sa-east-1.on.aws/”,
     “method”:”POST”,
     “rootObject”:””
  },
  “ticketRequest”: “…” // Geração explicada no item abaixo.
}

1. Gerar um ticketRequest (UUID v4)

Para iniciar, é necessário gerar um UUID no formato v4. Esse identificador pode ser criado em qualquer linguagem de programação como Java, JavaScript, C#, Node.js, Python, entre outras.
Este UUID deverá ser enviado no campo ticketRequest do payload da chamada inicial.

2. Consultar a resposta com o getTicketResponse

Após a chamada inicial, independentemente do retorno ser sucesso ou timeout, será necessário consultar a resposta utilizando o endpoint getTicketResponse.
Esse endpoint retorna o resultado da solicitação com base no ticketRequest informado.

https:/platform.senior.com.br/t/senior.com.br/bridge/1.0/rest/platform/bpm_timeout/queries/getTicketResponse
{
“ticketRequest”:”a1b2c3d4-e5f6-7890-abcd-1234567890ef” // ticket gerado no passo 1.
}

Caso o conteúdo da resposta ainda não esteja disponível (retorno em branco), basta repetir a chamada até obter o dado esperado.

3. Retorno da chamada

O retorno será um JSON em formato de string o qual quem estiver utilizando deve efetuar o parse, como segue o exemplo abaixo:

{
“response”: “{\”accessPropertiesResponse\”:{\”performerURI\”:\”com.senior.wfe.EcmForm\”,\”performerData\”:\”{\\\”processId\\\”:\\\”1\\\”,\\\”entityName\\\”:\\\”multi_user\\\”,\\\”formVersion\\\”:\\\”1\\\”,\\\”processVersion\\\”:\\\”1\\\”,\\\”fieldsConfig\\\”:\\\”{}\\\”}\”,\”attachTabVisibility\”:true}}”
}

Exemplo de chamada ao Plugin

Exemplo de chamada para obter o retorno da chamada anterior via pooling

Leave A Comment