Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Objetivo

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

Pré-Requisitos e Restrições

  • Necessário a instalação dos  serviçosdos serviços através da rotina 801 - Atualização de Serviços Web do WTA:
    • winthor-integracao-2650
    • winthor-integracao-config
    • winthor-filial

  • Rotas de lotes de origem configuradas (PDVSYNC - LOTE DE ORIGEM)

Rotas de serviços

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


Modelo 1 

Expandir
titleConfigurar
Totvs custom tabs box
ids
tabs Rota de busca das lojas, Rota de envio dados das lojas ao PDVSYNCLojas
Expandir
rota1,rota2Dados
titlePreencher a tabela PCINTEGRACAOROTASERVICO com os seguintes dados
Totvs custom tabs box items
defaultyes
referenciarota1
:
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 das lojas ao PDVSYNC
Expandir
titleInformar os layouts de comunicação com a API disponibilizada pela TOTVS
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"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": []
}
Expandir
titleInformar o layout de transformação dos dados para comunicação com o PDVSync
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "idExterno": "=concat('pdvsync-loja-', @(1,id),'-', @(1,lastChange))"
        }
      }
    }
	},
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "id": {
            "99": { "@2": "ignore" },
            "*": { "@2": "items" }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno",
          "id": ["items[&1].[0].numeroLoja","items[&1].[0].codigoIdentificacaoLoja","items[&1].[0].idRetaguarda"],
          "corporateName": [
            "items[&1].[0].razaoSocial",
            "items[&1].[0].rede"
          ],
          "aliasName": "items[&1].[0].nomeFantasia",
          "corporateIdentificationNumber": "items[&1].[0].cnpj",
          "stateRegistration": "items[&1].[0].inscricaoEstadual",
          "municipalRegistration": "items[&1].[0].inscricaoMunicipal",
          "address": "items[&1].[0].endereco",
          "addressNumber": "items[&1].[0].numero",
          "addressComplement": "items[&1].[0].complemento",
          "district": "items[&1].[0].bairro",
          "city": "items[&1].[0].cidade",
          "state": "items[&1].[0].estado",
          "federativeUnit": "items[&1].[0].siglaUf",
          "codStateIbge": "items[&1].[0].codigoUFIBGE",
          "codCityIbge": "items[&1].[0].codigoMunicipioIbge",
          "zipCode": "items[&1].[0].cep",
          "phoneNumber": "items[&1].[0].telefone",
          "optingSimplesNacional": {
            "false": { "#SimplesNacional": "items[&3].[0].regimeTributario" },
            "true": { "#RegimeNormal": "items[&3].[].regimeTributario" }
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "_attr_access": "items",
      "items[]": {
        "*[]": {
          "*": {
            "idInquilino": "{{ID_INQUILINO}}",
            "idProprietario": "{{MASTER_ID_PROPRIETARIO}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",
            "situacao": 1
          }
        }
      }
    }
  }
]
Parametros: 
rota2
Expandir
titleInformar na tabela PCINTEGRACAOVARIAVEIS os parâmetros

Preencher a tabela PCINTEGRACAOROTASERVICO com os seguintes dados :


CHAVEVALORTIPO DE CHAVEVALORTIPO DE VALOR
{{LAST_CHANGE}}SELECTSELECT 
    TO_CHAR(
        NVL((SELECT MAX(DATACRIACAO) FROM PCINTEGRACAOCORE WHERE IDROTASERVICO = :IDROTASERVICO AND STATUS=2), TO_DATE('01/01/1900')) -1,
        'RRRR-MM-DD"T"HH24:MI:SS'
    ) DT DT
FROM DUAL
SELECT
Totvs custom tabs box items
defaultno
referencia





Modelo 2

Expandir
titleConfigurar Rota de envio das lojas ao PDVSYNC

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
1-
PROCESSAR
BUSCAR
ID Rota Serviço 
Código da rota de envio das lojas ao PDVSYNC
Bloco de código
Bloco de código
language
language
js
themeEclipse
firstline1
titleLayout de comunicação
{
	"name": "Enviar LOJAS",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_LOJAS}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	}
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_PROPRIETARIO}}
STRING
{{ID_INQUILINO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_LOJAS}}https://pdvsync-core-dadosbasicos-dev-aadivv24nq-ue.a.run.app/api/retaguarda/lojasSTRING





