Árvore de páginas

Versões comparadas

Chave

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

Introdução

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxtrue
revision7
diagramNameTPR Roteirização
simpleViewerfalse
width
linksauto
tbstylehidden
diagramWidth480

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 de entrada/saída: JSON

Escopo

  • |Integração assíncrona de roteirização, compostas pela chamada e pelos callback, nestas, receberemos uma lista pedidos e, quando possível, retornaremos viagens para o sistema externo;

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

  • Para clientes Protheus versão xxxxxx;
  • Para clientes Datasul versão xxxxxx;
  • Para todos os clientes, contratação do trial via TOTVS Store.

Layout de Requisição

TPRRouting: Integração rest, Assíncrona

Path: .../v1/    , Método: POST

CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
dateCallDate TimeSim
Data da criação da chamada no sistema externoFormato ISO86012021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD
systemStringNão4096Identificador do sistema que fez a chamadaTexto LivreProtheus
versionStringNão4096Versão do sistema externoTexto Livre12.36.1
qualifiersObjectNão4096String chave valorFormato JSON{"Usuário": "Pedro de Alcântara", "Perfil": "Analista"}
callbackURLStringSim4096URL de CallbackInício com "https://"
callbackAuthenticationTypeStringSim4096Tipos de autenticação: BASIC, NONETexto LivreNONE
callbackAuthenticationValueStringNão4096Texto de acordo com formato indicadoTexto LivreQWxhZGRpbjpvcGVuIHNlc2FtZQ==
capacityCriteriaStringSim4096Tipos de roteirização: WEIGHT, VOLUME ou BOTHTexto Livre"PESO"
routingInstantTypeStringNão4096Define o instante em que a viagens podem ser expedidas. Valor default D+1
"Now" considera a saída como hora do servidor no momento da roteirização + 1 hora
"D+1" Primeiro horário factível na origem de acordo com o funcionamento da mesma
Valores: "D+1", "NOW""NOW"
ordersTPRRoutingOrders[]Sim
Lista de pedidos a serem roteirizados
Tabela abaixo
vehiclesTPRRoutingVehicles[]Sim
Lista de veículos disponíveis para a roteirização
Tabela abaixo
restrictionsTRPRoutingRestrictions[]Sim
Restrições de roteirização
Tabela abaixo

Âncora
TPRRoutingOrders
TPRRoutingOrders

TPRRoutingOrders, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador do pedidoTexto livre;
Único dentro da chamada.
"Entrega Carrefour" "PED00133"
weightDoubleNão
Peso total os itens do pedido em quilosValidado de acordo com o campo "capacityCriteria"25000
volumeDoubleNão
Volume total dos itens do pedido em metros cúbicosValidado de acordo com o campo "capacityCriteria"5000
pickupTimeWindowStartDate TimeNão
Início da janela de carregamentoFormato ISO8601
PickupStart deve ser anterior a PickupEnd, se ambos preenchidos
"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
pickupTimeWindowEndDate TimeNão
Final da janela de carregamentoFormato ISO8601
PickupEnd deve ser posterior de PickupStart, se ambos preenchidos
"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowStartDate TimeNão
Início da janela de entregaFormato ISO8601"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowEndDate TimeNão
Final da janela de entregaFormato ISO8601
DeliveryEnd deve vir posterior de DeliveryStart
"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
serviceLoadDurationLongNão
Se não informado, será considerado um serviço de 30 minutosMaior que zero, em Milissegundos3600000 [ms]
serviceUnloadDurationLongNão
Se não informado, será considerado um de 30 minutosMaior que zero, em Milissegundos3600000 [ms]
originTPRRoutingLocalitySim
Localidade de origem do pedido
Tabela abaixo
destinationTPRRoutingLocalitySim
Localidade de destino do pedido-Tabela abaixo

Âncora
TPRRoutingLocality
TPRRoutingLocality

