Árvore de páginas

Versões comparadas

Chave

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


Introdução


Sistemas Envolvidos

  • TPR: TOTVS Planejamento de Rotas.
  • Sistema Externo: Todos os ERPs que se conectam ou pretendem se conectar com os produtos de planejamento logístico TOTVS.

Integração

  • Formato JSON, para maiores detalhes consulte os Exemplos.

Escopo

  • Integração assíncrona de geolocalização, compostas pela chamada e pelos callbacks, nestas, receberemos uma lista endereços e, quando possível, retornaremos em pacotes de 100 linhas a latitude e a longitude para serem armazenadas no sistema externo;

...

  • Por que assíncrona?
    • Por exemplo: O Google limita em 20 mil chamadas por minuto, o que em chamadas maiores pode gerar uma espera de alguns minutos;
    • Alguns provedores externos limitam as chamadas em determinados período de tempo;
    • De forma assíncrona poderemos balancear as chamadas entre os clientes, e não deixar alguém que quer geolocalizar 10 linhas esperando em uma fila de 100 mil, por exemplo;

Pré-requisitos instalação/implantação/utilização

  • Para clientes Protheus versão xxxxxx;
  • Para clientes Datasul versão xxxxxx;
  • Para clientes externos contratação do trial via TOTVS Store;

Layout de Requisição

TPRReverseGeolocation: Integração rest, Assíncrona com a TPRReverseGeolocation

Path: https://planejamentorotasqa.totvs.com/v1/tpr-geolocation/reverse-geocodification Método: POST

Header obrigatório: Chave = "TPR_AUTHORIZATION" e Valor = Chave gerada na integração de Criação de usuário

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

dateCall

Date Time

Sim


Data da criação da chamada no sistema externo.

Formato ISO8601

2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD

system

String

Não

4096

Identificador do sistema que fez a chamada.

Texto Livre

Protheus

version

String

Não

4096

Versão do sistema externo.

Texto Livre

12.36.1

qualifiers

String

Não

4096

String representando um objeto JSON que tenha o nome da variável e valor sendo String.

Formato JSON.

"{ \"Usuario\": \"Pedro\", \"Perfil\": \"Analista\" }"


OBS: É equivalente usar JSON.stringify({"Usuario":"Pedro", "Perfil":"Analista"})

callbackURL

String

Sim

4096

URL de Call Back.

Inicio com "https://" quando o tipo de autenticação for diferente de NONE


callbackAuthenticationType

String

Sim

4096

Tipos de autenticação: BASIC ou NONE.

Texto Livre


callbackAuthenticationValue

String

Não

4096

Texto de acordo com formato indicado.

Texto Livre

QWxhZGRpbjpvcGVuIHNlc2FtZQ==

latLongs

TPRLatLong[]

Sim


Lista de latLongs (latitude e longitude) a serem geolocalizados reversamente.

Latitude: Intervalo [-90; 90]

Longitude: Intervalo [-180; 180]

Latitude:  -22.7557422

Longitude: -47.4147585

TPRLatLong, tipo de dado utilizado nas integrações do TPR

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

identifier

String

Sim

4096

Identificador único do endereço.

Texto livre

CLI-4693

latitudeDoubleSim
Latitude Intervalo [-90; 90]-22.7557422
longitudeDoubleSim
LongitudeIntervalo [-180; 180]-47.4147585

Layout de Resposta

TPRReverseGeolocationResponse: Integração rest, sincrona

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

dateCall

Date Time

Sim


Data do envio da resposta no TPR.

-

2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD

version

String

Sim

4096

Versão do TPR que executou a resposta.

-

0.0.0.1

success

Boolean

Sim


True se sucesso, false se falha.

-

True

message

TPRMessage[]

Sim


Campo que deve ser exibido pelo sistema externo para o usuário.

-



Layout do Callback

TPRReverseGeolocationCallback: Integração rest, Assincrona

Path: ver campo TPRReverseGeolocation/CallbackURL, Método: POST

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

