A funcionalidade Totvs Planejamento de Rotas (TPR) é uma funcionalidade implementada para otimizar o planejamento e execução das operações de transporte relacionadas às entregas e coletas.
A rotina calculará através de algoritmos, a melhor disposição de entregas e coletas, levando em consideração os veículos disponíveis, localidade de entrega/coleta, informações de tráfego, melhor rota e também irá disponibilizar os valores prévios referente às praças de pedágio.
Dentre as funcionalidades que englobam a solução, destacam-se:
A funcionalidade Configurador Planejamento de Rotas é a rotina principal para realizar o cadastro e habilitar a integração Totvs Planejamento de Rotas (TPR).
Nessa funcionalidade deverão ser informadas as chaves de acesso disponibilizadas e também os endereços virtuais (IP) referente a integração.
A rotina irá armazenar as informações referentes ao Totvs Planejamento de Rotas na tabela DLV - Cadastro Roteirizador e através da rotina TMSAC20 será possível incluir/alterar/deletar as informações.
URL Callback: Informar o IP e Porta externa do servidor do Protheus + /REST/V1/WSTPRNEOLOG/.
URL Mapa HTML: Informar o IP e Porta externa do servidor do Protheus + /ws/index.html.
URL Token: URL disponibilizada pelo TPR.
URL Geocode: URL disponibilizada pelo TPR.
URL Roteirização: URL disponibilizada pelo TPR.
Roteirizador: Informar 2 - TPR Neolog
Tipo Retorno: Informar 1- Callback
Bloqueado: Informar 2 - Não
Após realizado a inclusão do registro, clique em Outras Ações/ Testar Conexão para obter dados do Token para acesso.
As rotinas Cadastro de Cliente, Sequência de Endereço, Cadastro de Solicitantes e Wizard para envio das Filiais, foram atualizadas para que ao final da gravação as informações referentes ao endereço sejam enviadas automaticamente para a api de Geolocalização Síncrona, a fim de obter as coordenadas geográficas do respectivo endereço.
As coordenadas geográficas recebidas (Latitude e Longitude) são gravadas na tabela DAR - Referência Geográficas, e é possível visualiza-las através da rotina Cadastro de Referências Geográficas - TMSAO15
Importante: Para que toda a solução funcione perfeitamente é necessário obter as coordenadas geográficas de todos os clientes, de acordo com os respectivos endereços.
Na rotina de Programação de Carregamento (TMSA146), com a configuração da TPR realizada e ambiente com dados da Viagem Modelo 3, será disponibilizada a opção para integração com o Planejamento de Rotas (TPR).
Através da seleção dos documentos e seleção 'opcional' dos veículos (caso não seja selecionado nenhum veículo, o sistema enviará todos os veículos filtrados na Grid de Veículos, cujo status esteja 'Ativo' e 'Em Filial'), será possível enviar os dados para Roteirização.
Ao selecionar a opção 'Enviar Planejamento Rotas', será apresentada uma tela de parâmetros para que o usuário configure os campos necessários para integração.
As informações referente aos documentos enviados para TPR, serão registradas nas tabelas DMR - Roteirização TPR e DMS - Itens Roteirização TPR. Para cada roteirização iremos ter um identificador único que ficará registrado no campo Id. Roteiriza (DMR_IDROT) e com Status (DMR_STATUS / DMS_STATUS) 'Pendente'.
Importante: A Roteirização será somente para documentos com tipo de serviço de transporte Coleta e Entrega.
Dados do Layout para Integração TMS x TPR
orders | TPRRoutingOrders | Lista de pedidos a serem roteirizados. |
vehicles | TPRRoutingVehicles | Lista de veículos disponíveis para a roteirização. |
restrictions | TRPRoutingRestrictions | Restrições de roteirização. |
options | TPRRoutingOptions | Opções de roteirização. |
Documentos a serem Roteirizados (TPRRoutingOrders) | ||
---|---|---|
Campo TPR | Descrição TPR | SIGATMS |
identifier | Identificador do pedido | DT6 - |
weight | Peso total os itens do pedido em quilos | DA3_CAPACM |
volume | Volume total dos itens do pedido em metros cúbicos | DA3_VOLMAX |
pickupTimeWindowStart | Início da janela de carregamento | Data conforme configuração do parâmetro (Pergunte TMSA146TPR) |
pickupTimeWindowEnd | Final da janela de carregamento | |
deliveryTimeWindowStart | Início da janela de entrega | |
deliveryTimeWindowEnd | Final da janela de entrega | Data do Prazo de Entrega do Documento (DT6_PRZENT) |
serviceLoadDuration | Se não informado, ou menor que 30 minutos serão considerados 30 minutos de serviço | Parâmetro 09 (Pergunte TMSA146TPR) |
serviceUnloadDuration | Se não informado, ou menor que 30 minutos serão considerados 30 minutos de serviço | Parâmetro 10 (Pergunte TMSA146TPR) |
origin | Localidade de origem do pedido | Latitude e Longitude do Cliente Remetente |
destination | Localidade de destino do pedido | Latitude e Longitude do Cliente Destinatário |
Dados da Localidade da Origem / Destino do Documento (TPRRoutingLocality) | ||
---|---|---|
Campo TPR | Descrição TPR | SIGATMS |
identifier | Identificador da localidade. | Texto livre, deve se único dentro da chamada. |
country | País do endereço. | Fomato ISO 3166-1 alfa-3. |
latitude | Latitude. | Intervalo [-90; 90]. |
longitude | Longitude. | Intervalo [-180; 180]. |
operation | Funcionamento simplificado. | UNRESTRICTED (00:00-23:59 de Dom-Sab) |
Dados do Veiculo (TPRRoutingVehicles) | ||
---|---|---|
Campo | Descrição | DA3- Veiculos |
identifier | Identificador do tipo do veículo; | DA3_COD |
weightCapacity | Capacidade do veículo em quilos. | DA3_CAPACM |
volumeCapacity | Capacidade do veículo em metros cúbicos. | DA3_VOLMAX |
speed | Define a velocidade que dos veículos em uma roteirização. | DA3_VELOC |
quantity | Quantidade de veículos, semelhantes a este, disponíveis. | 1 |
tollAxes | Quantidade de eixos durante a viagem. | 0 |
tollReturnAxes | Quantidade de eixos durante o retorno para a origem. | 0 |
Dados de Restrições (TPRRoutingRestrictions) | ||
---|---|---|
Campo | Descrição | SIGATMS |
maxLoadingStops | Quantidade máxima de paradas de carregamento por viagem. | Se preenchido, deve ser maior que zero; Se passados valores quebrados apenas a parte inteira será considerada. |
maxUnloadingStops | Quantidade máxima de paradas de descarregamento por viagem. | Se preenchido, deve ser maior que zero. Se passados valores quebrados apenas a parte inteira será considerada. |
allowInterleaving | Permite carregamento após descarregamento na mesma viagem. Default: false | Tabela para validação de campos Boolean. |
maxDistanceBetweenLoadStops | Máxima distância, em km, entre paradas de carregamento. | Se preenchido, deve ser maior que zero. |
maxDistanceBetweenUnloadStops | Máxima distância, em km, entre paradas de descarregamento. | Se preenchido, deve ser maior que zero. |
TPRRoutingOptions, tipo de dado utilizado nas integrações do TPR | ||
---|---|---|
Campo TPR | Descrição TPR | SIGATMS |
capacityCriteria | Tipos de roteirização: WEIGHT, VOLUME ou BOTH | Opções: WEIGHT, VOLUME ou BOTH. |
routingInstantType | Define o instante a partir do qual as viagens podem ser expedidas: "Now" Inicio das viagens na primeira hora factível a partir do momento da roteirização mais uma hora. "D+1" Inicio das viagens amanhã no primeiro horário factível de carregamento. | Valores: "D+1", "NOW". |
considerReturnDistance | 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". |
minServiceDuration | O montante mínimo do tempo de serviço. | Se preenchido, não pode ser negativo, em Milissegundos. |
maxServiceDuration | O montante máximo do tempo de serviço. | Se preenchido, não pode ser negativo, em Milissegundos. |
driverRestTime | 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 |
tollCalculation | Calculo do pedágio | True |
O Painel Planejamento de Rotas (TMSAC19) é a rotina que armazenará as informações referentes ao envio de informações para a integração Totvs Planejamento de Rotas (TPR).
Nessa funcionalidade será possível :
- Consultar e verificar o status das Roteirizações e também quais os Documentos e/ou Notas Fiscais enviados e que estão Pendente (aguardando serem processados), Processados e ou Rejeitados.
- Cancelar as Roteirizações Pendentes, ou seja, roteirização que não houve retorno da TPR (por exemplo: URL inválida) . Ao efetuar o cancelamento, o status da Roteirização (DMR/DMS) e Controle de Integração (DLU) serão alterados para 'Cancelado'
- Visualizar o Mapa após a Roteirização dos Documentos terem sido processadas pela TPR.
A funcionalidade Controle de Integração Planejamento de Rotas (TMSAC23) é a rotina que armazenará as informações enviadas e recebidas. Toda a integração é enviado um arquivo no formato JSON, em que contém as informações referente à veículos, documentos, destinatários, e esse arquivo JSON é armazenado na tabela DLU - Controle Integração Roterizador.
Através dessa funcionalidade será possível obter informações JSON enviado, JSON recebido, data e hora do envio e recebimento e eventuais erros ou falhas.
A Roteirização de Documentos e Veículos (TMSAC21) é a principal funcionalidade da integração. Nessa rotina que serão recebidos e processadas as informações referente ao cálculo de rotas e carregamento de documentos. O Planejamento de Rotas ITPR) irá calcular a melhor disposição de cargas, ordem de carregamento, ordem de descarregamento, sequencia de entrega e melhor rota de acordo com os veículos disponíveis.
A funcionalidade irá receber automaticamente os documentos processados, como também os documentos rejeitados (por exemplo o peso do documento ultrapasse o limite máximo do veiculo), atualizando o status da Roteirização (DMR_STATUS) para 'Processado'.
Documentos Processados:
- O sistema irá criar de maneira automática a Programação de Carregamento (TMSA146) com os veículos e documentos calculados, dessa maneira espera-se que tenha um melhor aproveitamento da frota de veículos e também reduza-se os custos operacionais de inclusão de programações de carregamento. O numero da Programação de Carregamento gerado, será registrado no campo Chave Externa (DMS_CHVEXT)
- O status do Item da Roteirização será atualizado para 'Processado' (DMS_STATUS)
Após gerada a Programação de Carregamento, o usuário deverá alterar a Programação de Carregamento, informando o Código da Rota e o Código do Motorista (caso o mesmo não esteja vinculado ao veículo).
Ao efetivar a Programação de Carregamento, será gerada a viagem, através da rotina automática da Viagem Modelo 3. A sequencia para inclusão dos documentos na viagem, serão de acordo com a sequencia de descarregamento recebido da TPR.
Documentos Rejeitados:
- O status do Item da Roteirização será atualizado para 'Rejeitado' (DMS_STATUS)
- No caso de uma NF Cliente (DTC), se a mesma estiver vinculada a um Lote, onde as demais NFs Cliente (DTC) foram processadas com sucesso na mesma roteirização, as NFCs rejeitadas serão vinculadas a um novo lote. O numero do novo Lote será gravado na Chave Externa da DMS (DMS_CHVEXT)
A funcionalidade Cálculo de valor de praças de pedágio (TMSAC21) é obtida em conjunto com a Roteirização de documentos e veículos, e será recebida e armazenada até o momento da Efetivação da Programação de Carregamento, no qual ao realizar a efetivação uma Viagem Mod. 3 (TMSAF60) será gerada e o valor do pedágio será incluído automaticamente no Complemento da Viagem (DTR - Complemento da Viagem) no campo DTR_VALPDG.
A funcionalidade Visualização de Mapa e Plotagem de Rotas (TMSAC24) é a funcionalidade que permitirá ao usuário visualizar em apenas uma interface qual a rota e sequência de entrega planejada. Nessa funcionalidade também será possível visualizar os Documentos, Praças de pedágio, Quantidade de paradas, Peso transportado, Volume transportado, Início e Fim da operação, Distância total, Documentos rejeitados.
A rotina trabalhará em conjunto com a rotina de Roteirização de documentos e veículos, e poderá ser acessada à partir das rotinas: Painel Planejamento de Rotas, Programação de Carregamento e Viagem Mod. 3.
|
<!-- esconder o menu --> <style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |