Histórico da Página
Aviso | ||
---|---|---|
| ||
|
Conteúdo
Âncora | ||||
---|---|---|---|---|
|
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
1. Contexto de Negócio
O TOTVS OMS passa a ter uma nova funcionalidade para realizar a montagem das cargas, o sequenciamento das entregas e a visualização do mapa das entregas.
Com base na seleção de um grupo de pedidos Pedidos ou itens de pedidos Pedidos de vendas Vendas liberados, veículos e mais algumas configurações serão geradas cargas automaticamente de forma a otimizar a ocupação dos veículos e traçar a melhor rota de entrega dos pedidosPedidos.
Para utilizar essa funcionalidade, basta aderir ao plano (Complemento do termo de uso da TOTVS Store) que mais se adequa ao seu cenário e seguir as orientações descritas na sequência desse deste documento.Mais informações
Informações | ||||
---|---|---|---|---|
| ||||
Informações adicionais sobre como será realizada a montagem da carga/sequenciamento da entrega podem ser |
obtidas no documento: |
TOTVS Planejamento de Rotas. |
2. Instalação / Configuração
Informações | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Entretanto, já é possível utilizar a mesma estando nos Releases 12.1.27 ou
Importante |
Após a atualização dos pacotes da expedição contínua, caso desejar conferir se a aplicação dos pacotes está correta, na tabela abaixo são listados os fontes e suas versões mínimas:
Módulo
Rotina
Descrição
Versão Mínima
Faturamento
FATXFUN.PRX
Funções Genéricas FAT
05/11/2021 19:21:13
Faturamento
MATA410.PRX
Pedidos
05/11/2021 19:21:13
Faturamento
MATA461.PRX
Preparação dos Documentos de Saída
05/11/2021 19:21:13
Faturamento
MATV410.PRW
Funções para o Estorno de Pedidos
05/11/2021 19:21:13
OMS
OMSA200.PRW
Montagem de Carga
25/11/2021 11:53:05
OMS
OMSATPR1.PRW
Envio de Pedidos - TPR (Menu)
23/11/2021 23:09:29
OMS
OMSATPR1A.PRW
Funções do Envio de Pedidos - TPR.
23/11/2021 23:09:29
OMS
OMSATPR2.PRW
Processamento do CallBack do retorno das viagens/carga - TPR.
25/11/2021 11:53:05
OMS
OMSATPR3.PRW
Visualização do mapa da carga gerada (OMSA200 > Ações Relacionadas > Visualizar Mapa).
16/11/2021 16:38:22
OMS
OMSATPR4.PRW
Validações para a alteração e estorno de pedidos integrados com o TPR.
16/11/2021 16:38:22
OMS
OMSXFUN.PRW
Funções Genéricas WMS.
16/11/2021 16:38:22
TMS
TMSAC18.PRW
Métodos de Envio - Integração Planejamento de Rotas.
12/11/2021 17:41:08
TMS
TMSAC19.PRW
Painel Integração Planejamento de Rotas (TPR): Rotina que armazenará as informações referentes ao envio de informações para a integração TOTVS Planejamento de Rotas (TPR).
21/10/2021 15:44:14
TMS
TMSAC20.PRW
Configuração Planejamento de Rotas: Rotina principal para realizar o cadastro e habilitar a integração TOTVS Planejamento de Rotas (TPR).
24/11/2021 08:36:16
TMS
TMSAC23.PRW
Controle de Integração Planejamento de Rotas: Rotina que armazenará as informações enviadas e recebidas. Toda a integração é enviado um arquivo no formato JSON e esse arquivo é armazenado na tabela DLU - Controle Integração Roteirizador.
18/10/2021 08:31:30
TMS
TMSAC24.PRW
Montagem e visualização do Mapa.
10/11/2021 10:57:59
TMS
TMSAC25.PRW
Montagem e visualização do Mapa.
08/11/2021 17:15:43
TMS
TMSAO15.PRW
Cadastro de Referência Geográfica.
08/11/2021 17:14:03
TMS
TMSAO48.PRW
Integração Rota Inteligente.
04/11/2021 19:11:31
TMS
TMSO46API.PRW
Métodos CallBack Planejamento de Rotas.
18/10/2021 09:29:54
TMS
index.html
Arquivo para exibição do mapa na pasta Web.
03/12/2021 15:51:41
TMS
tprchannel.js
Arquivo para exibição do mapa na pasta Web.
18:10:2021 08:22:31
|
Após a atualização dos pacotes da expedição contínua, caso seja necessário conferir se a aplicação dos pacotes está correta, na tabela abaixo são listados os fontes e suas versões mínimas:
Módulo | Rotina | Descrição | Versão Mínima |
---|---|---|---|
Faturamento | FATXFUN.PRX | Funções genéricas FAT. | 05/11/2021 19:21:13 |
Faturamento | MATA410.PRX | Pedidos. | 05/11/2021 19:21:13 |
Faturamento | MATA461.PRX | Preparação dos documentos de saída. | 05/11/2021 19:21:13 |
Faturamento | MATV410.PRW | Funções para o estorno de pedidos. | 05/11/2021 19:21:13 |
OMS | OMSA200.PRW | Montagem de carga. | 24/05/2022 13:42:41 |
OMS | OMSATPR1.PRW | Envio de pedidos - TPR (Menu). | 04/01/2023 13:48:41 |
OMS | OMSATPR1A.PRW | Funções do envio de pedidos - TPR. | 03/01/2023 11:41:10 |
OMS | OMSATPR2.PRW | Processamento do callback do retorno das viagens/carga - TPR. | 03/01/2023 11:41:10 |
OMS | OMSATPR3.PRW | Visualização do mapa da carga gerada (OMSA200 > Ações Relacionadas > Visualizar Mapa). | 21/10/2022 22:42:49 |
OMS | OMSATPR4.PRW | Validações para a alteração e estorno de pedidos integrados com o TPR. | 08/09/2022 07:20:50 |
OMS | OMSATPR5.PRW | Envio de roteirização TPR via OMSA200. | 22/11/2022 11:05:49 |
OMS | OMSATPR6.PRW | Recebimento do callback de roteirização via OMSA200. | 21/10/2022 22:42:49 |
OMS | OMSATPR7.PRW | Atualização de rota e carga via callback. | 08/09/2022 07:20:50 |
OMS | OMSXFUN.PRW | Funções genéricas OMS. | 16/11/2021 16:38:22 |
TMS | TMSAC18.PRW | Métodos de envio - Integração planejamento de rotas. | 22/11/2022 18:37:50 |
TMS | TMSAC19.PRW | Painel Integração Planejamento de Rotas (TPR): | 21/10/2021 15:44:14 |
TMS | TMSAC20.PRW | Configuração Planejamento de Rotas: | 08/09/2022 07:20:50 |
TMS | TMSAC23.PRW | Controle de Integração Planejamento de Rotas: | 08/09/2022 07:20:50 |
TMS | TMSAC24.PRW | Montagem e visualização do mapa. | 08/09/2022 07:20:50 |
TMS | TMSAC25.PRW | Montagem e visualização do mapa. | 08/09/2022 07:20:50 |
TMS | TMSAO15.PRW | Cadastro de referência geográfica. | 03/01/2023 16:12:42 |
TMS | TMSAO48.PRW | Integração Rota Inteligente. | 23/11/2022 15:46:34 |
TMS | TMSO46API.PRW | Métodos callback Planejamento de Rotas. | 21/10/2022 22:42:49 |
TMS | index.html | Arquivo para exibição do mapa na pasta Web. | 23/05/2022 17:30:42 |
TMS | tprchannel.js | Arquivo para exibição do mapa na pasta Web. | 18/10/2021 08:22:31 |
2.1. Arquivos Relacionados ao Mapa (Data / Web)
Baixe aqui os arquivos index.html e tprchannel.js e salve na pasta Web do seu ambiente Protheus.
Exemplo: C:\Bases\environment\data\web. Estes arquivos serão mencionados novamente na configuração do Appserver.ini (2.4).
2.2. Atualização do Help
Para atualizar o Help de campos é necessário inserir (somente) o arquivo da expedição contínua hlppor.txt na pasta systemload e seguir os passos de acordo com o documento: Atualização de Help.
2.3. Atualização do Menu do OMS
Atualize o menu do Protheus OMS baixando somente o arquivo sigaoms.xnu, de acordo com o seu ambiente:
Atualização de menu com Dicionário no Banco: Atualização de menus que estão no Banco de Dados.
Atualização de menu sem Dicionário no Banco: Atualizar menus dos módulos.
A atualização em questão cadastrará as novas rotinas de menu:
Rotina | Menu |
---|---|
OMSATPR1 | Envio de Pedidos - TOTVS Planejamento de Rotas (TPR) |
Referência Geográfica | |
Painel Integração Planejamento de Rotas | |
Controle de Integração Planejamento de Rotas | |
Configuração Planejamento de Rotas |
2.4. Configurações no Appserver.ini
Para realizar as integrações com o TPR é necessário possuir a configuração REST no ambiente, sendo possível reutilizar um Appserver ou gerar outro para receber as integrações REST.
Também é necessário realizar 3 blocos de configurações no Appserver.ini, conforme exemplos a seguir.
2.4.1. Configuração do REST do Protheus
Link para o documento: 1. Configuração do REST do Protheus.
Bloco de código | ||||
---|---|---|---|---|
| ||||
;** |
2.1. Arquivos Relacionados ao Mapa (Data / Web)
Baixe aqui os arquivos index.html e tprchannel.js e salve na pasta web do seu ambiente.
Exemplo: C:\Bases\environment\data\web. Estes arquivos serão mencionados novamente na configuração do appserver.ini.
2.2. Atualização do Help
Para atualizar o help de campos é necessário inserir (somente) o arquivo da expedição contínua hlppor.txt na pasta systemload e seguir os passos conforme documentação: Como atualizar help no Protheus
2.3. Atualização do Menu do OMS
Atualize o menu do Protheus OMS baixando somente o arquivo sigaoms.xnu conforme o seu ambiente:
Atualização de menu com dicionário no banco: Atualização de menus que estão no Banco de Dados
Atualização de menu sem dicionário no banco: Atualizar menus dos módulos
A atualização de menu irá cadastrar os novos programas de menu:
Rotina
Menu
OMSATPR1
Envio de Pedidos
TMSAO15
Cadastro Referência Geográfica
TMSAC19
Painel Integração Planejamento de Rotas
TMSAC23
Controle de Integração Planejamento de Rotas
TMSAC20
Configuração Planejamento de Rotas
2.4. Configurações no Appserver.ini
Para realizar as integrações com o TPR é necessário possuir a configuração REST no ambiente. Pode ser reutilizado um Appserver ou criar outro Appserver para receber as integrações REST.
Também é necessário realizar 3 blocos de configurações dentro do Appserver.ini, conforme exemplos a seguir.
Configuração do REST do Protheus
Link para o documento: 1. Configuração do REST do Protheus
Bloco de código | ||||
---|---|---|---|---|
| ||||
;************************************ **** ;*** REST ;************************************ [HTTPV11] Enable=1 Sockets=HTTPREST MAXSTRINGSIZE=500 [HTTPREST] Port=8084 URIs=URIHTML SECURITY=0 [URIHTML] URL=/rest PrepareIn=All Instances=1,2 CORSEnable=1 AllowOrigin=* [HTTPJOB] MAIN=HTTP_START ENVIRONMENT=environment1 [ONSTART] JOBS=HTTPJOB RefreshRate=120 |
|
2.4.2. Configuração HTTP
As configurações HTTP servem para a exibição do mapa de roteirizações.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[HTTP] ENABLE=1 PATH=C:\Bases\environment\data\web PORT=8021 INSTANCES INSTANCES=1,10 SESSIONTIMEOUT=60 INSTANCENAME=WS_HTTP [10.173.11.38:8021/ws] ENABLE=1 PATH=C:\Bases\environment\data\web ENVIRONMENT=environment1 INSTANCENAME=WS_OMSCARGA RESPONSEJOB=JOB_WS_OMS DEFAULTPAGE=wsindex.apw |
Informações | ||||
---|---|---|---|---|
| ||||
|
2.4.3. Configuração de Portais e Webservices
Link para o documento:
Configurar Portais e Webservices.
Bloco de código | ||||
---|---|---|---|---|
| ||||
[JOB_WS_OMS] TYPE=WEBEX ENVIRONMENT=environment1 INSTANCES=1,10 INSTANCENAME=JOB_WS_OMS ONSTART=__WSSTART ONCONNECT=__WSCONNECT PREPAREIN=All SIGAWEB=WS |
2.5. Campos e Parâmetros Utilizados (SIGACFG)
2.5.1. Campos
Informações | ||||
---|---|---|---|---|
| ||||
MarqueAssinale, via SIGACFG, os seguintes campos como usadousados:
|
Parâmetros
|
2.5.2. Parâmetros
Parâmetro | Descrição | Valor |
---|---|---|
MV_ROTAINT | Habilita rotas inteligentes. | .T. |
MV |
Parâmetro
Descrição
Valor
MV_ROTAINT
Habilita rotas inteligentes
.T.
_TPRCLOG | Define a visualização do log de operações do TPR no ConsoleFile configurado. Informe .F. após a implantação. Inclua no ini do REST, na seção do |
Environment, a chave FWTRACELOG=1. | .F. |
MV_ |
OMSLROT |
Define se é possível alterar a rota gerada. | .F. |
MV_ |
Indica qual código de operação será enviado ao TOTVS GFE, na geração da carga. O mesmo deve ser cadastrado previamente no TOTVS GFE e vinculado.
Esse parâmetro alimentará o campo DAK_CDTPOP.
1
MV_CDCLFR
Código da Classificação de Frete Padrão utilizado na importação de Documentos de Carga. Esse parâmetro alimentará o campo DAK_CDCLFR.
MV_OMSENTR
Define o número de incremento do campo Sequência de Entrega (DAK_SEQENT), na rotina OMSA200 (Montagem de Cargas).
Deve ser informado o conteúdo padrão igual a 5 (cinco).
5
2.6. Configuração das URLs de Integração TPR
2.6.1. Configuração de E-mail do Usuário Para Utilização do TPR
Acesse o SIGACFG > Usuário > Senhas > Usuários e selecione um usuário para receber o token de ativação TPR.
Este token será enviado após a configuração do TPR na rotina TMSAC20 (Config. Planejamento de Rotas).
2.6.
OMSUROT | Define a URL de callback da rota alterada. | URL não obrigatória. |
MV_OMSPROT | Na integração TPR, ao selecionar o funcionamento de entregas customizadas, define o funcionamento padrão para usuários sem regras de entrega. | 1 = Sem restrição (padrão) Se vazio, informa uma inconsistência de integração, caso não haja Janelas de Entregas definidas e o parâmetro do funcionamento das entregas esteja definido como customizado. |
MV_HVERAO | Verifica se o local físico do servidor está em Horário de Verão (MV_HVERAO). |
|
MV_CDTPOP | Indica qual o código de operação será enviado ao TOTVS GFE, na geração da carga, sendo que o mesmo deve ser cadastrado previamente no TOTVS GFE e vinculado. Esse parâmetro alimentará o campo DAK_CDTPOP. | 5 (cinco) |
MV_CDCLFR | Código da Classificação de Frete Padrão utilizado na importação de Documentos de Carga. Esse parâmetro alimentará o campo DAK_CDCLFR. | |
MV_OMSENTR | Define o número de incremento do campo Sequência de Entrega (DAK_SEQENT), na rotina OMSA200 (Montagem de Cargas). | Informe o conteúdo padrão igual a 5 (cinco). |
MV_PESOCAR | Quando o parâmetro MV_PESOCAR estiver como "L" será enviado o campo B1_PESO; caso contrário, B1_PESBRU. | L |
2.6. Configuração das URLs de Integração TPR
2.6.1. Configuração de E-mail do Usuário Para Utilização do TPR
- Acesse o SIGACFG > Usuário > Senhas > Usuários e selecione um usuário para receber o token de ativação TPR.
- Este token será enviado após a configuração do TPR na rotinaTMSAC20 (Config. Planejamento de Rotas).
2.6.2. Acesse Atualizações > Planejamento de Rotas > Config. Planejamento de Rotas (TMSAC20)
e realize- Realize as parametrizações conforme descrito
- a seguir:
Campo | Descrição |
---|---|
ID Cliente | Campo livre para identificação. |
URL Callback (REST) | Essa URL é enviada do Protheus para a API TPR, ao solicitar a roteirização TPR. Nesta solicitação, a API TPR realizará a rejeição ou confirmação dos Pedidos para planejamento. Se for confirmado o recebimento, após alguns minutos, a API TPR consumirá a URL Callback (URL REST) do servidor Protheus, para enviar os dados referentes ao cálculo de roteirização. Informe o IP e Porta externa do servidor |
REST do Protheus (IP:PORTA + /REST/V1/WSTPRNEOLOG/) para utilização no recebimento dos retornos do TOTVS Planejamento de Rotas (TPR) referente a Roteirização.
|
|
|
|
|
|
| |
Bloqueado |
Informe 2 - Não. |
c. Tipo Retorno:
Token | Campo não editável. Será preenchido automaticamente no teste de conexão a seguir. |
Data Token | Campo não editável. Será preenchido automaticamente no teste de conexão a seguir. |
Hora Token | Campo não editável. Será preenchido automaticamente no teste de conexão a seguir. |
Tipo Retorno | Informe 1- Callback. |
URL Mapa HTML |
Informe o IP e Porta |
do servidor Webservice do Protheus (IP:PORTA + |
/ws/index.html), para utilização no serviço de Mapa do |
TOTVS Planejamento de Rotas (TPR). |
e. Roteirizador:
IP e Porta | Informados no AppServer, em Configurações HTTP, essa informaçãoé importante para apresentar o mapa. |
Roteirizador | Informe 2 - TPR Neolog. |
URL Token |
URL disponibilizada pelo TPR para controle do Token |
do TOTVS Planejamento de Rotas (TPR). |
Utilize HTTPS://PLANEJAMENTOROTAS.TOTVS.COM/V1/TPR-TOKEN-CREATION | |
URL Roteirização | URL disponibilizada pelo TPR para controle dos serviços de Roteirização do |
TOTVS Planejamento de Rotas (TPR). |
Utilize HTTPS://PLANEJAMENTOROTAS.TOTVS.COM/V1/TPR-ROUTING | |
URL Geocode | URL disponibilizada pelo TPR para controle dos serviços de Geolocalização |
do TOTVS |
Planejamento de Rotas (TPR). |
Utilize HTTPS://PLANEJAMENTOROTAS.TOTVS.COM/V1/TPR-GEOLOCATION-SYNC | |
URL Geo Assi | URL disponibilizada pelo TPR para controle dos serviços de Geolocalização Assíncrona doTOTVS Planejamento |
de Rotas (TPR). |
Os campos Token, Data Token e Hora Token
Token / Data Token / Hora Token | Estes campos serão preenchidos automaticamente pelo retorno do TOTVS Planejamento de Rotas (TPR). |
Informações | ||||
---|---|---|---|---|
| ||||
Acessar o Protheus com o usuário que possua o e-mail que fará o vínculo com a API TPR. |
- Após ser realizada a inclusão do registro, clique em Outras Ações > Testar Conexão para obter os dados do token do
- TPR.
- Esta ação enviará um e-mail e será necessário clicar em Ativar Token:
Informações | ||||
---|---|---|---|---|
| ||||
|
3. Processo de Utilização
3.1. Premissas
É necessário preencher o endereço completo dos clientes (endereço com número, CEP, bairro, cidade, estado e país) ou gerar as geolocalizações para as entidades na rotina TMSA015 (Referência Geográfica).
Quanto
melhor for a qualidade das informações do endereço, maior a probabilidade de identificar corretamente as coordenadas atreladas ao mesmo.
Também será possível verificar no mapa as coordenadas geolocalizadas e, caso as mesmas não representem o ponto exato, pode ser ajustado manualmente o marcador para a posição exata.
Os veículos devem estar cadastrados na rotina OMSA060 (Cadastro de Veículos).
Os pedidos de vendas (MATA410 - Pedidos de Venda) devem ter sido gerados e liberados (MATA440 - Liberação de Pedidos de Venda).
3.2. Como Enviar Pedidos Para a Roteirização
Execute a rotina OMSATPR1 (Envio de Pedidos) - TOTVS Planejamento de Rotas (TPR).
Na tela Filtro para os Pedidos, informe os filtros para a exibição dos
Pedidos de
Venda e clique em OK.
Selecione os
Pedidos que devem ser enviados para a roteirização.
Selecione os veículos que
devem ser considerados no cálculo para utilização
.
- Informe
- a quantidade de eixos para o cálculo do pedágio de cada veículo selecionado. Caso não sejam preenchidos os eixos, a quantidade será obtida por meio do Cadastro do Veículo.
Informe os parâmetros para a roteirização.
Clique em Enviar.
Neste momento, os Pedidos e a roteirização permanecerão na situação Pendente, até o retorno da roteirização.
- Caso necessário, clique em Integrações do Item para visualizar
- a situação do envio e todos os itens de
- Pedidos enviados para a roteirização.
3.3. Como Consultar o Status dos Pedidos Enviados e o Status da Integração
Acesse a rotina TMSAC19 (Painel Integração Planejamento de Rotas (TPR)).
A tabela superior apresenta a identificação da roteirização e seustatus.
A tabela inferior apresenta os itens de pedidos enviados e a carga relacionada a cada item.
No exemplo abaixo, foi necessária a geração de uma carga somente.
Ao clicar em Controle de Integração
serão visualizados os
JSONS da integração e as informações de data/hora de envio e data/hora de retorno do processamento.
3.4. Como Visualizar as Roteirizações
Acesse a rotina OMSA200 (Montagem de Carga).
Informe os parâmetros para a visualização das cargas;
Encontre a carga gerada pelo TPR (INTEGRADO COM TPR (MAPA DISPONÍVEL) e clique em Visualizar Mapa TPR.
Mais informações sobre as rotinas podem ser consultadas na tabela abaixo:
TMSAC20 - Configuração Planejamento de Rotas
Informe o novo campo DA3_VELOC.
Se este campo não for preenchido, o TPR considerará 30km/h.
Verifique as coordenadas geradas para os clientes e a localização no mapa.
Importante
- A rotina permite que sejam geradas as coordenadas para o cliente, mesmo que ele não possua endereço cadastrado.
- É possível alterar as coordenadas geradas de um cliente por meio do marcador no mapa. Deste modo, é possível destacar o ponto exato para o endereço, caso não existam formas de geolocalizá-lo via api.
MATA010 - Produtos
MATA410 - Pedidos
Selecione os pedidos, os veículos e informe os parâmetros (F6).
Ao enviar os pedidos, o browse de pedidos será atualizado e este pedidos aparecerão com o status Pendente.
Será gerada uma roteirização na tabela DMR (Roteirização - TPR) e os itens serão identificados na tabela DMS (Itens Roteirização - TPR).
Para visualizar esta integração, clique em Integrações do Item, na rotina OMSATPR1 (Envio de Pedidos) ou acesse diretamente a rotina TMSAC19 (Consulta Planejamento de Rotas).
Apresenta o status da integração, bem como, o resultado de cada item, sendo que os itens são gravados separadamente através de cada SC9 do pedido liberado.
Ao realizar a seleção de um pedido para integração, serão considerados apenas os itens liberados.
Os itens poderão ser apresentados nos seguintes status:
- Pendente: quando o item foi enviado e está aguardando retorno do planejamento TPR.
- Processado: quando houve retorno do TPR e foi gerada carga (viagem) para o item. Apresenta o código da carga gerada para o item. Permite visualizar o mapa através da rotina. Existem 2 possibilidades: Todas as cargas geradas através do botão do browse superior Visualizar mapa ou apenas a carga relacionada a um item (DMS), clicando em Visualizar mapa no botão do browse inferior.
- Rejeitado: quando houve retorno do TPR, mas o mesmo informa que por regra de negócio informada para planejamento é impossível gerar viagem para o item). Exemplo: a capacidade do veículo é menor do que qualquer um dos pedidos selecionados.
- Falha no processamento: quando houve alguma inconsistência no ERP, que não permitiu o processamento com os dados de retorno. Apresenta o motivo da rejeição do TPR. Exemplo: quando o Protheus não foi configurado corretamente (patch ou dicionários).
O TMSAC19 permite o cancelamento do envio para a alteração dos pedidos por meio do botão Cancelar Envio. A alteração do envio não será realizada no TPR. Este cancelamento apenas desconsidera qualquer resultado do planejamento.
Nessa rotina é possível acionar o JSONS gerados na API de roteirização, por meio da aba Controle de Integração. Esta aba acessa a rotina TMSAC23 (Controle de Integração).
Apresenta o JSON de envio de pedidos, no qual o TPR realiza uma validação prévia para processamento e retorna ao Protheus.
Caso a validação retorne sucesso, o TPR mantém o processamento e retornará um CallBack para o Protheus, após alguns minutos.
Todas essas mensagens são registradas para análise, caso seja necessário.
No sucesso do planejamento TPR serão geradas as cargas, sendo que estas poderão ser visualizadas.
O campo que apresenta a disponibilização do mapa é o DAK_STROTE, com a informação Integrado com TPR (Mapa disponível).
Para visualizar o mapa, clique em Outras Ações > Visualizar Mapa TPR.
A visualização do mapa apresenta a ordem de entregas, o tempo de serviço, quilometragem, peso, volume, duração, o retorno para a filial (caso parametrizado), viagem extra (uma viagem extra é quando o TPR informa que durante a análise faltaram veículos para todos os pedidos. Para poder entregar os pedidos, o planejamento sugeriu reutilizar um dos veículos enviados).
Importante
- O ponto 1 será sempre a partida (filial).
- O retorno para a filial considera mais um ponto de parada.
- Uma carga roteirizada pode ser alterada, mas perderá o mapa gerado.
- O estorno na carga liberará os itens dos pedidos da carga para serem utilizados em outro planejamento no OMSATPR1 (Envio de Pedidos).
- O motorista pode ser informado depois da carga gerada.
- O campo DAK_INTTPR informa se a origem da carga é no TPR.
- O campo DAK_VIAEXT informa se é uma carga/viagem extra.
- O campo de time service é calculado via integração com base na subtração da data/hora de saída da entrega - data/hora de saída de chegada na entrega.
Ao realizar a alteração de um pedido que foi enviado para roteirizar, o usuário receberá um alerta sobre o relacionamento.
Neste caso, o usuário tem a opção de manter o pedido sem alteração e manter a roteirização ou de continuar a alteração do pedido e perder os dados de roteirização.
3.5. Como Definir a Geolocalização Exata
Acesse a rotina TMSA015 (Referência Geográfica).
Inclua ou altere a geolocalização de um usuário.
Clique em Confirmar.
3.6. Como Realizar a Roteirização Via OMSA200
- Acesse a rotina OMSA200 (Montagem de Carga), com a carga montada, e clique em Carregamento > Associar Veículo.
- Informe o veículo da carga.
- Informe a quantidade de eixos para o cálculo do pedágio do veículo selecionado, clicando em Outras Ações > Qtd. de Eixos Roteirização TPR.
- Caso os eixos não sejam preenchidos, a quantidade será obtida pelo cadastro do veículo.
- Informe os parâmetros para o planejamento da rota em Outras Ações > Parâmetros Roteirização TPR.
- Clique em Outras Ações > Planejar Roteirização TPR.
- Aguarde alguns minutos.
- Se a filial e os usuários não estiverem geolocalizadas, o Sistema efetuará a busca das coordenadas no envio do planejamento para o TPR.
- Após aguardar alguns minutos, a roteirização será finalizada e apresentada com os pedágios e os pontos de paradas de cada cliente.
- Na roteirização abaixo foi considerado o retorno para a Filial, totalizando 5 pontos de parada do caminhão:
3.7. Como Gerar um Ponto de Passagem na Roteirização
- Acesse a rotina OMSA200 (Montagem de Carga).
- Clique na carga roteirizada e, após, selecione a opção Outras Ações > Visualizar Mapa TPR.
- Clique em Novo ponto e selecione o intervalo de paradas.
- Clique duas vezes na área do mapa para adicionar o ponto de passagem e confirme.
- Aguarde alguns segundos e clique em Atualizar ou pressione a tecla F5, para atualizar os dados da roteirização.
3.8. Como Alterar um Ponto de Entrega na Roteirização
- Acesse a rotina OMSA200 (Montagem de Carga).
- Clique na carga roteirizada e, após, selecione a opção Outras Ações > Visualizar Mapa TPR.
- No mapa, clique em Alterar localidade.
- Mova o ponto do mapa cuja localidade exata deve ser alterada e confirme.
- Aguarde alguns segundos e clique em Atualizar ou pressione a tecla F5 para atualizar os dados da roteirização.
3.9. Como Alterar a Ordem das Entregas na Roteirização
- Acesse a rotina OMSA200 (Montagem de Carga).
- Clique na carga roteirizada e, após, selecione a opção Outras Ações > Visualizar Mapa TPR.
- No mapa, clique em Trocar ordem das paradas.
- Selecione as paradas cuja ordem deve ser alterada e confirme.
- Aguarde alguns segundos e clique em Atualizar ou pressione a tecla F5 para atualizar os dados da roteirização.
3.10. Como Funcionam as Restrições de Janelas de Entrega na Roteirização TPR
Para ativar esta funcionalidade, em Outras Ações > Parâmetros do planejamento, selecione a opção Funcionamento entregas = Customizado.
Esta opção deve ser selecionada na tela de Envio de Pedidos - TOTVS Planejamento de Rotas (TPR) ou na rotina OMSA200 (Montagem de Carga).
Para a integração, o cadastro das regras e exceções nas rotinas OMSA120 (Cadastro de Regras de Entregas) e OMSA350 (Calendário de Janelas de Entregas) é limitado.
- São consideradas as regras para os usuários e as exceções para os veículos.
Informações | ||
---|---|---|
| ||
|
3.10.1 Cadastro de Regras Para Cliente(s)
Informe o grupo de usuáriosou o cliente/loja da regra.
Selecione ou não um calendário.
Se for selecionado um calendário, este deve ser do tipo Semanal, no qual são informados os dias da semana de trabalho.
Se não for selecionado um calendário, serão considerados todos os dias da semana com os horários preenchidos.
Informe somente o tipo Regra.
3.10.2 - Cadastro de Exceções Para Veículos
Por padrão, as regras de exceção dos veículos são validadas nas integrações TPR via Envio de Pedidos - TOTVS Planejamento de Rotas (TPR) (OMSATPR1) ou OMSA200 (Montagem de Carga).
Sendo assim, não é necessário selecionar a opção Funcionamento entregas = Customizado, para validar os veículos.
- Informe o grupo de usuários ou o usuário/loja da regra ou exceção para os veículos.
- Ao informar o veículo, este não será considerado na roteirização TPR para este usuário ou grupo de usuários.
- Ao informar o grupo de veículos, este não será considerado na roteirização TPR para este usuário ou grupo de usuários.
3.11. Como Cancelar Uma Roteirização Enviada
É possível desconsiderar o retorno da roteirização enviada, mas não cancelar a roteirização solicitada.
Ou seja, o ticket de integração será contabilizado, mas o retorno será desconsiderado no Protheus.
3.12. Como Restringir a Alternância de Entrega Entre Estados
3.13. Como Obter os Resultados da Busca de Geolocalizações
O log de integração é salvo quando a busca da geolocalização é realizada pela rotina OMSA200 (Montagem de Carga) ou OMSATPR1 (Envio de Pedidos - TPR).
Se o cliente/fornecedor já possui geolocalização (TMSA015), a busca não será realizada novamente.
- Para buscar, efetue a exclusão da entidade na rotina TMSAO15 (Referência Geográfica) e realize a roteirização.
- Após, acesse a rotina TMSAC23 (Controle de Integração Planejamento Rotas).
- Gere um filtro para localizar o registro de integração desejado.
- Para o caso abaixo é Chave Entid. igual a " 00000501" (Filial da entidade + Código da entidade + Loja da Entidade).
- Filtre o registro desejado.
- Clique em Visualizar.
- O conteúdo do campo Msg Envio (DLU_ENVIO) é o Json de envio para obter as coordenadas geográficas.
- E o conteúdo do campo Retorno Post (DLU_RETENV) é a resposta da API para a solicitação realizada.
- Mais informações sobre as rotinas podem ser consultadas na tabela abaixo:
Rotina | Implementação | |||||||
---|---|---|---|---|---|---|---|---|
TMSAC20 - Configuração Planejamento de Rotas | Parametrize as URLs e gere o token. | |||||||
MATA030 - Cadastro de Clientes | Verifique os endereços dos usuários e o País. | |||||||
EICA100 - Países | Verifique a sigla BRA, para o país Brasil. | |||||||
OMSA060 - Veículos | Informe o novo campo:
| |||||||
TMSAO15 - Referência Geográfica |
| |||||||
MATA010 - Produtos |
| |||||||
MATA410 - Pedidos de Venda |
| |||||||
OMSATPR1 - Envio de Pedidos - TOTVS Planejamento de Rotas (TPR) |
| |||||||
TMSAC19 - Painel Integração Planejamento de Rotas (TPR) |
| |||||||
TMSAC23 - Controle de Integração | Apresenta o JSON de envio de Pedidos, no qual o TPR realiza uma validação prévia para processamento e retorna ao Protheus. Caso a validação retorne sucesso, o TPR mantém o processamento e retornará um Callback para o Protheus, após alguns minutos. Todas essas mensagens são registradas para análise, caso seja necessário. | |||||||
OMSA200 - Montagem de Carga | No sucesso do planejamento TPR serão geradas as cargas, sendo que estas poderão ser visualizadas. O campo que apresenta a disponibilização do mapa é o DAK_STROTE, com a informação Integrado com TPR (Mapa disponível). Para visualizar o mapa, clique em Outras Ações > Visualizar Mapa TPR. A visualização do mapa apresenta a ordem de entrega, o tempo de serviço, quilometragem, peso, volume, duração, o retorno para a filial (caso parametrizado), viagem extra (uma viagem extra é quando o TPR informa que durante a análise faltaram veículos para todos os Pedidos. Para poder entregar os pedidos, o planejamento sugeriu reutilizar um dos veículos enviados).
| |||||||
MATA410 - Pedidos | Ao realizar a alteração de um Pedido que foi enviado para roteirizar, o usuário receberá um alerta sobre o relacionamento. Neste caso, o usuário tem a opção de manter o Pedido sem alteração e manter a roteirização ou de continuar a alteração do Pedido e perder os dados de roteirização. | |||||||
MATA461 - Preparação dos Documentos de Saída | Ao confirmar o estorno da liberação de um Pedido que possua roteirização, o usuário receberá um alerta que perdeu a roteirização relacionada ao item. |
4. Informações Técnicas Sobre as Integrações - Incluindo Exemplos das Mensagens Trafegadas
A integração é realizada em APIS REST.
Abaixo segue um resumo das integrações:
Geração do Token (gerado na instalação). Documentação API: Criação de token.
Geolocalização síncrona (realizada ao alterar clientes ou no envio de pedidos, quando o cliente não possui geolocalização). Documentação API: Integração de Geolocalização - Síncrona.
Roteirização - essa API acontece em 3 etapas:
O Protheus envia os Pedidos,
Recebe uma resposta do recebimento do TPR.
Após o recebimento, o TPR retornará as viagens geradas em alguns minutos (3). Documentação API: Integração de Roteirização - ERPs
Segue o detalhamento das integrações:
4.1. Geolocalização
Retorna as coordenadas geográficas, de acordo com o endereço do usuário cadastrado (MATA030 - Cadastro de Clientes).
Integração executada ao alterar o usuário via MATA030 (Cadastro de Clientes) ou via Envio de Pedidos - TPR (OMSATPR1), quando o usuário não possui coordenadas geradas (TMSA015 - Tabela DAR).
- Exemplo de Envio
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"address":{
"identifier":" MG000101",
"address":"AVENIDA CONTORNO, 6283 ",
"state":"MG",
"zipCode":"30110931",
"country":"BRA",
"city":"BELO HORIZONTE |
4. Informações Técnicas Sobre as Integrações - Incluindo Exemplos das Mensagens Trafegadas
A integração é realizada em APIS REST.
Abaixo segue um resumo das integrações:
Criação do Token (gerado na instalação). Documentação API: Criação de token.
Geolocalização síncrona (realizada ao alterar clientes ou no envio de pedidos, quando o cliente não possui geolocalização). Documentação API: Integração de Geolocalização - Síncrona.
Roteirização. Essa API acontece em 3 etapas: O Protheus envia os pedidos (1) e recebe uma resposta do recebimento do TPR (2). Após o recebimento, o TPR retornará as viagens geradas em alguns minutos (3). Documentação API: Integração de Roteirização - ERPs
Segue o detalhamento das integrações:
4.1. Geolocalização
Retorna as coordenadas geográficas de acordo com o endereço do cliente cadastrado (MATA030).
Integração executada ao alterar o cliente via MATA030 (Cadastro de Clientes) ou via Envio de Pedidos - TPR (OMSATPR1), quando o Cliente não possui coordenadas geradas (TMSAO15 - Tabela DAR).
- Exemplo de Envio
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"address":{
"identifier":" MG000101",
"address":"AVENIDA CONTORNO, 6283 ",
"state":"MG",
"zipCode":"30110931",
"country":"BRA",
"city":"BELO HORIZONTE "
},
"callbackAuthenticationType":"NONE",
"dateCall":"2021-10-28T22:46:14",
"callbackURL":"HTTP://179.223.161.99:8084/REST/V1/WSTPRNEOLOG/",
"version":"7.00.191205P-20210601",
"qualifiers":"{\"usuario\":\"Administrador\"}",
"callbackAuthenticationValue":"",
"system":"OMS"
} |
- Exemplo de Retorno
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"dateCall":"2021-10-29T01:46:32.413Z",
"version":"",
"geolocationResult":{
"identifier":" MG000101",
"success":true,
"latitude":-19.9405175,
"longitude":-43.9359666,
"messages":[
{
"messageCode":"TPRGS0000",
"message":"Sucesso."
}
]
}
} |
- De / Para Campos
Elemento
Campo
Descrição
identifier
FwXfilial("SA1") + A1_COD+A1_LOJA ou FwXfilial("SA2")+A2_NOME+A2_LOJA
Chave do Cliente ou Fornecedor
country
A1_PAIS ou A2_PAIS (SYA.YA_SIGLA)
País do Cliente ou Fornecedor (EICA100) Países
state
A1_EST ou A2_EST
Campo do Estado
city
A1_MUN ou A2_MUN
Campo do Município
zipCode
A1_CEP ou A2_CEP
Campo do CEP
address
A1_END ou A2_END
Campo do endereço, número
4.2. Envio de Pedidos Para Roteirização
A integração depende dos pedidos, dos veículos selecionados e dos parâmetros de integração:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "vehicles":[ { "identifier":" 000001", "speed":80, "weightCapacity":11000, "volumeCapacity":58, "quantity":1 }, { "identifier":" PAM001", "speed":60, "weightCapacity":3220, "volumeCapacity":96, "quantity":1 }, { "identifier":" 000002", "speed":80, "weightCapacity":12500, "volumeCapacity":57, "quantity":1 } ], "routingOptions":{ "capacityCriteria":"WEIGHT", "routingInstantType":"D+1", "minServiceDuration":900000, "maxServiceDuration":7200000, "driverRestTimes":"Default", "considerReturnDistance":"True", "tollCalculation":"False" }, "callbackAuthenticationType":"NONE", "dateCall":"2021-11-04T16:50:38", "callbackURL":"HTTP://179.223.161.99:8084/REST/V1/WSTPRNEOLOG/", "qualifiers":"{\"sistema\":\"PROTHEUS\",\"identifier\":\"04000000108\",\"usuario\":\"Administrador\",\"modulo\":\"OMS\",\"empresa\":\"99\",\"filial\":\"04\"}", "orders":[ { "identifier":"04543517", "pickupTimeWindowEnd":"2021-11-12T18:00-03:00", "deliveryTimeWindowStart":"2021-11-05T08:00-03:00", "deliveryTimeWindowEnd":"2021-11-12T18:00-03:00", "serviceLoadDuration":null, "serviceUnloadDuration":null, "destination":{ "identifier":" CLISC101", "latitude":-18.85791, "longitude":-41.942810000000001, "name":"CL GOV. VALADARES MG", "country":"BRA" }, "callbackAuthenticationType":"NONE", "operation"dateCall":"UNRESTRICTED" }2021-10-28T22:46:14", "weight":1500"callbackURL":"HTTP://179.223.161.99:8084/REST/V1/WSTPRNEOLOG/", "volume"version":0.25, "7.00.191205P-20210601", "pickupTimeWindowStartqualifiers":"2021-11-05T08:00-03:00"{\"usuario\":\"Administrador\"}", "callbackAuthenticationValue":"", "system":"OMS" } |
- Exemplo de Retorno
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "origin":{dateCall":"2021-10-29T01:46:32.413Z", "version":"", "geolocationResult":{ "identifier":"04-NEPO JUNDIAI - SP-TESTEMG000101", "success":true, "latitude":-19.5169199999999999405175, "longitude":-4043.6522000000000019359666, "messages":[ "name":"", { "countrymessageCode":"BRATPRGS0000", "operationmessage":"UNRESTRICTEDSucesso." } },] } } |
- De / Para Campos
Elemento | Campo | Descrição |
---|---|---|
identifier | FwXfilial("SA1") + A1_COD+A1_LOJA ou FwXfilial("SA2")+A2_NOME+A2_LOJA | Chave do Cliente ou Fornecedor |
country | A1_PAIS ou A2_PAIS (SYA.YA_SIGLA) | País do Cliente ou Fornecedor (EICA100 - Países). |
state | A1_EST ou A2_EST | Campo do Estado |
city | A1_MUN ou A2_MUN | Campo do Município |
zipCode | A1_CEP ou A2_CEP | Campo do CEP |
address | A1_END ou A2_END | Campo do endereço, número |
4.2. Envio de Pedidos Para Roteirização
A integração depende dos Pedidos, dos veículos selecionados e dos parâmetros de integração:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "vehicles":[ { { "identifier":"04543520", "pickupTimeWindowEnd":"2021-11-12T18:00-03:00", "deliveryTimeWindowStart":"2021-11-05T08:00-03:00", "deliveryTimeWindowEnd":"2021-11-12T18:00-03:00", "serviceLoadDurationidentifier":null" 000001", "serviceUnloadDurationspeed":null80, "destinationweightCapacity":{11000, "identifiervolumeCapacity":" 00458501"58, "latitudequantity":-19.361229999999999,1 }, "longitude":-40.050609999999999, { "nameidentifier":"CLIENTE LINHARES -ESPAM001", "countryspeed":"BRA"60, "operationweightCapacity":"UNRESTRICTED" }3220, "weightvolumeCapacity":500096, "volumequantity":0.019008,1 "pickupTimeWindowStart":"2021-11-05T08:00-03:00", }, "origin":{ "identifier":"04-NEPO JUNDIAI - SP-TESTE000002", "latitudespeed":-19.51691999999999980, "longitudeweightCapacity":-40.65220000000000112500, "namevolumeCapacity":""57, "countryquantity":"BRA",1 } ], "operationroutingOptions":"UNRESTRICTED"{ "capacityCriteria":"WEIGHT", } "routingInstantType":"D+1", }"minServiceDuration":900000, { "maxServiceDuration":7200000, "identifierdriverRestTimes":"04543526Default", "pickupTimeWindowEndconsiderReturnDistance":"2021-11-12T18:00-03:00True", "routingType":"ROUTING", "deliveryTimeWindowStarttollCalculation":"2021-11-05T08:00-03:00",False" }, "callbackAuthenticationType":"NONE", "deliveryTimeWindowEnddateCall":"2021-11-12T1804T16:00-0350:0038", "serviceLoadDuration":null, "serviceUnloadDuration":null, "destination":{ "identifier":" PFISIC01", "latitude":-20.306419999999999, "longitude":-40.350720000000003, "name":"VITÓRIA - ES", "country":"BRA", "operation":"UNRESTRICTED" },"callbackURL":"HTTP://179.223.161.99:8084/REST/V1/WSTPRNEOLOG/", "qualifiers":"{\"sistema\":\"PROTHEUS\",\"identifier\":\"04000000108\",\"usuario\":\"Administrador\",\"modulo\":\"OMS\",\"empresa\":\"99\",\"routingType\":\"ROUTING\",\"filial\":\"04\"}", "orders":[ { "weightidentifier":30"04543517", "pickupTimeWindowEnd"volume":0.005:"2021-11-12T18:00-03:00", "pickupTimeWindowStartdeliveryTimeWindowStart":"2021-11-05T08:00-03:00", "origindeliveryTimeWindowEnd":{"2021-11-12T18:00-03:00", "serviceLoadDuration":null, "serviceUnloadDuration":null, "destination":{ "identifier":"04-NEPO JUNDIAI - SP-TESTECLISC101", "latitude":-1918.51691999999999985791, "longitude":-4041.652200000000001942810000000001, "name":"CL GOV. VALADARES MG", "country":"BRA", "operation":"UNRESTRICTED" }, } ]"weight":1500, "restrictions":{ "maxLoadingStopsvolume":10.25, "maxUnloadingStops":99, "maxDistanceBetweenLoadStopspickupTimeWindowStart":9000, "2021-11-05T08:00-03:00", "allowInterleavingorigin":"False",{ "maxDistanceBetweenUnloadStops":3000 } } |
- Mensagem de Resposta
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "identifier":"04-NEPO JUNDIAI - SP-TESTE", "successlatitude":true-19.516919999999999, "messages":[ "longitude":-40.652200000000001, { "messageCodename":"TPRRT0000", "messagecountry":"Sucesso.BRA", } ] } |
- Mensagem de Retorno
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "responseDateoperation":"2021-11-04T13:50:38.000-03:00", UNRESTRICTED" "version":null, "summary":{} "totalTrips":1}, "totalDistance":790.2284089297932, { "totalStopsidentifier":4"04543520", "totalVolumepickupTimeWindowEnd":0.27400800000000003"2021-11-12T18:00-03:00", "totalWeight":6530.0, "totalDurationdeliveryTimeWindowStart":3.9160278E7"2021-11-05T08:00-03:00", "rejectedOrdersdeliveryTimeWindowEnd":0"2021-11-12T18:00-03:00", "rejectedWeightserviceLoadDuration":0.0null, "rejectedVolumeserviceUnloadDuration":0.0 null, }, "tripsResultsdestination":[{ { "identifier":" "sequential00458501":0, "distancelatitude":790-19.2284089297932361229999999999, "numberOfStopslongitude":5-40.050609999999999, "volumename":0.27400800000000003"CLIENTE LINHARES -ES", "weightcountry":6530.0"BRA", "durationoperation":39160278,"UNRESTRICTED" "extraTrip":false}, "tollValueweight":0.05000, "considerReturnDistancevolume":true0.019008, "vehiclepickupTimeWindowStart":" 0000012021-11-05T08:00-03:00", "stopsorigin":[{ { "identifier":"04-NEPO JUNDIAI - SP-TESTE", "sequencelatitude":0-19.516919999999999, "typelongitude":"LOAD"-40.652200000000001, "localityname":{ "", "identifiercountry":"04-NEPO JUNDIAI - SP-TESTEBRA", "operation":"UNRESTRICTED" "name":"", } }, { "countryidentifier":"BR04543526", "pickupTimeWindowEnd":"2021-11-12T18:00-03:00", "deliveryTimeWindowStart"latitude:"2021-11-05T08:-19.5169200-03:00", "deliveryTimeWindowEnd":"2021-11-12T18:00-03:00", "longitudeserviceLoadDuration":-40.6522null, "serviceUnloadDuration":null, "operationdestination":"UNRESTRICTED"{ "identifier":" }PFISIC01", "arrivalTimelatitude":"2021-11-05T08:00:00.000-03:00", -20.306419999999999, "departureTimelongitude":"2021-11-05T08:15:00.000-03:00"-40.350720000000003, "name":"VITÓRIA - "tollValue":0.0ES", "distancecountry":0.0"BRA", "loadedOrdersoperation":["UNRESTRICTED" }, {"weight":30, "volume":0.005, "identifierpickupTimeWindowStart":"045435172021-11-05T08:00-03:00", "origin":{ "volumeidentifier":0.25, "04-NEPO JUNDIAI - SP-TESTE", "weightlatitude":1500-19.0516919999999999, }"longitude":-40.652200000000001, "name":"", { "country":"BRA", "identifieroperation":"04543520UNRESTRICTED", } } ], "volumerestrictions":0.019008,{ "maxLoadingStops":1, "maxUnloadingStops":99, "weightmaxDistanceBetweenLoadStops":5000.09000, "allowInterleaving":"False", "maxDistanceBetweenUnloadStops":3000 }, } |
- Mensagem de Resposta
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "success":true, "messages":[ { "identifiermessageCode":"04543526TPRRT0000", "message":"Sucesso." } ] } |
- Mensagem de Retorno
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "volumeresponseDate":0.005"2021-11-04T13:50:38.000-03:00", "version":null, "summary":{ "totalTrips":1, "weighttotalDistance":30790.02284089297932, "totalStops":4, "totalVolume":0.27400800000000003, }"totalWeight":6530.0, "totalDuration":3.9160278E7, "rejectedOrders":0, ], "rejectedWeight":0.0, "rejectedVolume":0.0 }, "unloadedOrderstripsResults":[ { "sequential":0, "distance":790.2284089297932, ]"numberOfStops":5, }"volume":0.27400800000000003, { "weight":6530.0, "duration":39160278, "sequenceextraTrip":1false, "tollValue":0.0, "typeconsiderReturnDistance":"UNLOAD"true, "locality"vehicle":{ " 000001", "stops":[ "identifier":" PFISIC01", { "namesequence":"VITÓRIA - ES"0, "countrytype":"BRLOAD", "latitudelocality":-20.30642,{ "longitudeidentifier":-40.35072"04-NEPO JUNDIAI - SP-TESTE", "operationname":"UNRESTRICTED", }, "country":"BR", "arrivalTimelatitude":"2021-11-05T10:00:37.292-03:00", -19.51692, "departureTimelongitude":"2021-11-05T10:15:37.292-03:00", -40.6522, "tollValueoperation":0.0,"UNRESTRICTED" "distance":140.82872152560284}, "loadedOrders":[arrivalTime":"2021-11-05T08:00:00.000-03:00", "departureTime":"2021-11-05T08:15:00.000-03:00", ]"tollValue":0.0, "distance":0.0, "unloadedOrdersloadedOrders":[ { "identifier":"0454352604543517", "volume":0.00525, "weight":301500.0 }, ] { }, {"identifier":"04543520", "sequence":2, "volume":0.019008, "type":"UNLOAD", "localityweight":{5000.0 "identifier":" 00458501"}, "name":"CLIENTE LINHARES -ES", { "countryidentifier":"BR04543526", "latitude "volume":-190.36123005, "longitudeweight":-4030.05061,0 "operation":"UNRESTRICTED"} }], "arrivalTimeunloadedOrders":"2021-11-05T12:04:01.970-03:00",[ "departureTime":"2021-11-05T12:19:01.970-03:00", "tollValue":0.0, ] "distance":144.54840026439211}, "loadedOrders":[{ "sequence":1, ]"type":"UNLOAD", "unloadedOrderslocality":[{ { "identifier":" PFISIC01", "identifiername":"04543520VITÓRIA - ES", "volumecountry":0.019008"BR", "weightlatitude":5000-20.030642, }"longitude":-40.35072, ] "operation":"UNRESTRICTED" }, {}, "sequencearrivalTime":3"2021-11-05T10:00:37.292-03:00", "typedepartureTime":"UNLOAD2021-11-05T10:15:37.292-03:00", "localitytollValue":{0.0, "distance":140.82872152560284, "identifier":" CLISC101", "loadedOrders":[ "name":"CL GOV. VALADARES MG", "country":"BR", ], "latitudeunloadedOrders":-18.85791,[ "longitude":-41.94281, { "operationidentifier":"UNRESTRICTED04543526", } "volume":0.005, "arrivalTime":"2021-11-05T15:57:57.551-03:00", "weight":30.0 "departureTime":"2021-11-05T16:12:57.551-03:00", } "tollValue":0.0,] "distance":291.9018079442051}, "loadedOrders":[{ "sequence":2, ]"type":"UNLOAD", "unloadedOrderslocality":[{ { "identifier":" 00458501", "identifiername":"04543517CLIENTE LINHARES -ES", "volumecountry":0.25"BR", "weightlatitude":1500-19.036123, } "longitude":-40.05061, ] "operation":"UNRESTRICTED" }, {}, "sequencearrivalTime":4"2021-11-05T12:04:01.970-03:00", "typedepartureTime":"LOAD2021-11-05T12:19:01.970-03:00", "localitytollValue":{ 0.0, "identifierdistance":"04-NEPO JUNDIAI - SP-TESTE", 144.54840026439211, "nameloadedOrders":"",[ "country":"BR", "latitude":-19.51692], "longitudeunloadedOrders":-40.6522,[ "operation":"UNRESTRICTED" { }, "arrivalTime"identifier":"2021-11-05T18:52:40.278-03:0004543520", "departureTimevolume":"2021-11-05T18:52:40.278-03:00"0.019008, "tollValueweight":05000.0, "distance":212.9494791955932, } "loadedOrders":[ ] }, ],{ "unloadedOrderssequence":[3, "type":"UNLOAD", "locality":{ ] "identifier":" CLISC101", } "name":"CL GOV. VALADARES ]MG", } ], "rejectionscountry":[ "BR", ], "messageslatitude":[-18.85791, ], "qualifiers":"{\"sistema\":\"PROTHEUS\",\"identifier\":\"04000000108\",\"usuario\":\"Administrador\",\"modulo\":\"OMS\",\"empresa\":\"99\",\"filial\":\"04\"}" } |
- Parâmetros para o Planejamento que Devem ser Informados no Envio de Pedidos
TOTVS Planejamento de Rotas (TPR) - Rotina OMSATPR1 - (Grupo OMSATPR1A )
Descrição
Elemento
Regra do elemento
Exemplo
Critério da capacidade ?
TPRRoutingOptions:capacityCriteria
Tipo de roteirização: PESO, VOLUME ou AMBOS.
PESO
Planejamento para ?
TPRRoutingOptions:routingInstantType
Define o instante a partir do qual as viagens podem ser expedidas:
Agora - Início das viagens na primeira hora factível, a partir do momento da roteirização mais uma hora.
D+1 - Inicio das viagens para amanhã no primeiro horário factível de carregamento.
D+1
Qtd. dias limite p/ entregas ?
TPRRoutingOrders:deliveryTimeWindowEnd
Quantidade de dias para realizar a entrega.
Se estiver planejado como D+1, começará a contar a partir do próximo dia.
2
Horário de carregamento ?
TPRRoutingOrders:pickupTimeWindowStart
Horário inicial da janela de carregamento dos pedidos.
08:00
Funcionamento filial ?
TPRRoutingLocality:operation
Informar horário de trabalho da filial.
Este parâmetro definirá o início do carregamento dos pedidos, nas seguintes opções:
Sem restrição (00:00-23:59 de Dom-Sab)
Dias úteis (08:00-17:59 de Seg-Sex)
De manhã (08:00-11:59 de Seg-Sex)
À tarde (14:00-17:59 de Seg-Sex).
Dias úteis
Considera retorno p/ filial ?
TPRRoutingOptions:considerReturnDistance
Verifica se é para contabilizar a distância de retorno a origem na roteirização.
Sim
Qtd. máx. carregamentos ?
TPRRoutingRestrictions:maxLoadingStops
Quantidade máxima de paradas de carregamento por viagem.
1
Km máx. entre carregamentos ?
TPRRoutingRestrictions:maxDistanceBetweenLoadStops
Máxima distância, em km, entre paradas de carregamento.
700
Km máx. entre entregas ?
TPRRoutingRestrictions:maxDistanceBetweenUnloadStops
Máxima distância, em km, entre paradas de entregas.
700
Qtd. máx. de entregas ?
TPRRoutingRestrictions:maxUnloadingStops
Quantidade máxima de paradas de entregas por viagem.
4
Tempo mín. de serviço ?
TPRRoutingOptions:minServiceDuration
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
00:30
Tempo máx. de serviço ?
TPRRoutingOptions:maxServiceDuration
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
04:00
Horário final das entregas ?
TPRRoutingOrders:deliveryTimeWindowEnd
Horário final da janela de entregas.
18:00
Funcionamento entregas ?
TPRRoutingLocality:operation
Horário das empresas que receberão as entregas.
Este parâmetro definirá a janela entregas e possui as seguintes opções:
Sem restrição (00:00-23:59 de Dom-Sab)
Dias úteis (08:00-17:59 de Seg-Sex)
De manhã (08:00-11:59 de Seg-Sex)
À tarde (14:00-17:59 de Seg-Sex).
Dias úteis
- Informações Enviadas dos Veículos (DE / PARA)
Elemento
Campo
Descrição
identifier
FwXfilial("DA3") + DA3_COD
Chave do veículo
weightCapacity
DA3_CAPACM
Capacidade do veículo em quilos.
volumeCapacity
DA3_VOLMAX
Capacidade do veículo, em metros cúbicos.
speed
DA3_VELOC
Define a velocidade que dos veículos em uma roteirização.
quantity
1
Quantidade de veículos, semelhantes a este, disponíveis.
- Informações Enviadas dos Pedidos (DE / PARA)
Elemento
Campo
Descrição
identifier
FwXfilial("SC9") + C9_PEDIDO
Os pedidos são enviados identificados pela filial + código do pedido.
weight
C9_QTDLIB * SB1.B1_PESBRU
O peso enviado do pedido é a quantidade liberada multiplicada pelo peso bruto do pedido liberado.
volume
(SB5.B5_ALTURLC * SB5.B5_LARGLC * SB5.B5_COMPRLC)*C9_QTDLIB
O volume calculado é baseado nos campos de medidas do produto multiplicado pela quantidade liberada do pedido.
pickupTimeWindowStart
Parâmetro "Horário de carregamento" + parâmetro "Planejamento para ?"
O início da janela de carregamento é o horário inicial da filial e a data depende do parâmetro Agora ou D+1.
Se preenchido Agora, o planejamento somará uma hora para as entregas do mesmo dia.
Se preenchido D+1, o carregamento será para o próximo dia, de acordo com a forma de trabalho da filial (Sem restrição, dias úteis, de manhã, a tarde).
pickupTimeWindowEnd
Parâmetro "Horário final das entregas ?" + "Qtd. dias limite p/ entregas ?"
O prazo de carregamento é o limite da entrega.
deliveryTimeWindowStart
Parâmetro "Horário de carregamento" + parâmetro "Planejamento para ?"
O início das entregas depende do Funcionamento entregas ?, que significa o horário de trabalho dos clientes e o início de carregamento da carga.
deliveryTimeWindowEnd
Parâmetro "Horário final das entregas ?" + "Qtd. dias limite p/ entregas ?"
O limite da entrega é considerado através do horário limite das entregas, prazo em quantidade de dias, planejamento do carregamento (Agora, D+1) e a forma de trabalho do cliente (Sem restrição, dias úteis, de manhã, a tarde).
origin
identifier
SM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOME
Identificador para integração e apresentação da filial no mapa de roteirização.
name
SM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOME
Identificador para integração e apresentação da filial no mapa de roteirização.
country
latitude
longitude
DAR_LONGIT
Informação de coordenadas da filial (SM0) mantida na tabela de coordenadas geográficas (DAR).
Parâmetro de funcionamento da filial (Sem restrição, dias úteis, de manhã, a tarde) informado antes de enviar os pedidos para planejamento via OMSATPR1
destination
identifier
FwXfilial("SA1") + A1_COD+A1_LOJA ou FwXfilial("SA2")+A2_NOME+A2_LOJA
Identificador para integração dos cliente ou fornecedores.
name
A1_NREDUZ ou A2_NREDUZ
Nome do cliente ou fornecedor apresentado no mapa de roteirização.
country
A1_PAIS ou A2_PAIS
País cadastrado na entidade.
latitude
DAR_LATITU
Informação de coordenadas do cliente (SA1) ou fornecedor (SA2) mantida na tabela de coordenadas geográficas (DAR).
longitude
DAR_LONGIT
Informação de coordenadas do cliente (SA1) ou fornecedor (SA2) mantida na tabela de coordenadas geográficas (DAR).
longitude":-41.94281,
"operation":"UNRESTRICTED"
},
"arrivalTime":"2021-11-05T15:57:57.551-03:00",
"departureTime":"2021-11-05T16:12:57.551-03:00",
"tollValue":0.0,
"distance":291.9018079442051,
"loadedOrders":[
],
"unloadedOrders":[
{
"identifier":"04543517",
"volume":0.25,
"weight":1500.0
}
]
},
{
"sequence":4,
"type":"LOAD",
"locality":{
"identifier":"04-NEPO JUNDIAI - SP-TESTE",
"name":"",
"country":"BR",
"latitude":-19.51692,
"longitude":-40.6522,
"operation":"UNRESTRICTED"
},
"arrivalTime":"2021-11-05T18:52:40.278-03:00",
"departureTime":"2021-11-05T18:52:40.278-03:00",
"tollValue":0.0,
"distance":212.9494791955932,
"loadedOrders":[
],
"unloadedOrders":[
]
}
]
}
],
"rejections":[
],
"messages":[
],
"qualifiers":"{\"sistema\":\"PROTHEUS\",\"identifier\":\"04000000108\",\"usuario\":\"Administrador\",\"modulo\":\"OMS\",\"empresa\":\"99\",\"routingType\":\"ROUTING\",\"filial\":\"04\"}"
} |
- Parâmetros Para o Planejamento que Devem Ser Informados no Envio de Pedidos
TOTVS Planejamento de Rotas (TPR) - Rotina OMSATPR1 - (Grupo OMSATPR1A )
Descrição | Elemento | Regra do elemento | Exemplo |
---|---|---|---|
Critério da capacidade ? | TPRRoutingOptions:capacityCriteria | Tipo de roteirização:
| Peso |
Planejamento para ? | TPRRoutingOptions:routingInstantType | Define o instante a partir do qual as viagens podem ser expedidas:
| D+1 |
Qtd. dias limite p/ entregas ? | TPRRoutingOrders:deliveryTimeWindowEnd | Quantidade de dias para realizar a entrega. Se estiver planejado como D+1, começará a contar a partir do próximo dia. | 2 |
Horário de carregamento ? | TPRRoutingOrders:pickupTimeWindowStart | Horário inicial da janela de carregamento dos Pedidos. | 08:00 |
Funcionamento filial ? | TPRRoutingLocality:operation | Horário de trabalho da Filial. Este parâmetro definirá o início do carregamento dos Pedidos, nas seguintes opções:
| Dias úteis |
Considera retorno p/ filial ? | TPRRoutingOptions:considerReturnDistance | Verifica se é para contabilizar a distância de retorno a origem na roteirização. | Sim |
Qtd. máx. carregamentos ? | TPRRoutingRestrictions:maxLoadingStops | Quantidade máxima de paradas de carregamento por viagem. | 1 |
Km máx. entre carregamentos ? | TPRRoutingRestrictions:maxDistanceBetweenLoadStops | Máxima distância, em Km, entre paradas de carregamento. | 700 |
Km máx. entre entregas ? | TPRRoutingRestrictions:maxDistanceBetweenUnloadStops | Máxima distância, em Km, entre paradas de entregas. | 700 |
Qtd. máx. de entregas ? | TPRRoutingRestrictions:maxUnloadingStops | Quantidade máxima de paradas de entregas por viagem. | 4 |
Tempo mín. de serviço ? | TPRRoutingOptions:minServiceDuration | 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 | 00:30 |
Tempo máx. de serviço ? | TPRRoutingOptions:maxServiceDuration | 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 | 04:00 |
Horário final das entregas ? | TPRRoutingOrders:deliveryTimeWindowEnd | Horário final da janela de entregas. | 18:00 |
Funcionamento entregas ? | TPRRoutingLocality:operation | Horário das empresas que receberão as entregas. Este parâmetro definirá a janela de entregas e possui as seguintes opções:
| Dias úteis |
Calcula pedágio ? | tollCalculation | TPR deverá realizar o cálculo do pedágio na roteirização:
| Sim |
Entregas ord. por estado(UF)? | stateReturnForbidden | Quando informado:
| Não |
- Parâmetros Para o Planejamento que Devem Ser Informados no OMSA200 Para Envio de Roteirização TPR
TOTVS Planejamento de Rotas (TPR) - Rotina OMSA200 - (Grupo OMSATPR5 )
Descrição | Elemento | Regra do Elemento | Exemplo |
---|---|---|---|
Planejamento para ? | TPRRoutingOptions:routingInstantType | Define o instante a partir do qual as viagens podem ser expedidas:
| D+1 |
Horário de carregamento ? | TPRRoutingOrders:pickupTimeWindowStart | Horário inicial da janela de carregamento dos Pedidos. | 08:00 |
Funcionamento filial ? | TPRRoutingLocality:operation | Deve ser informado o horário de trabalho da Filial. Este parâmetro definirá o início do carregamento dos Pedidos, nas seguintes opções:
| Dias úteis |
Considera retorno p/ filial ? | TPRRoutingOptions:considerReturnDistance | É verificado se é para contabilizar a distância de retorno a origem na roteirização. | Sim |
Tempo mín. de serviço ? | TPRRoutingOptions:minServiceDuration | 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 | 00:30 |
Tempo máx. de serviço ? | TPRRoutingOptions:maxServiceDuration | 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 | 04:00 |
Horário final das entregas ? | TPRRoutingOrders:deliveryTimeWindowEnd | Horário final da janela de entregas. | 18:00 |
Funcionamento entregas ? | TPRRoutingLocality:operation | Horário das empresas que receberão as entregas. Este parâmetro definirá a janela entregas e possui as seguintes opções:
| Dias úteis |
Calcula pedágio ? | tollCalculation | O TPR deverá realizar o cálculo do pedágio na roteirização:
| Sim |
Entregas ord. por estado(UF)? | stateReturnForbidden | Quando informado:
| Não |
- Informações Enviadas dos Veículos (DE / PARA)
Elemento | Campo | Descrição |
---|---|---|
identifier | FwXfilial("DA3") + DA3_COD | Chave do veículo. |
weightCapacity | DA3_CAPACM | Capacidade do veículo, em quilos. |
volumeCapacity | DA3_VOLMAX | Capacidade do veículo, em metros cúbicos. |
speed | DA3_VELOC | Define a velocidade que dos veículos em uma roteirização. |
quantity | 1 | Quantidade de veículos, semelhantes a este, disponíveis. |
tollAxes | DA3_QTDEIX | Quantidade de eixos na ida para cálculo do pedágio. Default 6. |
tollReturnAxes | DA3_QTEIXV | Quantidade de eixos na volta para cálculo do pedágio. Default 4. |
- Informações Enviadas dos Pedidos (DE / PARA)
Elemento | Campo | Descrição |
---|---|---|
identifier | FwXfilial("SC9") + C9_PEDIDO | Os Pedidos são enviados identificados pela filial + código do pedido. |
weight | C9_QTDLIB * SB1.B1_PESBRU | O peso enviado do Pedido é a quantidade liberada multiplicada pelo peso bruto do Pedido liberado. |
volume | (SB5.B5_ALTURLC * SB5.B5_LARGLC * SB5.B5_COMPRLC)*C9_QTDLIB | O volume calculado é baseado nos campos de medidas do produto multiplicado pela quantidade liberada do Pedido. |
pickupTimeWindowStart | Parâmetro Horário de carregamento + Planejamento para ? | O início da janela de carregamento é o horário inicial da Filial e a data depende do parâmetro Agora ou D+1. Quando informado:
|
pickupTimeWindowEnd | Parâmetro Horário final das entregas ? + Qtd. dias limite p/ entregas ? | O prazo de carregamento é o limite da entrega. |
deliveryTimeWindowStart | Parâmetro Horário de carregamento + Planejamento para ? | O início das entregas depende do Funcionamento entregas ?, que significa o horário de trabalho dos clientes e o início de carregamento da carga. |
deliveryTimeWindowEnd | Parâmetro Horário final das entregas ? + Qtd. dias limite p/ entregas ? | O limite da entrega é considerado pelo horário limite das entregas, prazo em quantidade de dias, planejamento do carregamento (Agora, D+1) e a forma de trabalho do cliente (Sem restrição, dias úteis, de manhã, a tarde). |
origin | ||
identifier | SM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOME | Identificador para integração e apresentação da Filial no mapa de roteirização. |
name | SM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOME | Identificador para integração e apresentação da Filial no mapa de roteirização. |
country | BRA | País padrão da Filial (Brasil). |
latitude | DAR_LATITU | Informação de coordenadas da Filial (SM0), mantida na tabela de coordenadas geográficas (DAR). |
longitude | DAR_LONGIT | Informação de coordenadas da Filial (SM0), mantida na tabela de coordenadas geográficas (DAR). |
operation | Parâmetro informado em Funcionamento filial OMSATPR1A | Parâmetro de funcionamento da Filial (Sem restrição, dias úteis, de manhã, a tarde), informado antes de enviar os Pedidos para o planejamento via OMSATPR1. |
destination | ||
identifier | FwXfilial("SA1") + A1_COD+A1_LOJA ou FwXfilial("SA2")+A2_NOME+A2_LOJA | Identificador para integração dos cliente ou fornecedores. |
name | A1_NREDUZ ou A2_NREDUZ | Nome do cliente ou fornecedor apresentado no mapa de roteirização. |
country | A1_PAIS ou A2_PAIS | País cadastrado na entidade. |
latitude | DAR_LATITU | Informação de coordenadas do cliente (SA1) ou fornecedor (SA2), mantida na tabela de Coordenadas Geográficas (DAR). |
longitude | DAR_LONGIT | Informação de coordenadas do cliente (SA1) ou fornecedor (SA2), mantida na tabela de coordenadas geográficas (DAR). |
operation | Parâmetro informado em Funcionamento entregas OMSATPR1A | Parâmetro de funcionamento das entregas (Sem restrição, dias úteis, de manhã, a tarde, customizado), informado antes de enviar os Pedidos para planejamento via OMSATPR1. |
5. Funcionalidades Não Atendidas
5.1. Alocação de Veículos
Como a seleção de veículos é baseada na rotina OMSA230 (Alocação de Veículos), não são realizadas validações em veículos.
5.2. Operador Logístico
No momento, a funcionalidade para Operador Logístico ainda não foi implementada na integração.
6. Fluxograma
6.1. Processo de Envio de Pedido de Vendas
draw.io Diagram | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
6.2. Processo de Callback da Roteirização (Rotina em JOB)
draw.io Diagram | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
6.3. Processo de Alteração de Rota / Mapa
draw.io Diagram | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
6.4. Callback Processo de Alteração de Rota / Mapa
draw.io Diagram | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
8. Customizações Disponíveis
8.1 Como Executar a API de Geolocalização Via User Function
É possível gerar as geolocalizações das entidades de forma customizada. Da mesma forma, ao enviar os Pedidos para integração via OMSATPR1 ou OMSA200, a geolocalização a ser considerada será cadastrada na tabela DAR. Caso contrário, poderá ser utilizado o Ponto de Entrada OMSTPR01 para alterar a geolocalização das entidades de entrega.
Segue a documentação oficial da API: Integração de Geolocalização - Síncrona.
Exemplo de Utilização da API em ADVPL
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'totvs.ch'
#include "tbiconn.ch"
User Function XGETGEO()
Local cEmpLog := "99"
Local cFilLog := "01"
Local cModLog := "OMS"
Local oJson := JsonObject():New()
Local oQualif := JsonObject():New()
Local oAddress := JsonObject():New()
Local oResp := Nil
Local aHeader := {}
Local cQualif := ""
Local cParams := ""
Local oRest := FwRest():New('https://planejamentorotas.totvs.com/')
Local lRet := .F.
PREPARE ENVIRONMENT EMPRESA cEmpLog FILIAL cFilLog MODULO cModLog
//-- Elemento livre para controle interno
oQualif["elementolivre1"] := "conteudo para controle Y"
oQualif["elementolivre2"] := "conteudo A"
oQualif["elementolivre3"] := "conteudo X"
cQualif := oQualif:ToJson()
//Monta header
Aadd(aHeader, "Accept: application/json" )
Aadd(aHeader, "Content-Type: application/json" )
//cole seu token aqui ou faça um seek para obter a DLV_TOKEN
Aadd(aHeader, "TPR_AUTHORIZATION: " + '321f3-f32f32-f32-9cdd-e6d9f10ca60943f64ec1-e9f8-f32f32-a0b2-f' )
oJson["dateCall"] := FwTimeStamp(3,dDataBase, Time() )
oJson["system"] := cModulo
oJson["qualifiers"] := cQualif
//Endereco a ser pesquisado
oAddress["identifier"]:= 'Código do cliente'
oAddress["country"] := 'BRA'
oAddress["state"] := 'SC'
oAddress["city"] := 'JOINVILLE'
oAddress["zipCode"] := '89218-100'
oAddress["address"] := 'Avenida Santos Dumont, 831'
oJson["address"] := oAddress
cParams := oJson:ToJson()
oRest:SetPath( "v1/tpr-geolocation-sync" )
oRest:SetPostParams( EncodeUTF8(cParams) )
lRet := oRest:Post( aHeader )
If lRet
oResp := JSonObject():New()
oResp:fromJson(Decodeutf8(oRest:GetResult()))
conout(oResp["geolocationResult"]["latitude"]) //Retorno da latitude
conout(oResp["geolocationResult"]["longitude"]) //Retorno da longitude
Else
conout(oRest:GetLastError())
conout(oRest:GetResult())
EndIf
RESET ENVIRONMENT
Return
|
operation
Parâmetro informado em "Funcionamento entregas" OMSATPR1A