dateCall

Date Time

Sim


Data do envio da resposta no TPR.

Formato ISO

2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD

version

String

Não

4096

Versão do TPR que executou a resposta.

Texto Livre

12.36.1

qualifiers

String

Não

4096

String representando um objeto JSON que tenha o nome da variável e valor sendo String.

Formato JSON.

"{ \"Usuario\": \"Pedro\", \"Perfil\": \"Analista\" }"


OBS: É equivalente usar JSON.stringify({"Usuario":"Pedro", "Perfil":"Analista"})

reverseGeolocationResults

TPRReverseGeolocationResult[]

Sim


Lista de resultados de geolocalização reversa.

-

Tabela abaixo

TPRReverseGeolocationResult, tipo de dado utilizado nas integrações do TPR


Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos


success

Boolean

Sim


True se sucesso, false se falha.

-

True


countryStringSim3Pais do endereço.Formato ISO 3166-1 alfa-3"BRA"


stateString
Não
Sim2Estado do endereço.Quando Brasil valida as 27 opções, se informadoSP


cityString
Não
Sim4096Cidade do endereço.Texto livreBauru


zipCodeString
Não
Sim4096CEP do endereço.Valida formato, se informado e se BRA17047-001


addressStringSim4096Rua
, número, Bairro e complemento
do endereço
.
Texto livreGomes de carvalho, 940

numberStringNão4096Número do endereço-92

messageTPRMessage[]Sim-Campo que deve ser exibido pelo sistema externo para o usuário.-Tabela abaixo

TPRMessage: Tipo de dado utilizado nas integrações do TPR

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

messageCode

String

Sim

4096

Código de identificação da mensagem.

Código existente e valido

TPR0001

message

String

Sim

4096

Mensagem escrita.

Texto Livre

"Sucesso."


Catálogo de mensagens

Código

Mensagem

Descrição

TPRRGL0000

Sucesso.

Retorno indicando sucesso da operação.

TPRRGL0001

É necessário pelo menos um latLong para ser reversamente geolocalizado.

Retorno indicando que precisa ser passado pelo menos um latLong (latitude e longitude) para ser reversamente geolocalizado.

TPRRGL0002

Identificador do latLong é obrigatório.

Retorno inválido indicando que o latLong é obrigatório. 

TPRRGL0003

A latitude é obrigatória.

Retorno inválido para validação da latitude que é obrigatória.

TPRRGL0004

A longitude é obrigatória.

Retorno inválido para validação da longitude que é obrigatória.

TPRRGL0005

Não foi possível achar a geocodificação reversa para o latLong informado.

Retorno indicando que não foi possível encontrar o endereço com o latLong informado.

TPRRGL0006

Erro interno, tente novamente e se o problema persistir contate: [IDENTIFICADOR_CONTATO].

Retorno inválido de erro interno no sistema.

TPRRGL0007

O valor do identificador de latLong possui mais de 4096 caracteres.

Retorno inválido para a validação do campo identifier, que não pode conter mais que 4096 caracteres.

TPRRGL0008

A latitude está nula.

Retorno inválido para a validação do campo latitude, que não pode ser nula.

TPRRGL0009

A longitude está nula.

Retorno inválido para a validação do campo longitude, que não pode ser nulo.

TPRRGL0010

A latitude está inválida, a mesma precisa estar dentro do intervalo [-90; 90].

Retorno inválido para a validação do campo latitude, que não pode estar fora do intervalo [-90; 90].

TPRRGL0011

A longitude está inválida, a mesma precisa estar dentro do intervalo [-180; 180].

Retorno inválido para a validação do campo longitude, que não pode estar fora do intervalo [-180; 180].

TPRRGL0012

O identificador do latLong deve ser único.

Retorno inválido para a validação do campo identifier, que não deve ter um identificador duplicado.

Há mais mensagens reaproveitadas do catálogo de mensagens da geolocalização, para consultá-las, acesse o documento de integração de geolocalização.

...