Modelo 3 - O que estamos seguinte atualmente

Totvs custom tabs box
tabsRota de busca das lojas, Rota de envio das lojas ao PDVSYNC,Fluxo de execução
idsrota1,rota2,fluxo
Totvs custom tabs box items
defaultyes
referenciarota1

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 das lojas ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"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": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "idExterno": "=concat('pdvsync-loja-', @(1,id),'-', @(1,lastChange))"
        }
      }
    }
	},
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "id": {
            "99": { "@2": "ignore" },
            "*": { "@2": "items" }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno",
          "id": ["items[&1].[0].numeroLoja","items[&1].[0].codigoIdentificacaoLoja","items[&1].[0].idRetaguarda"],
          "corporateName": [
            "items[&1].[0].razaoSocial",
            "items[&1].[0].rede"
          ],
          "aliasName": "items[&1].[0].nomeFantasia",
          "corporateIdentificationNumber": "items[&1].[0].cnpj",
          "stateRegistration": "items[&1].[0].inscricaoEstadual",
          "municipalRegistration": "items[&1].[0].inscricaoMunicipal",
          "address": "items[&1].[0].endereco",
          "addressNumber": "items[&1].[0].numero",
          "addressComplement": "items[&1].[0].complemento",
          "district": "items[&1].[0].bairro",
          "city": "items[&1].[0].cidade",
          "state": "items[&1].[0].estado",
          "federativeUnit": "items[&1].[0].siglaUf",
          "codStateIbge": "items[&1].[0].codigoUFIBGE",
          "codCityIbge": "items[&1].[0].codigoMunicipioIbge",
          "zipCode": "items[&1].[0].cep",
          "phoneNumber": "items[&1].[0].telefone",
          "optingSimplesNacional": {
            "false": { "#SimplesNacional": "items[&3].[0].regimeTributario" },
            "true": { "#RegimeNormal": "items[&3].[].regimeTributario" }
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "_attr_access": "items",
      "items[]": {
        "*[]": {
          "*": {
            "idInquilino": "{{ID_INQUILINO}}",
            "idProprietario": "{{MASTER_ID_PROPRIETARIO}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",
            "situacao": 1
          }
        }
      }
    }
  }
]

Parametros: 

CHAVEVALORTIPO DE VALOR
{{LAST_CHANGE}}SELECT
    TO_CHAR(
        NVL((SELECT MAX(DATACRIACAO) FROM PCINTEGRACAOCORE WHERE IDROTASERVICO = :IDROTASERVICO AND STATUS=2), TO_DATE('01/01/1900')) -1,
        'RRRR-MM-DD"T"HH24:MI:SS'
    ) DT
FROM DUAL
SELECT
Totvs custom tabs box items
defaultno
referenciarota2


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
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"name": "Enviar LOJAS",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_LOJAS}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	}
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_PROPRIETARIO}}
STRING
{{ID_INQUILINO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_LOJAS}}https://pdvsync-core-dadosbasicos-dev-aadivv24nq-ue.a.run.app/api/retaguarda/lojasSTRING
Totvs custom tabs box items
defaultno
referenciafluxo
ORDEM DE EXECUÇÃORECURSOMETODOROTA
1AutenticadorRefreshTokenApiexecutarRota de login winthor
2BuscaRotaServicoPaginadaexecutarRota de busca cadastrada na primeira aba (Rota de busca)
3CriaVariavelTemporariaexecutarRota de cria variável temporária (LOTE DE ORIGEM)
4EnvioIntegracaoStatusRecebidoexecutarRota de envio cadastrada na segunda aba (Rota de envio)
5FinalizaVariavelTemporariaexecutarRota de encerrar variável temporária (LOTE DE ORIGEM)
6ConsultarStatusPosIntegracaoexecutarRota de consulta lote de origem (PDVSYNC - Consultar lote de origem)