Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Aviso
titleIMPORTANTE
  • A integração TOTVS OMS x TOTVS Planejamento de Rotas (TPR) será descontinuada no próximo release (Outubro/2023).

Introdução

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxtrue
revision47
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: JSONJSON, para maiores detalhes consulte os Exemplos.

Escopo

  • Integração assíncrona de roteirização, compostas pela chamada e pelos pelo callback, nestas, receberemos uma lista pedidos e, quando possível, retornaremos viagens para rotas 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 com o callback

Path: https://planejamentorotasqa.totvs.

.

com/v1/

   

tpr-routing, Método: POST

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

Campo

Tipo

Obrigatório

Tamanho

Descrição

Validações

Exemplos

dateCallDate TimeSim
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
systemStringNão4096Identificador do sistema que fez a chamada.Texto Livre.Protheus
versionStringNão4096Versão do sistema externo.Texto Livre.12.36.1
qualifiers
Object
StringNão4096String
chave valor
representando um objeto JSON que tenha o nome da variável e valor sendo String.Formato JSON.

"{ \"

Usuário

Usuario\": \"Pedro

de Alcântara

\", \"Perfil\": \"Analista\" }"


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

callbackURLString
Sim
Depende4096URL de Callback. É obrigatório caso não tenha sido preenchido nada em callbackInfos.Início com "https://" quando o tipo  de autenticação não for NONE
callbackAuthenticationTypeString
Sim
Depende4096Tipos de autenticação: BASIC, NONE
Texto LivreNONE
É obrigatório caso não tenha sido preenchido nada em callbackInfos.Opções: BASIC, NONE.NONE
callbackAuthenticationValueStringNão4096Texto de acordo com formato indicado.Texto Livre.QWxhZGRpbjpvcGVuIHNlc2FtZQ==
capacityCriteria
callbackInfos
String
TPRCallbackInfo[]
Sim
Depende
4096Tipos 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 mesmaValores: "D+1", "NOW""NOW"ordersTPRRoutingOrders[]SimLista de pedidos a serem roteirizadosTabela abaixovehiclesTPRRoutingVehicles[]SimLista de veículos disponíveis para a roteirizaçãoTabela abaixorestrictionsTRPRoutingRestrictions[]SimRestrições de roteirizaçãoTabela abaixo
ÂncoraTPRRoutingOrders

Lista de callbacks. É obrigatório caso não tenha sido preenchido nada em callbackURL e callbackAuthenticationType.

ordersTPRRoutingOrders[]Sim
Lista de pedidos a serem roteirizados.
Tabela abaixo
vehiclesTPRRoutingVehicles[]Sim
Lista de veículos disponíveis para a roteirização.
Tabela abaixo
restrictionsTRPRoutingRestrictionsSim
Restrições de roteirização.
Tabela abaixo
optionsTPRRoutingOptionsSim
Opções de roteirização.
Tabela abaixo

Âncora
TPRCallbackInfo
TPRCallbackInfo

TPRCallbackInfo
TPRRoutingOrders
"2021-01-
TPRRoutingOrders, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifiercallbackURLStringSim4096Identificador do pedidoTexto livre;
Único dentro da chamadaURL de Callback.
"Entrega Carrefour" "PED00133"weightDoubleNãoPeso total os itens do pedido em quilosValidado de acordo com o campo "routingType"25.000volumeDoubleNãoVolume total dos itens do pedido em metros cúbicosValidado de acordo com o campo "routingType"5000pickupTimeWindowStartDate TimeNãoIní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ãoFinal 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ãoInício da janela de entregaFormato ISO8601"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowEndDate TimeNãoFinal da janela de entregaFormato ISO8601
DeliveryEnd deve vir posterior de DeliveryStart

Início com "https://" quando o tipo  de autenticação não for NONE


callbackAuthenticationTypeStringSim4096Tipos de autenticação: BASIC, NONE

Opções: BASIC, NONE.

NONE
callbackAuthenticationValueStringNão4096Texto de acordo com formato indicado.

Texto Livre.

QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Âncora
TPRRoutingOrders
TPRRoutingOrders

TPRRoutingOrders, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador do pedido

Texto livre, deve se único dentro da chamada.

"Entrega Carrefour"

"PED00133"

weightDoubleNão
Peso total os itens do pedido em quilos

Se preenchido, deve ser maior ou igual a zero;

Validado de acordo com o campo "capacityCriteria";

Se não existirem veículos que suportem este pedido sozinho  na disponibilidade, ele será rejeitado.

25000
volumeDoubleNão
Volume total dos itens do pedido em metros cúbicos

Se preenchido, deve ser maior ou igual a zero;

Validado de acordo com o campo "capacityCriteria";

Se não existirem veículos que suportem este pedido sozinho  na disponibilidade, ele será rejeitado.

5000
pickupTimeWindowStartDate TimeSim
Início da janela de carregamento

Formato ISO8601;

PickupStart deve ser anterior a PickupEnd, se ambos forem preenchidos;

PickupStart deve ser anterior ou igual a DeliveryStart , se ambos forem preenchidos;

PickupStart deve ser anterior a DeliveryEnd e ambos devem ser preenchidos.

"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
serviceLoadDuration
pickupTimeWindowEnd
Long
Date TimeNão
Se não informado, será considerado um serviço de 30 minutosMaior que zero, em Milissegundos3600000 [ms]serviceUnloadDurationLongNãoSe não informado, será considerado um de 30 minutosMaior que zero, em Milissegundos3600000 [ms]originTPRRoutingLocalitySimLocalidade de origem do pedidoTabela abaixodestinationTPRRoutingLocalitySimLocalidade de destino do pedido-Tabela abaixo
ÂncoraTPRRoutingLocalityTPRRoutingLocalityTPRRoutingLocality, tipo de dado utilizado nas integrações do TPRCampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplosidentifierStringSimIdentificador da localidadeTexto Livre"Carrefour vila Mariana"countryStringSim3País do endereçoFomato ISO 3166-1 alfa-3"BRA"

Final da janela de carregamentoFormato ISO8601."2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowStartDate TimeNão
Início da janela de entrega

Formato ISO8601.

"2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZD"
deliveryTimeWindowEndDate TimeSim
Final da janela de entrega

Formato ISO8601;

DeliveryEnd deve vir posterior de DeliveryStart se ambos forem preenchidos;

DeliveryEnd deve vir posterior  ou igual de PickupEnd se ambos forem preenchidos;

DeliveryEnd deve vir posterior de PickupStart e ambos devem ser preenchidos.

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

Se for 0 minutos a soma dos serviços dos pedidos, consideraremos 30 minutos de serviço;

Soma com menos de 30 minutos será sempre 30 minutos;

Se a soma do tempo de serviço dos pedidos for maior que 8h, consideraremos 8h de serviço;

Se preenchido, deve ser maior que zero, em Milissegundos.3600000 [ms]
serviceUnloadDurationLongNão

Se for 0 minutos a soma dos serviços dos pedidos, consideraremos 30 minutos de serviço;

Soma com menos de 30 minutos será sempre 30 minutos;

Se a soma do tempo de serviço dos pedidos for maior que 8h, consideraremos 8h de serviço;

Se preenchido, deve ser maior que zero, em Milissegundos.3600000 [ms]
originTPRRoutingLocalitySim
Localidade de origem do pedido-Tabela abaixo
destinationTPRRoutingLocalitySim
Localidade de destino do pedido-Tabela abaixo

Âncora
TPRRoutingLocality
TPRRoutingLocality

TPRRoutingLocality
latitudeDoubleSimLatitudeIntervalo [-90; 90]-23.6114291longitudeDoubleSimLongitudeIntervalo [-180; 180]-46.6946795operationStringSimFuncionamento simplificadoOpções: UNRESTRICTED, BUSINESS_DAYS, MORNING, AFTERNOONBUSINESS_DAYS ÂncoraTPRRoutingVehiclesTPRRoutingVehicles
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
da localidade.Texto livre, deve se único dentro da chamada."Carrefour 123-1"
nameStringNão4096Nome da localidade.Texto livre."
Truck" "Carreta"weightCapacity
Carrefour Vila Mariana"
countryString
Double
Sim
Capacidade do veículo em quilosMaior que zero, se informado25.000volumeCapacityDoubleSimCapacidade do veículo em metros cúbicosMaior que zero, se informado5000quantityIntNãoQuantidade de veículos, semelhantes a este, disponíveisMaior que zero, se informado;
Omitido para os cenários de "Frota Ideal".
ÂncoraTRPRoutingRestrictionsTRPRoutingRestrictions
3País do endereço.Formato ISO 3166-1 alfa-3."BRA"
stateStringNão2Estado do endereço

Se TPRRoutingRestrictions stateReturnForbidden é true, todas as localidades deverão enviar a UF, que deverá ser:

Não nula ou vazia
Composta por dois caracteres
Deve ser uma UF válida para o Brasil

"SP"
latitudeDoubleSim
Latitude.Intervalo [-90; 90].-23.6114291
longitudeDoubleSim
Longitude.Intervalo [-180; 180].-46.6946795
operationStringSim
Funcionamento simplificado com as opções:
UNRESTRICTED, BUSINESS_DAYS, MORNING, AFTERNOON, CUSTOMIZED

Opções:

UNRESTRICTED  (00:00-23:59 de Dom-Sab)
BUSINESS_DAYS (08:00-17:59 de Seg-Sex)
MORNING (08:00-11:59 de Seg-Sex)
AFTERNOON (14:00-17:59 de Seg-Sex)
CUSOTMIZED (Valores preenchidos na tabela abaixo)
BUSINESS_DAYS
customizedOperationsTPRRoutingCustomizedOperation[]Não
Horários de funcionamento customizadoSe operação customizada (operation=CUSTOMIZED) ao menos uma recorrência será obrigatória.Tabela a baixo
restrictedVehiclesTPRRoutingRestrictedVehicles[]Não
Lista de veículos restritos para esta localidade
Tabela a baixo

Âncora
TPRRoutingCustomizedOperation
TPRRoutingCustomizedOperation

TPRRoutingCustomizedOperation
TPRRoutingRestrictions, tipo de dado utilizado nas integrações do TPRCampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplosmaxLoadingStopsIntNãoQuantidade máxima de paradas de carregamento por viagem.Maior que zero1maxUnloadingStopsIntNãoQuantidade máxima de paradas de descarregamento por viagem.Maior que zero15allowInterleavingBooleanNãoPermite carregamento após descarregamento na mesma viagem. Default: falsemaxDistanceBetweenLoadStopsDoubleNãoMáxima distância, em km, entre paradas de carregamento;Se preenchido, deve ser maior ou igual a zero.100maxDistanceBetweenUnloadStopsDoubleNãoMáxima distância, em km, entre paradas de descarregamento;Se preenchido, deve ser maior ou igual a zero.100 ÂncoraTPRRoutingResponseTPRRoutingResponse

