Árvore de páginas

IMPORTANTE

  • A integração TOTVS OMS x TOTVS Planejamento de Rotas (TPR) será descontinuada no próximo release (Outubro/2023).

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 roteirização, compostas pela chamada e pelo callback, nestas, receberemos uma lista pedidos e, quando possível, retornaremos 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
qualifiersStringNão4096String 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"})

callbackURLStringDepende4096URL 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
callbackAuthenticationTypeStringDepende4096Tipos de autenticação: BASIC, NONE
É 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==
callbackInfosTPRCallbackInfo[]Depende
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

TPRCallbackInfo, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
callbackURLStringSim4096URL de Callback.

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==

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"
pickupTimeWindowEndDate TimeNão
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

TPRRoutingLocality, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador da localidade.Texto livre, deve se único dentro da chamada."Carrefour 123-1"
nameStringNão4096Nome da localidade.Texto livre."Carrefour Vila Mariana"
countryStringSim3Paí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

TPRRoutingCustomizedOperation, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
weekDayStringSim3Dia 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"
endTimeStringSim5Horário de fim de operaçãoDeve estar no intervalo: 00:00 - 23:59"12:00"

TPRRoutingRestrictedVehicles, tipo de dado utilizado nas integrações do TPR
CampoTipoObrigatórioTamanhoDescriçãoValidaçõesExemplos
identifierStringSim4096Identificador do tipo do veículo.Deve constar na lista veículos disponíveis.

"Truck"

"Carreta"

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 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

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".


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".




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

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"

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"

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;

Tabela de Boolean:

Valor Assumido

Valor recebido

True

"true"

true12-1-2""
False

false

0"false"null


Anexos

  Arquivo Modificado
Arquivo TPR Roteirização draw.io diagram 07 abr, 2021 by Julio Vinicius Oliveira dos Santos
Arquivo PNG TPR Roteirização.png TPR Roteirização exported to image 07 abr, 2021 by Julio Vinicius Oliveira dos Santos