TPRRoutingLocality, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador da localidadeTexto Livre"Carrefour vila Mariana"
countryStringSim3País do endereçoFomato ISO 3166-1 alfa-3"BRA"
latitudeDoubleSim
LatitudeIntervalo [-90; 90]-23.6114291
longitudeDoubleSim
LongitudeIntervalo [-180; 180]-46.6946795
operationStringSim
Funcionamento simplificadoOpções: UNRESTRICTED, BUSINESS_DAYS, MORNING, AFTERNOONBUSINESS_DAYS

Âncora
TPRRoutingVehicles
TPRRoutingVehicles

TPRRoutingVehicles, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador do tipo do veículo;
Quando a disponibilidade for insuficiente, podemos retornar novas instâncias deste veículo marcados como viagem extra;
Sempre será escolhido para as viagens extras os veículos que minimizem o número de viagens.
Texto livre"Truck" "Carreta"
weightCapacityDoubleSim
Capacidade do veículo em quilosValidado de acordo com o campo "capacityCriteria"25000
volumeCapacityDoubleSim
Capacidade do veículo em metros cúbicosValidado de acordo com o campo "capacityCriteria"5000
quantityIntNão
Quantidade de veículos, semelhantes a este, disponíveisMaior que zero, se informado;
Omitido para os cenários de "Frota Ideal".

Âncora
TRPRoutingRestrictions
TRPRoutingRestrictions

TPRRoutingRestrictions, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
maxLoadingStopsIntNão
Quantidade máxima de paradas de carregamento por viagem.Maior que zero1
maxUnloadingStopsIntNão
Quantidade máxima de paradas de descarregamento por viagem.Maior que zero15
allowInterleavingBooleanNão
Permite carregamento após descarregamento na mesma viagem. Default: false

maxDistanceBetweenLoadStopsDoubleNão
Máxima distância, em km, entre paradas de carregamento;Se preenchido, deve ser maior ou igual a zero.100
maxDistanceBetweenUnloadStopsDoubleNão
Máxima distância, em km, entre paradas de descarregamento;Se preenchido, deve ser maior ou igual a zero.100

Âncora
TPRRoutingResponse
TPRRoutingResponse

Layout de Resposta

TPRRoutingResponse, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
responseDateDate TimeSim
Data do envio da resposta no TPR-2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD
versionStringSim4096Versão do TPR que executou a resposta-0.0.0.1
successBooleanSim
True se sucesso, false se falhaSe uma única validação falhar, todo o pacote falha.True
messageTPRMessage[]Sim
Lista de mensagens a serem exibidas pelo sistema externo para o usuário-

Âncora
TPRMessage
TPRMessage

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

CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
messageCodeStringSim4096Código de identificação da mensagemCódigo existente e válidoTPR0001
messageStringSim4096Mensagem escritaTexto Livre"Para finalizar o cadastro, acesse seu e-mail e valide o Token"

Âncora
TPRCatMsg
TPRCatMsg

Catálogo de Mensagens