Layout de Resposta

TPRRoutingResponse
, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
responseDate
weekDay
Date Time
StringSim
Data do envio da resposta no TPR-2021-01-21T10:01:00.0-03:00
YYYY-MM-DDThh:mm:ss.sTZDversion
3Dia da semanaSUN, MON, TUE, WED, THU, FRI, SAT"MON"
startTimeStringSim5Horário de inicio de operação.Deve estar no intervalo: 00:00 - 23:59"08:00"
endTimeStringSim
4096Versão do TPR que executou a resposta-0.0.0.1successBooleanSimTrue se sucesso, false se falhaSe uma única validação falhar, todo o pacote falha.TruemessageTPRMessage[]SimLista de mensagens a serem exibidas pelo sistema externo para o usuário-
5Horário de fim de operaçãoDeve estar no intervalo: 00:00 - 23:59"12:00"

Âncora
TPRRoutingRestrictecVehicles
TPRRoutingRestrictecVehicles

TPRRoutingRestrictedVehicles, tipo
ÂncoraTPRMessage TPRMessage
TPRMessage: Tipo
de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
messageCode
identifierStringSim4096
Código de identificação da mensagemCódigo existente e válidoTPR0001message
Identificador do tipo do veículo.Deve constar na lista veículos disponíveis.

"Truck"

"Carreta"

Âncora
TPRRoutingVehicles
TPRRoutingVehicles

TPRRoutingVehicles, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096
Mensagem escritaTexto Livre"Para finalizar o cadastro, acesse seu e-mail e valide o Token"
ÂncoraTPRCatErrosTPRCatErros

Catálogo de Mensagens

CódigoMensagemDescriçãoTPRRT0000Sucesso

Ao enviar um Payload válido

TPRRT0001O Input é nuloAo enviar um Payload nuloTPRRT0002O Input é vazioAo enviar um Payload vazioTPRRT0003A URL da 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 nuloTPRRT0005A Localidade está nulaAo enviar alguma Localidade nulaTPRRT0006O Identificador da Localidade está inválidoAo enviar o Identificador da Localidade vazio ou nuloTPRRT0007A Latitude da Localidade está nulaAo enviar a Latitude da Localidade nulaTPRRT0008A Longitude da Localidade está nulaAo enviar a Longitude da Localidade nulaTPRRT0009A Operação da Localidade está nulaAo enviar o Funcionamento da Localidade nulaTPRRT0010O Pedido está nuloAo enviar algum Pedido nuloTPRRT0011O Identificador do Pedido está inválidoAo enviar o Identificador do Pedido vazio ou nuloTPRRT0012O Peso do Pedido está inválidoAo enviar o Peso do Pedido negativo ou nuloTPRRT0013O Volume do Pedido está inválidoAo enviar o Volume do Pedido negativo ou nuloTPRRT0014O Veículo está nuloAo enviar algum Veículo nuloTPRRT0015O Identificador do Veículo está inválidoAo enviar o Identificador de Veículo vazio ou nuloTPRRT0016A capacidade de Volume do Veículo está nuloAo enviar a Capacidade de Volume do Veículo negativa ou nuloTPRRT0017A capacidade de Peso do Veículo está nuloAo enviar a Capacidade de Peso do Veículo negativa ou nuloTPRRT0018A Localidade de Origem e Destino são iguaisAo enviar Localidades iguais como Origem e DestinoTPRRT0019O Identificador da Localidade [IDENTIFICADOR_ENVIADO] está duplicado em outras LocalidadesAo enviar localidades com identificadores iguais, mas atributos diferentes.TPRRT0020O Identificador do Veículo [IDENTIFICADOR_ENVIADO] está duplicado em outros VeículoAo enviar veículos com identificadores iguais, mas atributos diferentes.TPRRT0021O Identificador do Pedido [IDENTIFICADOR_ENVIADO] está duplicadoAo enviar dois pedidos com o mesmo identificadorTPRRT0022Veículos inválidosAo enviar uma lista vazia de VeículosTPRRT0023Pedidos inválidosAo enviar uma lista vazia de PedidosTPRRT0024A Localidade de Origem do Pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar um Pedido com a Localidade de Origem nulaTPRRT0025A Localidade de Destino do Pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar um Pedido com a Localidade de Destino nula

