Objetivo

Este documento tem como objetivo explicar o funcionamento da integração de compartilhamentos entre o Winthor e PDVSYNC.

Pré-Requisitos e Restrições

Rotas de serviços

Para integração de compartilhamentos necessário cadastrar as seguintes rotas e serviços na rotina 2650:


Dados:

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

1

Tipo de Processo

1-BUSCAR
ID Rota Serviço 
Código da rota de envio dos compartilhamentos ao PDVSYNC
{
    "idExterno": [
        "pdvsync-compartilhamento-9999-master"
    ],
    "_attr_access": "itens",
    "itens": [
        [ {
                "idRetaguarda": "{{MASTER_ID_RETAGUARDA}}",
                "idProprietario": "{{MASTER_ID_PROPRIETARIO}}",
                "nomeCompartilhamento": "Master 01",
                "nivel": 0,
                "idRetaguardaPai": "",
                "idRetaguardaLoja": "",
                "idInquilino": "{{ID_INQUILINO}}",
                "loteOrigem": "{{LOTE_ORIGEM}}"
            }]
    ]
}
[
  {
    "operation": "default",
    "spec": {
    	"default": "true"
    }
  }
]

Parametros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_PROPRIETARIO}}
STRING
{{MASTER_ID_RETAGUARDA}}
STRING
{{ID_INQUILINO}}
STRING


Dados: 

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

1

Tipo de Processo

3-PROCESSAR
{
	"name": " ",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_COMPARTILHAMENTO}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	}
}
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_RETAGUARDA_PAI}}
STRING
{{ID_INQUILINO}}
STRING
{{MASTER_ID_PROPRIETARIO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_COMPARTILHAMENTO}}https://pdvsync-core-controle-qa-aadivv24nq-ue.a.run.app/api/retaguarda/compartilhamentosSTRING


Dados: 

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresas na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

3

Tipo de Processo

3-BUSCAR
ID Rota Serviço 
Código da rota de envio dos compartilhamentos ao PDVSYNC
{
	"name": "WTA -Buscar filiais",
	"request": {
		"method": "GET",
		"header": [
			{
				"key": "Authorization",
				"value": "Bearer {{TOKEN}}"
			},
			{
				"key": "Accept",
				"value": "*/*"
			}
		],
		"url": {
			"raw": "{{URL_BASE}}/api/branch/v1/",
			"query": [
				{
					"key": "pageSize",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"key": "page",
					"value": "{{PAGE}}"
				},
				
				{
					"key": "lastChange",
					"value": "{{LAST_CHANGE}}"
				}
			]
		}
	},
	"response": []
}
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "idExterno": "=concat('pdvsync-compartilhamento-', @(1,id),'-', @(1,lastChange))"
        }
      }
    }
	},
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "id": {
            "99": { "@2": "ignore" },
            "*": { "@2": "items" }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno",
          "id": [
          "items[&1].[0].idRetaguarda",
          "items[&1].[0].idProprietario",
          "items[&1].[0].idRetaguardaLoja"
        ],
          "corporateName": "items[&1].[0].nomeCompartilhamento"
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "_attr_access": "items",
      "items[]": {
        "*[]": {
          "*": {
            "idInquilino": "{{ID_INQUILINO}}",
            "idRetaguardaPai": "{{MASTER_ID_RETAGUARDA_PAI}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",
            "situacao": 0,
            "nivel": 1
          }
        }
      }
    }
  }
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{LAST_CHANGE}}SELECT
    (CASE 
        WHEN (SELECT COUNT(1) FROM PCINTEGRACAOCORE  WHERE IDROTASERVICO = /*  ROTA DE BUSCA DE COMPARTILHAMENTO - MASTER */ AND STATUS != 1 AND ROWNUM >= 1) > 0
        THEN TO_CHAR(NVL((SELECT MAX(DATACRIACAO) FROM PCINTEGRACAOCORE WHERE IDROTASERVICO = :IDROTASERVICO AND STATUS != 1), TO_DATE('01/01/1900')) -1, 'RRRR-MM-DD"T"HH24:MI:SS')
        ELSE 
             TO_CHAR(SYSDATE, 'RRRR-MM-DD"T"HH24:MI:"00"')
    END) DT
FROM DUAL
STRING

Fluxo de execução compartilhamento master

ORDEM DE EXECUÇÃORECURSOMETODOROTA
1AutenticadorRefreshTokenApiexecutarRota de login winthor
2BuscaRotaServicoNaoPaginadaexecutarRota de busca de compartilhamento master cadastrada na primeira aba (Rota de busca)
3CriaVariavelTemporariaexecutarRota de cria variável temporária (LOTE DE ORIGEM)
4EnvioIntegracaoStatusRecebidoexecutarRota de envio de compartilhamentos cadastrada na segunda aba (Rota de envio)
5FinalizaVariavelTemporariaexecutarRota de encerrar variável temporária (LOTE DE ORIGEM)
6ConsultarStatusPosIntegracaoexecutarRota de encerrar variável temporária (PDVSYNC - Consultar lote de origem)


Fluxo de execução compartilhamento lojas: 

ORDEM DE EXECUÇÃORECURSOMETODOROTA
1AutenticadorRefreshTokenApiexecutarRota de login winthor
2BuscaRotaServicoPaginadaexecutarRota de compartilhamentos das lojas cadastrada na terceira aba (Rota de busca)
3CriaVariavelTemporariaexecutarRota de cria variável temporária (LOTE DE ORIGEM)
4EnvioIntegracaoStatusRecebidoexecutarRota de envio de compartilhamentos cadastrada na segunda aba (Rota de envio)
5FinalizaVariavelTemporariaexecutarRota de encerrar variável temporária (LOTE DE ORIGEM)
6ConsultarStatusPosIntegracaoexecutarRota de consultar lote de origem (PDVSYNC - Consultar lote de origem)