| Produto: | TOTVS Varejo Franquias e Redes
|
|---|---|
| Linha de Produto: | PDV Sync |
| Segmento: | Varejo |
| Módulo: | Function Gerenciamento |
| Função: | |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : | |
| Versão: |
A função recebe dois tipos de entradas de dados, uma vinda do Worker RTS e outra vindo das funções de execução, em ambos os casos, os dados são recebidos através do PubSub.
Exemplo de contrato enviado pelo Worker RTS:
{
"IdFila": "ceaf5590-2a35-4826-a824-2484b1f2fc0a",
"IdTipoLote": 1,
"InquilinoId": 49,
"ConteudoDadoDinamico": "[{\"Descricao\":\"Descricao...\"}]",
"Etapas": [
{
"Tipo": 1,
"MapeamentoDadoEntrada": "[{\"Nome\": \"Descricao\", \"Tipo\": 1, \"Descricao\": \"Descrição da classificação.\", \"CamposEnum\": [], \"CamposObject\": [], \"RegrasValidacao\": [{\"Id\": 1, \"Regex\": null, \"ValorParametro\": null}]}]"
},
{
"Body": "body...",
"Tipo": 2,
"Headers": {
"a": "1",
"b": "2"
},
"MetodoHttp": 2,
"UrlServico": "https://localhost/api1",
"QueryParams": {
"a": "1",
"b": "2"
},
"Credenciais": {
"Tipo": 1,
"Username": "user",
"Password": "pass"
},
"TipoArmazenamento": 1,
"NomePropriedadeResposta": "campo1"
}
{
"Tipo": 3,
"Campos": ["fsdfsdf", "fsdfsd", "fsdfsd"],
"Operacao": 1
}
],
"Evento": {
"Body": "body...",
"Headers": {
"a": "1",
"b": "2"
},
"QueryParams": {
"a": "1",
"b": "2"
},
"UrlServicoDestino": "https://localhost",
"MetodoHttpServicoDestino": 1,
"AutenticacaoIdServicoDestino": 1,
"Credenciais": {
"Tipo": 2,
"Url": "https://pdvsyncintegracao.rac.dev.totvs.app/totvs.rac/connect/token",
"Username": "XXXX",
"Password": "XXXXX",
"ClientId": "XXXXXXXX",
"ClientSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"GrantType": "password"
}
}
}
Exemplo de contrato enviado pela função de execução:
{
"IndiceEtapaAtual": 1,
"MensagemErro": null,
"Workflow": {
"IdFila": "ceaf5590-2a35-4826-a824-2484b1f2fc0a",
"IdTipoLote": 1,
"InquilinoId": 49,
"ConteudoDadoDinamico": "[{\"Descricao\":\"descrição....\"}]",
"Etapas": [
{
"Tipo": 1,
"MapeamentoDadoEntrada": "[{\"Nome\": \"Descricao\", \"Tipo\": 1, \"Descricao\": \"Descrição da classificação.\", \"CamposEnum\": [], \"CamposObject\": [], \"RegrasValidacao\": [{\"Id\": 1, \"Regex\": null, \"ValorParametro\": null}]}]"
},
{
"Body": "body...",
"Tipo": 2,
"Headers": {
"a": "1",
"b": "2"
},
"MetodoHttp": 2,
"UrlServico": "https://localhost/api1",
"QueryParams": {
"a": "1",
"b": "2"
},
"Credenciais": {
"Tipo": 1,
"Username": "user",
"Password": "pass"
},
"TipoArmazenamento": 1,
"NomePropriedadeResposta": "campo1"
}
],
"Evento": {
"Body": "body...",
"Headers": {
"a": "1",
"b": "2"
},
"QueryParams": {
"a": "1",
"b": "2"
},
"UrlServicoDestino": "https://localhost",
"MetodoHttpServicoDestino": 1,
"AutenticacaoIdServicoDestino": 1,
"Credenciais": {
"Tipo": 2,
"Url": "https://pdvsyncintegracao.rac.dev.totvs.app/totvs.rac/connect/token",
"Username": "XXXX",
"Password": "XXXXX",
"ClientId": "XXXXXXXXXXXXXX",
"ClientSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"GrantType": "password"
}
}
}
}
As funções de execução recebem o mesmo contrato acima e dessa forma, o dado é trafegado entre as funções até que o Workflow seja concluído.
Ao concluir o Workflow, os dados são salvos no banco do MS Fila (via requisição HTTP) e uma mensagem é publicado no PubSub (tópico: dev-workflow-concluido) com o IdFila presente no contrato.