Documentações relacionadas

  • Callback da roteirização

  • ÂncoraTRPFrota_IdealTRPFrota_IdealFrota Ideal:
    Identificador do tipo do veículo;
    Quando a disponibilidade for insuficiente, podemos retornar novas instâncias deste veículo marcados como rota extra;
    Sempre será escolhido para as rotas extras os veículos que minimizem o número de rotas.
    Texto livre, deve se único dentro da chamada.

    "Truck"

    "Carreta"

    weightCapacityDoubleSim
    Capacidade do veículo em quilos.

    Se preenchido, deve ser maior ou igual a zero.
    Validado de acordo com o campo "capacityCriteria".

    25000
    volumeCapacityDoubleSim
    Capacidade do veículo em metros cúbicos.Se preenchido, deve ser maior ou igual a zero.
    Validado de acordo com o campo "capacityCriteria".
    5000
    speedDoubleNão
    Define a velocidade que dos veículos em uma roteirização.

    Se preenchido, deve ser maior que zero. 

    Senão, utilizaremos 30 km/h.


    quantityIntNão
    Quantidade de veículos, semelhantes a este, disponíveis.

    Zerado, nulo ou omitido para os cenários de "Frota Ideal".

    Se passados valores quebrados apenas a parte inteira será considerada.


    vehicleTypeStringNão
    TRUCK | CAR  | MOTORCYCLESe não preenchido será considerado TRUCK.
    É utilizado no calculo do pedágio e para restrições de trafego de caminhões.

    tollAxesLongNão
    Quantidade de eixos durante a rota.Se informado será considerado no calculo do pedágio.6
    tollReturnAxesLongNão
    Quantidade de eixos durante o retorno para a origem.Se informado será considerado no calculo do pedágio.4

    Â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 rota.


    Se preenchido, deve ser maior que zero;

    Se passados valores quebrados apenas a parte inteira será considerada.

    1
    maxUnloadingStopsIntNão
    Quantidade máxima de paradas de descarregamento por rota.

    Se preenchido, deve ser maior que zero.

    Se passados valores quebrados apenas a parte inteira será considerada.

    15
    allowInterleavingBooleanNão
    Permite carregamento após descarregamento na mesma rota. Default: false

    Tabela para validação de campos Boolean.


    maxDistanceBetweenLoadStopsDoubleNão
    Máxima distância, em km, entre paradas de carregamento.Se preenchido, deve ser maior que zero.100
    stateReturnForbiddenBoolean       Não            Liga e desliga  a validação de retorno ao estado (UF) já visitado

    Tabela para validação de campos Boolean.

    Se não informado assumiremos "False".


    Âncora
    TPRRoutingOptions
    TPRRoutingOptions

    TPRRoutingOptions, tipo de dado utilizado nas integrações do TPR
    CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
    capacityCriteriaStringSim4096Tipos de roteirização: WEIGHT, VOLUME ou BOTHOpções: WEIGHT, VOLUME ou BOTH."WEIGHT"
    routingInstantTypeStringNão4096

    Define o instante a partir do qual as rotas podem ser expedidas:

    "Now" Inicio das rotas na primeira hora factível a partir do  momento da roteirização mais uma hora.

    "D+1" Inicio das rotas amanhã no primeiro horário factível de carregamento.

    Pedidos com janelas de carregamento ou descarregamento no futuro, desde que factíveis, não serão influenciados por este parâmetro.

    Valores: "D+1", "NOW"."NOW"
    considerReturnDistanceBooleanNão

    Verifica se é para contabilizar a distância de retorno a origem na roteirização. 

    Tabela para validação de campos Boolean.

    Se não informado assumiremos "False".


    minServiceDurationLongNão

    O montante mínimo do tempo de serviço. Caso a soma dos tempos de carregamento e descarregamento não ultrapassem o valor mínimo, este será utilizado.
    Valor padrão: 30m

    Se preenchido, não pode ser negativo, em Milissegundos.

    3600000 [ms]
    maxServiceDurationLongNão

    O montante máximo do tempo de serviço. Caso a soma dos tempos de carregamento e descarregamento ultrapassem o valor máximo, este será utilizado.
    Valor padrão: 8h

    Se preenchido, não pode ser negativo, em Milissegundos.

    3600000 [ms]
    driverRestPlanTypeStringNão
    Descanso do motorista

    DEFAULT: A cada 5 horas dirigidas 1/2 hora de descanso;

    A cada 24 horas dirigidas 11 horas de descanso e 1 hora de almoço

    Tempo máximo de direção 8 horas 

    EXTRATIME: A cada 5 horas dirigidas 1/2 hora de descanso;

    A cada 24 horas dirigidas 11 horas de descanso e 1 hora de almoço

    Tempo máximo de direção 10 horas (8 horas normais + Mais 2 horas extras)

    NONE: Desativado

    "DEFAULT"
    routingTypeStringNão
    Tipo da Roteirização (Default: 'ROUTING')

    ROUTING: Valida peso, volume e considera todos os veículos disponíveis. Se possível gera várias rotas.

    SEQUENCE: Não efetua validação de peso, volume e seleciona o primeiro veículo. Utilizado apenas para sequenciar paradas.

    "SEQUENCE"

    prioritizationOption

              String            Não

    Priorização de Roteirização (Default: 'PRIORITIZE_VEHICLES')

    PRIORITIZE_VEHICLES: Priorizar minha disponibilidade de veículos (Busca priorizar a capacidade dos veículos cadastrados antes de gerar rota extra).

    REDUCE_TRAVEL: Reduzir a quantidade de rotas  (Agrupa os pedidos com objetivo de reduzir a quantidade de rotas, podendo gerar rota extra).

    'REDUCE_TRAVEL'
    tollCalculationBooleanNão
    Calculo do pedágio

    Tabela para validação de campos Boolean.

    Se não informado assumiremos "False".




    Â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 falha.Se 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 mensagem.Código existente e válido.TPR0001
    messageStringSim4096Mensagem escrita.Texto Livre."Para finalizar o cadastro, acesse seu e-mail e valide o Token"

    Âncora
    TPRCatMsg
    TPRCatMsg

    Catálogo de Mensagens

    CódigoMensagemDescrição
    TPRRT0000SucessoSucesso
    TPRRT0001A mensagem está nulaAo enviar um payload nulo
    TPRRT0002A mensagem está vaziaAo enviar um payload vazio
    TPRRT0003A data de criação está nulaAo enviar campo "dataCall" nula
    TPRRT0004O valor da versão possui mais de 4096 caracteresAo enviar o campo "version" com mais de 4096 caracteres
    TPRRT0005O valor dos qualificadores possui mais de 4096 caracteresAo enviar o campo "qualifiers" com mais de 4096 caracteres
    TPRRT0006A máxima distância de paradas de carregamento não pode ser menor que 0Ao enviar o campo "maxDistanceBetweenLoadStops" com o valor menor a 0
    TPRRT0007O valor do sistema possui mais de 4096 caracteresAo enviar o campo "system" com mais de 4096 caracteres
    TPRRT0008A url de callback está nulaAo enviar o campo "callbackUrl" nula
    TPRRT0009Para utilizar autenticação, a URL de chamada de retorno deve iniciar com https://.Ao enviar o campo "callbackUrl" com autenticação diferente de none, e que não começe com https://
    TPRRT0010O valor da url de callback possui mais de 4096 caracteresAo enviar o campo "callbackUrl" com mais de 4096 caracteres
    TPRRT0011O tipo de autenticação de callback está nulaAo enviar o campo "callbackAuthenticationType" nulo
    TPRRT0012O valor do tipo de autenticação de callback possui mais de 4096 caracteresAo enviar o campo "callbackAuthenticationType" com mais de 4096 caracteres
    TPRRT0013O tipo de autenticação de callback está inválido ('BASIC', 'NONE')Ao enviar o campo "callbackAuthenticationType" inválido
    TPRRT0014O tipo de roteirização está nuloAo enviar o campo "capacityCriteria" nula
    TPRRT0015O valor do tipo de roteirização possui mais de 4096 caracteresAo enviar o campo "capacityCriteria" com mais de 4096 caracteres
    TPRRT0016O tipo de roteirização está inválido ('WEIGHT', 'VOLUME', 'BOTH')Ao enviar o campo "capacityCriteria" com valores diferentes de ('WEGHT', 'VOLUME', 'BOTH')
    TPRRT0017O valor do instante da roteirização possui mais de 4096 caracteresAo enviar o campo "routingInstantType" com mais de 4096 caracteres
    TPRRT0018A restrição está nulaAo enviar o campo "restriction" nula
    TPRRT0019A localidade está nulaAo enviar alguma localidade nula
    TPRRT0020O identificador da localidade está inválidoAo enviar o Identificador da Localidade vazio ou nulo
    TPRRT0021A latitude da localidade [IDENTIFICADOR_LOCALIDADE] está nulaAo enviar a latitude de alguma localidade nula
    TPRRT0022A longitude da localidade [IDENTIFICADOR_LOCALIDADE] está nulaAo enviar a longitude de alguma localidade nula
    TPRRT0023A operação da localidade [IDENTIFICADOR_LOCALIDADE] está nulaAo enviar o funcionamento de alguma localidade nula
    TPRRT0024O país da localidade [IDENTIFICADOR_LOCALIDADE] está nulaAo enviar o campo "country" de alguma localidade nulo
    TPRRT0025O valor do identificador da localidade possui mais de 4096 caracteresAo enviar o campo "identifier" de alguma localidade com mais de 4096 caracteres
    TPRRT0026O país da localidade [IDENTIFICADOR_LOCALIDADE] está inválido. O mesmo deve seguir o formato ISO 3166-1 alfa-3Ao enviar o campo "country" com mais de 3 caracteres
    TPRRT0027O país da localidade [IDENTIFICADOR_LOCALIDADE] não foi encontradoAo enviar o campo "country" que não está informado no TPRCountry
    TPRRT0028A latitude da localidade [IDENTIFICADOR_LOCALIDADE] 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]
    TPRRT0029A longitude da localidade [IDENTIFICADOR_LOCALIDADE] 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]
    TPRRT0030O pedido está nuloAo enviar algum pedido nulo
    TPRRT0031Os pedidos são inválidosAo enviar o campo pedido vazio
    TPRRT0032O identificador do pedido é obrigatórioAo enviar o identificador do pedido vazio ou nulo
    TPRRT0033O peso do pedido com identificador [IDENTIFICADOR_PEDIDO] é obrigatórioAo enviar o peso do pedido nulo, caso o campo "capacityCriteria" do input seja "WEIGHT" ou "BOTH"
    TPRRT0034O peso do pedido com identificador [IDENTIFICADOR_PEDIDO] deve ser maior que 0Ao enviar o peso do pedido que seja menor que 0, caso o campo "capacityCriteria" do input seja "WEIGHT" ou "BOTH"
    TPRRT0035O volume do pedido com identificador [IDENTIFICADOR_PEDIDO] é obrigatórioAo enviar o campo "volume" menor que 0, caso o campo "capacityCriteria" do input seja "VOLUME" ou 'BOTH"
    TPRRT0036O volume do pedido com identificador [IDENTIFICADOR_PEDIDO] deve ser maior que 0Ao enviar o campo "volume" menor que 0. caso o campo "capacityCriteria" do input seja "VOLUME"
    TPRRT0037A localidade de origem do pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar a localidade de origem do pedido nula
    TPRRT0038A localidade de destino do pedido [IDENTIFICADOR_PEDIDO] está nuloAo enviar a localidade de destino do pedido nula
    TPRRT0039O identificador do pedido possui mais de 4096 caracteresO campo "identifier" do pedido com mais de 4096
    TPRRT0040A duração de serviço de carregamento do pedido [IDENTIFICADOR_PEDIDO] não pode ser menor ou igual a 0Ao enviar o campo "serviceLoadDuration" menor que 0
    TPRRT0041A duração de serviço de descarregamento pedido [IDENTIFICADOR_PEDIDO] não pode ser menor ou igual a 0Ao enviar o campo "serviceUnloadDuration" menor que 0
    TPRRT0042Os veículos não podem ser nulosAo enviar o campo "vehicles" nulo
    TPRRT0043Os veículos não podem ser vaziosAo enviar o campo "vehicles" vazio
    TPRRT0044O identificador do veículo está inválidoAo enviar o campo "identifier" do veículo nulo ou vazio
    TPRRT0045A capacidade de volume do veículo com identificador [IDENTIFICADOR_VEICULO] é obrigatórioAo enviar o campo "volumeCapacity" do veículo nula, quando o capacityCriteria é igual a VOLUME ou BOTH
    TPRRT0046A capacidade de volume do veículo com identificador [IDENTIFICADOR_VEICULO] deve ser maior que 0Ao enviar o campo "volumeCapacity" do veículo é menor que 0, quando o capacityCriteria é igual a VOLUME ou BOTH
    TPRRT0047A capacidade de peso do veículo com identificador [IDENTIFICADOR_VEICULO] é obrigatórioAo enviar o campo "weightCapacity" do veículo nula, quando o capacityCriteria é igual a WEIGHT ou BOTH
    TPRRT0048A capacidade de peso do veículo com identificador [IDENTIFICADOR_VEICULO] deve ser maior que 0Ao enviar o campo "weightCapacity" do veículo é menor que 0, quando o capacityCriteria é igual a WEIGHT ou BOTH
    TPRRT0049O identificador do veículo possui mais de 4096 caracteresAo enviar o identificador de veículo com mais de 4096 caracteres
    TPRRT0050A quantidade de veículos do veículo com identificador [IDENTIFICADOR_VEICULO], se informada, deve ser maior que 0Ao enviar o campo "quantity" menor que 0
    TPRRT0051O identificador do pedido [IDENTIFICADOR_PEDIDO] está duplicadoAo enviar dois pedidos com o mesmo identifier
    TPRRT0052As localidades de origem e destino são iguais no pedido [IDENTIFICADOR_PEDIDO]Ao enviar uma localidade de origem e de destino com o mesmo identifier
    TPRRT0053O identificador da localidade [IDENTIFICADOR_LOCALIDADE] está duplicado em outras localidadesAo enviar duas localidades quaisquer com o mesmo identifier. É analisado a igualdade de todos os campos daquela localidade.
    TPRRT0054O identificador do veículo [IDENTIFICADOR_VEICULO] está duplicado com outros veículosAo enviar veículos com identificadores iguais, mas atributos diferentes
    TPRRT0055Os qualificadores não estão em um formato válido (JSON)Ao enviar o campo "qualifiers" com formato diferente de uma String com um objeto JSON em texto.
    TPRRT0056O máximo número de paradas de carregamento não pode ser menor ou igual a 0Ao enviar o campo "maxLoadingStops" com o valor menor ou igual a 0
    TPRRT0057O máximo número de paradas de descarregamento não pode ser menor ou igual a 0Ao enviar o campo "maxUnloadingStops" com o valor menor ou igual a 0
    TPRRT0058A máxima distância de paradas de descarregamento não pode ser menor que 0Ao enviar o campo "maxDistanceBetweenUnloadStops" com o valor menor a 0
    TPRRT0059O pedido [IDENTIFICADOR_PEDIDO] possui início da janela de carregamento maior ou igual que o final da janela de carregamentoAo enviar o campo "pickupTimeWindowStart" maior ou igual que o campo "pickupTimeWindowEnd"
    TPRRT0060O pedido [IDENTIFICADOR_PEDIDO] possui início da janela de descarregamento maior ou igual que o final da janela de descarregamentoAo enviar o campo "deliveryTimeWindowStart" maior ou igual que o campo "deliveryTimeWindowEnd"
    TPRRT0061O pedido [IDENTIFICADOR_PEDIDO] possui início da janela de carregamento maior que o início da janela de descarregamentoAo enviar o campo "pickupTimeWindowStart" maior que o campo "deliveryTimeWindowStart"
    TPRRT0062O pedido [IDENTIFICADOR_PEDIDO] possui início da janela de carregamento maior ou igual que o final da janela de descarregamentoAo enviar o campo "pickupTimeWindowStart" maior ou igual que o campo "deliveryTimeWindowEnd"
    TPRRT0063O pedido [IDENTIFICADOR_PEDIDO] possui final da janela de carregamento maior que o final da janela de descarregamentoAo enviar o campo "pickupTimeWindowEnd" maior ou igual que o campo "deliveryTimeWindowStart"
    TPRRT0064O peso do veículo [IDENTIFICADOR_VEÍCULO] para o pedido [IDENTIFICADOR_PEDIDO] ultrapassou o máximo permitido. Peso constatado [PESO_CONSTATADO] Peso máximo [PESO_MAXIMO]Quando o peso máximo do veículo ultrapassa o peso permitido pelo validador MaxWeightVehicleServiceLegValidator
    TPRRT0065O volume do veículo [IDENTIFICADOR_VEÍCULO] para o pedido [IDENTIFICADOR_PEDIDO] ultrapassou o máximo permitido. Volume constatado [VOLUME_CONSTATADO]. Volume máximo [VOLUME_MAXIMO]Quando o volume máximo do veículo ultrapassa o volume permitido no validador MaxVolumeVehicleServiceLegValidator
    TPRRT0066Não foi possível satisfazer a janela temporal dos pedidos [IDENTIFICADORES_PEDIDOS].Quando a janela de tempo dos pedidos estão infactiveis baseado no validador TimeWindowValidator
    TPRRT0067Pedido [IDENTIFICADOR_PEDIDO] não roteirizado devido estouro da janela de carregamento/descarregamento.Quando a janela de tempo dos pedidos estão infactiveis baseado no validador PlanTimeConfigurationValidatorWrapper
    TPRRT0068A rota supera a quantidade máxima de carregamentos permitidos. Carregamentos [QUANTIDADE_CARREGAMENTOS], Máx [MAX_QUANTIDADE_PERMITIDA].Quando a quantidade de carregamentos de um protótipo de rota for maior que 1.
    TPRRT0069A rota supera a quantidade máxima de descarregamentos permitidos. Descarregamentos [QUANTIDADE_DESCARREGAMENTOS], Máx [MAX_QUANTIDADE_PERMITIDA].Quando a quantidade de descarregamentos de um protótipo de rota for maior que 1.
    TPRRT0070A velocidade deve ser maior que 0.Ao enviar o campo "speed" com o valor menor que ou igual a 0.
    TPRRT0071As opções de roteirização estão nulas.Ao enviar o campo TPRRoutingOptions nulo.
    TPRRT0072O tempo mínimo de serviço não pode ser menor que zeroAo enviar o campo minServiceDuration com o valor menor que 0.
    TPRRT0073O tempo máximo de serviço não pode ser menor que zeroAo enviar o campo maxServiceDuration com o valor menor que 0.
    TPRRT0074Erro Interno, tente novamente e se o problema persistir contate: [EMAIL_SUPORTE].Erro caso ocorra alguma falha na roterização.
    TPRRT0075O valor do instante da roteirização está inválido ('D+1', 'NOW').Ao enviar o campo "routingInstantType" com valores diferentes de ('D+1', 'NOW').
    TPRRT0076O nome da localidade [IDENTIFICADOR_LOCALIDADE] possui mais de 4096 caracteres.Ao enviar o campo "name" for maior que 4096 caracteres
    TPRRT0077A rota supera a quantidade máxima de cargas permitidas. Cargas [QUANTIDADE], Máx [QUANTIDADE_MÁXIMA].Quando ultrapassa o número máximo de carga
    TPRRT0078A data de inicio da janela de carregamento no pedido [IDENTIFICADOR_PEDIDO]  é obrigatóriaAo enviar o campo "pickupTimeWindowStart" nulo 
    TPRRT0079A data de fim da janela de descarregamento no pedido [IDENTIFICADOR_PEDIDO] é obrigatóriaAo enviar o campo "deliveryTimeWindowEnd" nulo
    TPRRT0080O campo driverRestPlanType possui mais de 4096 caracteres.Ao enviar o driverRestPlanTypede veículo com mais de 4096 caracteres
    TPRRT0081O tipo de plano de descanso do motorista (driverRestPlanType) está inválido. Opções válidas: 'DEFAULT', 'EXTRATIME', 'NONE').Ao enviar uma opção inválida do driverRestPlanType
    TPRRT0082O tipo de roteirização (rountingType) está inválido. Opções válidas: 'ROUTING', 'SEQUENCE').Ao enviar uma opção inválida do rountingType
    TPRRT0083Não existem rotas que respeitem a zona de restrição [IDENTIFICADOR DA RESTRIÇÃO] para o(s) pedido(s) [IDENTIFICADOR DO PEDIDO]Quando a rota passa por uma zona de restrição de circulação com um veículo restrito em horário de restrição ativa
    TPRRT0084O retorno a estado já visitado não é permitido.Quando uma rota retorna a um estado já visitado anteriormente em um serviço de descarregamento (stateReturnForbidden deve ser TRUE em TPRRoutingRestrictions para ligar a validação)
    TPRRT0085O estado (UF) da localidade [IDENTIFICADOR DA LOCALIDADE] está nulo.Quando uma localidade é integrada com o estado nulo (stateReturnForbidden deve ser TRUE em TPRRoutingRestrictions para ligar a validação)
    TPRRT0086O estado (UF) da localidade [IDENTIFICADOR DA LOCALIDADE] está inválido, o mesmo deve ser composto por duas letras.Quando a UF da localidade possui tamanho diferente de 2 (stateReturnForbidden deve ser TRUE em TPRRoutingRestrictions para ligar a validação)
    TPRRT0087O estado da localidade [IDENTIFICADOR DA LOCALIDADE] não é um estado válido.Quando a UF da localidade não corresponde a uma das UFs do Brasil (stateReturnForbidden deve ser TRUE em TPRRoutingRestrictions para ligar a validação)
    TPRRT0088O identificador do veículo da restrição da Localidade [IDENTIFICADOR DA LOCALIDADE] é obrigatório.Quando o identificador do veículo restrito for nulo ou vazio.
    TPRRT0089O identificador do veículo da restrição da Localidade [IDENTIFICADOR DA LOCALIDADE] possui mais de 4096 caracteres.Quando o identificador do veículo restrito ultrapassar 4096 caracteres
    TPRRT0090A restrição do Veículo [IDENTIFICADOR DO VEÍCULO] na Localidade [IDENTIFICADOR DA LOCALIDADE] não existe na lista de veículos providos.Quando houver restrição de um veículo em uma localidade que não consta na lista de veículos do input.
    TPRRT0091O Veículo [IDENTIFICADOR DO VEÍCULO] é restrito na Localidade [IDENTIFICADOR DA LOCALIDADE].Mensagem de rejeite quando não encontra veículos compatíveis e o motivo é a restrição de veículos por localidade.
    TPRRT0092A Localidade [IDENTIFICADOR DA LOCALIDADE] com operação customizada está com o campo inválido.Ao enviar uma localidade com operação customizada sem enviar uma lista de horários, ou uma lista vazia.
    TPRRT0093O dia da semana da Localidade [IDENTIFICADOR DA LOCALIDADE] está inválido. As opções são: [SUN, MON, TUE, WED, THU, FRI, SAT].Ao enviar um dia de semana que não satisfaça as opções.
    TPRRT0094O horário de início da operação customizada da Localidade [IDENTIFICADOR DA LOCALIDADE] está inválido. Os valores permitidos devem estar no intervalo: 00:00 - 23:59Ao enviar um tamanho diferente de 5, nulo, vazio ou fora do intervalo.
    TPRRT0095O horário de fim da operação customizada da Localidade [IDENTIFICADOR DA LOCALIDADE] está inválido. Os valores permitidos devem estar no intervalo: 00:00 - 23:59Ao enviar um tamanho diferente de 5, nulo, vazio ou fora do intervalo.
    TPRRT0096O horário de início da operação customizada da Localidade [IDENTIFICADOR DA LOCALIDADE] deve ser menor que o horário de fim.Ao enviar o tamanho do início maior que o do fim, ou o do fim menor que o do início.
    TPRRT0097Há intersecções de horários de operação customizado da Localidade [IDENTIFICADOR DA LOCALIDADE] no dia [DIA_SEMANA]Quando for informado algum horário de funcionamento customizado com intersecções.
    TPRRT0098Opção inválida. As opções válidas são: Priorizar minha disponibilidade de veículos ou Reduzir a quantidade de rotasQuando for informado um valor que não corresponde as opções do ENUM.
    TPRRT0099O pedido [IDENTIFICADOR_PEDIDO] possui intervalo de início da janela de carregamento e final da janela de descarregamento maior que 90 dias

    O período entre o início da janela de carregamento e o fim da janela de

    descarregamento deve ser no máximo 90 dias.

    TPRTK0032A chave do token não foi informada.Retorno inválido para requisição que não envia o header "TPR_AUTHORIZATION" com a chave do token.
    TPRTK0033A chave do token informada não foi encontrada.Retorno inválido para requisição que enviar uma chave no header "TPR_AUTHORIZATION" que não existe na base de dados.
    TPRTK0034Seu token expirou. Entre em contato com: [EMAIL_SUPORTE]Retorno inválido para requisição que enviar uma chave no header "TPR_AUTHORIZATION" que não tenha um plano vigente.
    TPRTK0035Seu plano mensal já foi consumido, para continuar utilizando o produto acesse 'Meu Plano' e configure o consumo fora do pacote.Retorno inválido para requisição que enviar uma chave no header "TPR_AUTHORIZATION" que já tenha consumido toda quota de rotas e/ou roteirizações do plano vigente.
    TPRTK0036O seu período de pré-trial acabou! Você ainda pode experimentar o TOTVS PLANEJAMENTO DE ROTAS por 30 dias, gratuitamente, assinando o Trial através da TOTVS Store [Link TOTVS Store].Retorno inválido para requisição que enviar uma chave no header "TPR_AUTHORIZATION" que já tenha consumido toda quota de roteirizações ou finalizado o tempo de "TRIAL"
    TPRTK0037O seu trial chegou ao fim. Para continuar usando o TOTVS Planejamento de Rotas, faça a contratação acessando "https://partner.totvs.store/br/produto/totvs-planejamento-de-rotas.html".Retorno inválido para requisição que enviar uma chave no header "TPR_AUTHORIZATION" que já tenha finalizado o tempo de "TRIAL"

    Âncora
    TRPFrota_Ideal
    TRPFrota_Ideal

    Frota Ideal: A roteirização com a frota ideal, ocorre quando não limitamos as quantidades disponíveis dos veículos que serão utilizados em uma determinada roteirização, definimos apenas os tipos destes, por exemplo:

    Dada uma cesta de pedidos com vinte pedidos de 5.000 kg sem janela de coleta ou entrega e os veículos disponíveis são Carretas com capacidade de 25.000 kg e Trucks com capacidade de 10.000 kg: 

    Se eu não limito a quantidade disponível de veículos, o sistema roteirizara quatro rotas com Carretas, e esta é a frota ideal para este cenário;

    Se eu limito os veículos disponíveis em duas Carretas e vinte Truckso sistema roteirizara sete rotas, duas com Carretas e cinco com Trucks e esta é a melhor frota factível para este cenário, porem não é a frota ideal;

    Âncora
    boolean_tab
    boolean_tab

    Tabela de Boolean:

    Valor Assumido

    Valor recebido

    True

    "true"

    true12-1-2""
    False

    false

    0"false"null
    bla bla bla



    Anexos

    Anexos
    oldfalse