Documentações relacionadas

  • Callback da roteirização

  • Âncora
    TRPFrota_Ideal
    TRPFrota_Ideal
    Frota Ideal:

    Pivot Table
    id1618539242262_-788622302
    Payload nulo da Callback A Localidade Localidade TPRRT0007 Latitude Localidade Latitude Localidade TPRRT0009 Operação Localidade Funcionamento Localidade nulaTPRRT0011 Identificador Pedido Identificador Pedido O Volume do Pedido o Volume do Pedido negativo ou nuloTPRRT0015 Identificador Veículo Identificador Veículo TPRRT0017 Peso Veículo nula enviar a Capacidade de Peso do Veículo O Identificador da Localidade  está duplicado em outras Localidades localidades com identificadores iguais, mas atributos diferentesO Identificador do Pedido  está
    CódigoMensagemDescrição
    TPRRT0000Sucesso

    Ao enviar um Payload válidoSucesso

    TPRRT0001O Input input é nuloAo enviar um payload válido
    TPRRT0002O Input input é vazioAo enviar um Payload payload vazio
    TPRRT0003Data de criação está nulaAo enviar campo "dataCall" nula
    TPRRT0004A versão [VERSÃO_ENVIADA] possui mais de 4096 caracteresAo enviar o campo "version" com mais de 4096 caracteres
    TPRRT0005O qualifiers está nuloAo enviar o campo "qualifiers" null
    TPRRT0006O identificador do sistema externo [IDENTIFICADOR_EXTERNO_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "system" com mais de 4096 caracteres
    TPRRT0007A url de callback [URL_CALLBACK_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "callbackUrl" com mais de 4096 caracteres
    TPRRT0008O tipo da callback está nulaAo enviar o campo "callbackAuthenticationType" nulo
    TPRRT0009O tipo da callback [TIPO_CALLBACK_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "callbackAuthenticationType" com mais de 4096 caracteres
    TPRRT0010O tipo da callback [TIPO_CALLBACK_ENVIADO] está inválido. Os valores esperados são 'BASIC' e 'NONE'Ao enviar o campo "callbackAuthenticationType" com valores inválidos
    TPRRT0011O valor da callback [VALOR_CALLBACK_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "callbackAuthenticationVelue" com mais de 4096 caracteres
    TPRRT0012O tipo de roterização está nuloAo enviar o campo "capacityCriteria" nulo
    TPRRT0013O tipo de roterização [TIPO_CALLBACK_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "capacityCriteria" com mais de 4096 caracteres
    TPRRT0014O tipo de roterização[TIPO_ROTERIZAÇÃO_ENVIADO] está inválido. Os valores possíveis são 'WEGHT' 'VOLUME' e 'BOTH'Ao enviar o campo "capacityCriteria" com valores inválidos
    TPRRT0015A url de callback está nulaAo enviar o campo "callbackUrl" nula
    TPRRT0016A url de callback está inválidaAo enviar o campo "callBackUrl" sem domínio, protocolo ou com caracteres especiais
    TPRRT0004O Identificador do cliente está inválidoAo enviar o Identificador da instalação/cliente TOTVS vazio ou nulo
    TPRRT0017O intante de expedição [INSTANTE_ROTERIZAÇÃO_ENVIADO] possui mais de 4096 caracteresAo enviar o campo "routingInstantType" com mais de 4096 caracteres
    TPRRT0018A restrição está nulaAo enviar o campos "restrições" nulo
    TPRRT0019A localidade TPRRT0005 está nulaAo enviar alguma localidade nula
    TPRRT0006TPRRT0020O Identificador identificador da Localidade localide está inválidoAo enviar o Identificador da Localidade vazio ou nulo
    TPRRT0021A latitude da localidade está nulaAo enviar a latitude da localidade nula
    TPRRT0008TPRRT0022A Longitude longitude da Localidade localidade está nulaAo enviar a Longitude longitude da Localidade localidade nula
    TPRRT0023A operação da localidade está nulaAo enviar o funcionamento da localidade nula
    TPRRT0024País da localidade com o identificador [IDENTIFICADOR_LOCALIDADE] está nuloAo enviar o campo "country" da localidade nulo
    TPRRT0025O identificador da localidade [IDENTIFICADOR_LOCALIDADE] possuí mais de 4096 caracteresAo enviar o campo "identifier" com mais de 4096 caracteres
    TPRRT0026O pais [PAIS_ENVIADO] está inválido. O mesmo deve seguir o fomato ISO 3166-1 alfa-3Ao enviar o campo "country" com mais de 3 caracteres
    TPRRT0027Latitude [LATITUDE_ENVIADO] está inválido a mesma precisa estar dentro do intervalo [-90; 90]Ao enviar o campo "latitude" não seguindo o padrão [-90; 90]
    TPRRT0028Longitude [LONGITUDE_ENVIADO] está inválido a mesma precisa estar dentro do intervalo [-180; 180]Ao enviar o campo "longitude" não seguindo o padrão [-180; 180]
    TPRRT0029Quantidade de veículos deve ser maior que 0Ao enviar a quantidade de veículos menor que 0
    TPRRT0030O pedido TPRRT0010O Pedido está nuloAo enviar algum Pedido pedido nulo
    TPRRT0031O identificador do pedido está inválidoAo enviar o identificador do pedido vazio ou nulo
    TPRRT0012TPRRT0032O Peso peso do Pedido pedido está inválidoAo enviar o Peso do Pedido negativo ou nuloTPRRT0013o campo "weight" nulo ou menor que 0. Caso o campo "capacityCriteria" do input seja "WEIGHT"
    TPRRT0033O volume do pedido está inválidoAo enviar o campo "volume" nulo ou menor que 0. Caso o campo "capacityCriteria" do input seja "VOLUME"
    TPRRT0034Pedidos inválidosAo enviar uma lista vazia de pedidos
    TPRRT0035A localidade de origem do pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar a localidade de origem do pedido nula
    TPRRT0036A localidade de destino do pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar a localidade de destino do pedido nula
    TPRRT0037O identificador do pedido [IDENTIFICADOR_PEDIDO] possuí mais de 4096 caracteresO campo "identifier" com mais de 4096
    TPRRT0038Duração de serviço de carregamento não pode ser menos que 0O campo "serviceLoadDuration" não pode ser menor que 0
    TPRRT0039Duração de serviço de descarregamento não pode ser menos que 0O campo "serviceUnloadDuration" não pode ser menor que 0
    TPRRT0040O veículo TPRRT0014O Veículo está nuloAo enviar algum Veículo veículo nulo
    TPRRT0041Veículos inválidosAo enviar veículos vazios ou nulos
    TPRRT0042O identificador do veículo está inválidoAo enviar o identificador de veículo vazio ou nulo
    TPRRT0016TPRRT0043A capacidade de Volume volume do Veículo veículo está nulanuloAo enviar a Capacidade capacidade de Volume volume do Veículo veículo negativa ou nula
    TPRRT0044A capacidade de peso do veículo está nuloAo enviar a capacidade de peso do veículo negativa ou nula
    TPRRT0018A Localidade de Origem e Destino são iguaisAo enviar Localidades iguais como Origem e Destino
    TPRRT0045O identificador do veículo TPRRT0019 [IDENTIFICADOR_ENVIADO] possuí mais de 4096 caracteresAo enviar
    TPRRT0020O Identificador do Veículo [IDENTIFICADOR_ENVIADO] está duplicado em outros VeículosAo enviar veículos com identificadores iguais, mas atributos diferentes
    o identificador de veículo com mais de 4096 caracteres
    TPRRT0046A quantidade de veículos se informada deve ser maior que 0O campo "quantidade" está menor que 0
    TPRRT0047O identificador do pedido TPRRT0021 [IDENTIFICADOR_ENVIADO] está duplicadoAo enviar dois pedidos com o mesmo identificador
    TPRRT0022Veículos inválidosAo enviar uma lista vazia de Veículos
    TPRRT0023Pedidos inválidosAo enviar uma lista vazia de Pedidos
    TPRRT0024A Localidade de Origem do Pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar um Pedido com a Localidade de Origem nula
    TPRRT0048A localidade de origem e destino são iguaisAo enviar localidades iguais como origem e destino
    TPRRT0049O identificador da localidade [IDENTIFICADOR_ENVIADO] está duplicado em outras localidadesAo enviar localidades com identificadores iguais, mas atributos diferentes
    TPRRT0050O identificador do veículo [IDENTIFICADOR_ENVIADO] está duplicado em outros veículoAo enviar veículos com identificadores iguais, mas atributos diferentesTPRRT0025A Localidade de Destino do Pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar um Pedido com a Localidade de Destino nula


bla bla bla

Anexos

Anexos
oldfalse