Páginas filhas
  • Integração TOTVS OMS x TOTVS Planejamento de Rotas (TPR)

Versões comparadas

Chave

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

Conteúdo

Âncora
indice
indice
Índice
maxLevel3
exclude.*Conteúdo
stylenone
printablefalse


Image Added1. 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 ou itens de Pedidos de 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

INTEGRAÇÃO TOTVS PLANEJAMENTO DE ROTAS X MÓDULO OMS PROTHEUS

Contexto de negócio

O TOTVS OMS disponibiliza uma funcionalidade que permite enviar  pedidos ou itens de pedidos de vendas liberados, veículos, parâmetros de entregas ao TPR - TOTVS Planejamento de Rotas, que realizará a otimização dos dados recebidos para compor a carga e

a melhor rota de entrega dos Pedidos.

Sistemas Envolvidos

  • Protheus/OMS-FAT - No OMS, seleção de pedidos, seleção de veículos, parametrização, visualização de pedidos a roteirizar, visualização de pedidos rejeitados, visualização de pedidos processados com carga, visualização do json de envio, visualização do json de resposta, visualização do json de retorno, geração da carga de acordo com a viagem retornada pela integração, validações de alterações de pedidos, aviso da exclusão da roteirização ao estornar pedido.
  • Protheus/OMS-TMS - manter geolocalizações dos clientes para planejamento de rotas
  • Neolog/TPR - Validações de entrada de informações para processamento de geolocalização, retornar latitude e longitude para a api consumidora da geolocalização, validações de entrada de informações para processamento de roteirização, retornar para a api consumidora se fará o processamento da roteirização, realizar o processamento de roteirização e retornar para a api consumidora as viagens geradas.

Integração

A integração com o TOTVS Planejamento de Rotas deve automatizar o processo de geração de cargas. No qual o usuário seleciona pedidos de vendas liberados e veículos para que via integração, seja definida a melhor organização de cargas e a melhor ordem e rota de entregas desses pedidos nos clientes.

Premissas para a integração:

  • Para realizar a integração é necessário o preenchimento do endereço completo dos clientes (Endereço com número, CEP, bairro, cidade, estado e país);
  • Veículos cadastrados;
  • Pedidos gerados e liberados;

Escopo

O escopo desta integração abrange a Geração da Carga e a visualização do Mapa no TOTVS OMS na rotina Montagem de Carga - OMSA200. A Geração da Carga ocorre com base nos pedidos de vendas liberados, veículos e parâmetros de entrega enviados ao TPR. A visualização do Mapa contém a melhor rota para a entrega, apresentando a quilometragem que será realizada, o tempo que será consumido, o volume  e o peso do serviço.

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

Informações
iconfalse
titleIMPORTANTE
Informações adicionais sobre como será realizada a montagem da carga/sequenciamento da entrega podem ser obtidas no documento: TOTVS Planejamento de Rotas.


Image Added2. Instalação / Configuração

Informações
iconfalse
titleATENÇÃO
  • Para instalar esta funcionalidade é obrigatório a contratação da Licença REST TOTVS "i" / ADD ON Webservices.
Informações
iconfalse
titleImportante
Para informações adicionais sobre esta licença, entre em contato com o ESN - Especialista de Soluções de Negócios.

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

Informações
Prezado cliente, esta Integração fica disponível de forma nativa somente no Release 12.1.37 do Protheus conforme 
  • Esta funcionalidade é disponibilizada oficialmente no Release 12.1.33 do Protheus, conforme 
 
Caso tenha interesse em adquirir esta solução nas
  • Entretanto, é necessário atualizar com os pacotes abaixo mesmo estando no Release 12.1.
27 ou 12.1.
  • 33 do Protheus
, por gentileza entre em contato com nosso suporte solicitando as informações a seguir

Para realizar a integração é necessário possuir os novos programas ou atualizações dos programas do Faturamento, OMS e TMS:

MóduloProgramaDescriçãoFaturamentoFATXFUN.PRXFunções genéricas FATFaturamentoMATA410.PRXPedidosFaturamentoMATA461.PRXEstorno de PedidosFaturamentoMATV410.PRWFunções para o Estorno de PedidosOMSOMSA200.PRWMontagem de CargaOMSOMSATPR1.PRWEnvio de Pedidos - TPR (Menu)OMSOMSATPR1A.PRWFunções do Envio de Pedidos - TPROMSOMSATPR2.PRWProcessamento do callback do retorno das viagens/carga - TPROMSOMSATPR3.PRWVisualização do mapa da carga gerada (OMSA200 > Ações Relacionadas > Visualizar Mapa)OMSOMSATPR4.PRWValidações para a alteração e estorno de pedidos integrados com o TPROMSOMSXFUN.PRWFunções genéricas OMSTMSTMSAC18.PRWMétodos de Envio - Integração Planejamento de RotasTMSTMSAC19.PRWConsulta Planejamento de Rotas: Rotina que armazenará as informações referentes ao envio de informações para a integração Totvs Planejamento de Rotas (TPR)TMSTMSAC20.PRWConfiguração Planejamento de Rotas: Rotina principal para realizar o cadastro e habilitar a integração Totvs Planejamento de Rotas (TPR). TMSTMSAC23.PRWControle 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.TMSTMSAC24.PRWMontagem e visualização do MapaTMSTMSAC25.PRWMontagem e visualização do MapaTMSTMSAO15.PRWCadastro Referencia GeográficaTMSTMSAO48.PRWIntegração Rota InteligenteTMSTMSO46API.PRWMétodos CallBack Planejamento de Rotas

Para a integração é necessário realizar algumas configurações no appserver.ini

Bloco de código
titleConfiguração REST
collapsetrue
;************************************
;*** 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
  • Configurações HTTP (appserver.ini)
Bloco de código
titleConfiguração HTTP
collapsetrue
[HTTP]
ENABLE=1
PATH=C:\Bases\environment1\data\web  (Pasta que contém os arquivos index.html e tprchannel.js)
PORT=8021   
INSTANCES=1,10    
SESSIONTIMEOUT=60
INSTANCENAME=WS_HTTP

[179.223.161.99:8021/ws] (Porta aberta)
ENABLE=1
PATH=C:\Bases\environment1\data\web  (Pasta que contém os arquivos index.html e tprchannel.js)
ENVIRONMENT=environment1
INSTANCENAME=WS_OMSCARGA
RESPONSEJOB=JOB_WS_OMS
DEFAULTPAGE=wsindex.apw
Bloco de código
titleConfiguração JOB
collapsetrue
[JOB_WS_OMS]
TYPE=WEBEX
ENVIRONMENT=environment1
INSTANCES=1,10               
INSTANCENAME=JOB_WS_OMS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT
PREPAREIN=All
SIGAWEB=WS
  • Parâmetros utilizados (SIGACFG):
  • . Basta baixar os pacotes de Expedição Contínua dos módulos: OMS, TMS e FAT.


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

OMSOMSATPR5.PRWEnvio de roteirização TPR via OMSA200.22/11/2022  11:05:49
OMSOMSATPR6.PRWRecebimento do callback de roteirização via OMSA200.21/10/2022  22:42:49
OMSOMSATPR7.PRWAtualizaçã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):
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).

08/09/2022 07:20:50

TMS

TMSAC23.PRW

Controle de Integração Planejamento de Rotas:
Rotina que armazenará as informações enviadas e recebidas.
Em toda a integração é enviado um arquivo no formato JSON, sendo que este arquivo é armazenado na tabela DLU - Controle Integração Roteirizador.

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: 

A atualização em questão cadastrará as novas rotinas de menu:

Rotina

Menu

OMSATPR1

Envio de Pedidos - TOTVS Planejamento de Rotas (TPR)

TMSA015

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, 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
titleConfiguração REST
collapsetrue
;************************************
;*** 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
titleConfiguração HTTP
collapsetrue
[HTTP]
ENABLE=1
PATH=C:\Bases\environment\data\web
PORT=8021   
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
iconfalse
titleIMPORTANTE
  • PATH: Diretório dos arquivos index.html e tprchannel.js que foram enviados para a pasta Web.

  • [Ip:Porta/WS]: Informação importante para apresentar o mapa. O IP e a Porta cadastrados nessa seção precisam ser visualizados em toda a rede de acesso Smartclient do ambiente. Caso exista algum bloqueio de rede interna, o mapa não será apresentado no Protheus.

  • Para que o mapa seja exibido, o servidor precisa ter acesso para a API externa https://planejamentorotas.totvs.com/tpr-client/v1.

2.4.3. Configuração de Portais e Webservices

Link para o documento: Configurar Portais e Webservices.

Bloco de código
titleConfiguração JOB
collapsetrue
[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
iconfalse
titleIMPORTANTE

Assinale, via SIGACFG, os seguintes campos como usados:

  • DAK_INTTPR: informa se a origem da geração da carga será via TPR.

  • DAK_VIAEXT: informa se a carga gerada é uma viagem extra.

  • DAK_DISROT: Distância da roteirização em quilômetros.  O campo deve ter tamanho 15, decimal 3 e máscara: @E 99,999,999,999.999.
  • DAK_TIMROT: Tempo total roteirização em horas e minutos.
  • DAK_VALROT: Valor total dos pedágios da roteirização;

2.5.2. Parâmetros

Parâmetro

Descrição

Valor

MV_ROTAINT

Habilita rotas inteligentes.

.T.

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

Define a URL de callback da rota alterada.

URL não obrigatória.
Caso não seja informada será assumido o campo DLV_URLCAL + /NEWROUTE.

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)
2 = Dias úteis
3 = De manhã
4 = À tarde

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

  • .F. - Não 
  • .T. - Sim  

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

Image Added

2.6.2. Acesse Atualizações > Planejamento de Rotas > Config. Planejamento de Rotas (TMSAC20)

  • Realize as parametrizações conforme descrito a seguir:
CampoDescriçã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.

Informações
iconfalse
titleImportante
  • A URL de callback precisa ser acessada exclusivamente pelo IP do TPR: 34.148.87.2.
  • É possível realizar um teste de acesso liberando a URL IP:PORTA + /REST/V1/WSTPRNEOLOG/ para outro computador e acessando via navegador.
  • Caso a liberação de acesso seja realizada corretamente, o retorno abaixo será realizado:

Image Added

Libere também para acesso externo a URL IP:PORTA + /REST/V1/WSTPRNEOLOG/NEWROUTE/

Bloqueado

Informe 2 - Não.

TokenCampo não editável. Será preenchido automaticamente no teste de conexão a seguir.
Data TokenCampo não editável. Será preenchido automaticamente no teste de conexão a seguir.
Hora TokenCampo 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). 

IP e Porta

Informados no AppServer, em Configurações HTTP, essa informaçãoé importante para apresentar o mapa.
O IP e a Porta cadastrados nessa seção precisam ser visualizados em toda a rede de acesso Smartclient do ambiente.
Caso exista algum bloqueio de rede interna, o mapa não será apresentado no Protheus.

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çãoURL 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 GeocodeURL 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).
Utilize HTTPS://PLANEJAMENTOROTAS.TOTVS.COM/V1/TPR-GEOLOCATION

Image Added

Token / Data Token / Hora Token

Estes campos serão preenchidos automaticamente pelo retorno do TOTVS Planejamento de Rotas (TPR).



Informações
iconfalse
titleIMPORTANTE
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:

Image Added

Informações
iconfalse
titleIMPORTANTE
  • Caso haja integração configurada com o Maplink, é necessário desabilitá-la.

  • Para isso, acesse a rotina TMSAO52 (Cadastro Roteirizador) e altere o campo Bloqueado para 1 - Sim.


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

Image Added

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.

Image Added

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.

Image Added

3.5. Como Definir a Geolocalização Exata

Image Added

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.

Image Added

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

Image Added

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.

Image Added

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.

Image Added

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.

Image Added

3.10. Como Funcionam as Restrições de Janelas de Entrega na Roteirização TPR

Informações
titleIMPORTANTE
  • O parâmetro MV_OMSPROT define como será o funcionamento das entregas padrão, caso o usuário não possua Janelas de Entrega cadastradas.
  • Se este parâmetro estiver vazio, o TPR informará que não há Janelas de Entrega para roteirização.


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.

Image Added

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.

Image Added

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

Image Added

3.12. Como Restringir a Alternância de Entrega Entre Estados

Image Added

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.

Image Added

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

Image Added

  • Filtre o registro desejado.

Image Added

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

Image Added

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

    • DA3_VELOC.: se este campo não for preenchido, o TPR considerará 30km/h.
    • DA3_QTDEIX: quantidade de eixos na ida para cálculo do pedágio. Default 6.
    • DA3_QTEIX: quantidade de eixos na volta para cálculo do pedágio. Default 4.

TMSAO15 - Referência Geográfica

  • Verifique as coordenadas geradas para os usuários e a localização no mapa.
  • A rotina permite que sejam geradas as coordenadas para o usuário, mesmo que este não possua endereço cadastrado.

Informações
iconfalse
titleImportante
  • É possível alterar as coordenadas geradas de um usuário 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

  • Verifique os campos B1_PESO, B1_PESBRU, B5_ALTURLC, B5_LARGLC e B5_COMPRLC.

MATA410 - Pedidos de Venda 

  • Gere os Pedidos para os usuários.
  • Libere os Pedidos.

OMSATPR1 - Envio de Pedidos - TOTVS Planejamento de Rotas (TPR)

  • Selecione os Pedidos, os veículos e informe os parâmetros (F6).
  • Ao enviar os Pedidos, o browse de Pedidos será atualizado e os mesmos aparecerão com a situação 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).

TMSAC19 - Painel Integração Planejamento de Rotas (TPR)

  • Apresenta a situação da integração, bem como, o resultado de cada item, sendo que os itens são gravados separadamente por meio 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 nas seguintes situações:
      • 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:
          1. Todas as cargas geradas pelo botão do browse superior Visualizar mapa.
          2. 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).
  • TMSAC19 permite o cancelamento do envio para a alteração dos Pedidos por meio do botão Cancelar Envio, sendo que aalteraçã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 Planejamento de Rotas).

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

Informações
titleImportante
  • O primeiro ponto 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 na rotina 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.

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.


Image Added4. 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:

    1.  O Protheus envia os Pedidos,

    2.  Recebe uma resposta do recebimento do TPR.

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

ParâmetroDescriçãoValorMV_ROTAINTHabilita rotas inteligentes.T.MV_TPRCLOGDefine a visualização do log de operações do TPR no ConsoleFile configurado. Informar .F. após a implantação. Incluir no ini do REST, na sessão do enviroment, a chave FWTRACELOG=1MV_HVERAOVerifica se o local fisico do servidor está em Horário de Verão .F. Não / .T. Sim   (MV_HVERAO).F.MV_CDTPOP Indica qual o código de operação será enviada ao TOTVS GFE na geração da carga. O mesmo deve ser cadastrado primeiramente no TOTVS GFE e vinculado. Preenche o campo DAK_CDTPOP.MV_CDCLFRCódigo da Classificação de Frete Padrão usado na importação de Documentos de Carga. Preenche o campo DAK_CDCLFR.MV_OMSENTRDefine o número de incremento do campo Sequência de Entrega (DAK_SEQENT) na Montagem de Cargas, deve ser informado o conteúdo padrão igual a 5 (cinco).5
  • Arquivos relacionados ao mapa (data/web):

                   Verifique se os arquivos index.html e tprchannel.js constam na pasta web conforme PATH configurado (PATH=C:\Bases\environment1\data\web).

  • Atualizar o menu do OMS

                 sigaoms.xnu

  • Atualizar o help

               hlppor.txt

  • Aplicar o pacote de dicionários do TMS 9506 para que sejam criadas as tabelas DMR e DMS. O pacote criará campos nas tabelas DLU e DLV.

               Informações sobre os campos do TMS em DT DLOGTMS02-17080 Integração SIGATMS x Planejamento de Rotas (TPR) -   DETALHAMENTO DA ATUALIZAÇÃO DE DICIONÁRIO CONFORME ABAS

  • Aplicar o pacote de dicionários do OMS 9560 para que sejam criadas campos nas tabelas DA3 e DAK. O pacote criará o parâmetro MV_TPRCLOG e os campos abaixo:

Campo

DA3_VELOC

Tipo

Numérico

Tamanho

6

Decimal

0

Formato

Título

Veloc. média

Descrição

Velocidade média

Usado

Sim

Obrigatório

Não

Browse

Sim

Opções

When

Relação

Val. Sistema

Help

Informar a velocidade média do veículo.

Campo

DAK_INTTPR

Tipo

Caractere

Tamanho

1

Decimal

0

Formato

Título

Int. TPR

Descrição

Integração TPR

Usado

Sim

Obrigatório

Não

Browse

Não

Opções

1=Carga gerada pelo TPR

When

Relação

Val. Sistema

Help

Informa se a carga foi gerada através da integração com o TPR (Totvs Planejamento de Rotas).

Campo

DAK_VIAEXT

Tipo

Caractere

Tamanho

1

Decimal

0

Formato

Título

Viagem Extra

Descrição

Viagem extra do TPR

Usado

Sim

Obrigatório

Não

Browse

Não

Opções

1=Sim, 2=Não

When

Relação

"2"

Val. Sistema

Help

Indica se a viagem gerada pelo TPR é uma viagem extra. Uma viagem extra é quando o TPR informa que durante a análise faltaram veículos para todos os pedidos. Para poder entregar mais pedidos, o planejamento sugeriu reutilizar um dos veículos enviados.

SX6:

CampoValorX6_VARMV_TPRCLOGX6_TIPOLX6_DESCRICDefine a visualização do log de operações do TPR no ConsoleFile configurado. X6_CONTEUD.T.

                 DA3_VELOC: Neste campo, poderá ser informada a velocidade média do veículo via rotina OMSA060 (Cadastro de Veículos)

                 DAK_INTTPR: Ao aplicar o pacote, marcar via SIGACFG como usado. Este campo informará se a origem da geração da carga será via TPR.

                 DAK_VIAEXT: Ao aplicar o pacote, marcar via SIGACFG como usado. Este campo informará se a carga gerada é uma viagem extra.

Após a geração e ativação do token no passo anterior via TMSAC20. Ao alterar um cliente via MATA030, será realizada uma integração para obter a geolocalização com base no cadastro do endereço. 

Integrações

1 - Geolocalização: Retorna as coordenadas geográficas de acordo com o endereço do fornecedor/cliente cadastrado (MATA020/MATA030). Integração executada ao alterar o cliente

via MATA030 (Cadastro de Clientes) ou via Envio de Pedidos - TPR (OMSATPR1)

caso o Cliente/Fornecedor não possua

, quando o usuário não possui coordenadas geradas (

TMSAO15

TMSA015 - Tabela DAR).

             Documentação da API TPR: Integração de Geolocalização - Síncrona

  • Exemplo de
envio:
  • Envio
Bloco de código
titleJson JSON de envio Envio ao TPR
collapsetrue
{
   "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:
  • Retorno
Bloco de código
titleJson JSON de retorno Retorno do TPR
collapsetrue
{
   "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:
  • 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)

Países

.

state

A1_EST ou A2_EST  

Campo do

estado

Estado

city

A1_MUN ou A2_MUN  

Campo do

município

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:

. Envio de Pedidos Para Roteirização

A integração depende dos

pedidos

Pedidos, dos veículos selecionados e

os

dos parâmetros de integração

:Documentação da API TPR: Integração de Roteirização - ERPs

:

Bloco de código
titleJson JSON de envio Envio ao TPR
collapsetrue
{
   "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",
      "routingType":"ROUTING",
      "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\",\"routingType\":\"ROUTING\",\"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",
            "operation":"UNRESTRICTED"
         },
         "weight":1500,
         "volume":0.25,
         "pickupTimeWindowStart":"2021-11-05T08:00-03:00",  
         "origin":{
            "identifier":"04-NEPO JUNDIAI - SP-TESTE",
            "latitude":-19.516919999999999,
            "longitude":-40.652200000000001,
            "name":"",
            "country":"BRA",
            "operation":"UNRESTRICTED"
         }
      },
      {
         "identifier":"04543520",
         "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":"  00458501",
            "latitude":-19.361229999999999,
            "longitude":-40.050609999999999,
            "name":"CLIENTE LINHARES -ES",
            "country":"BRA",
            "operation":"UNRESTRICTED"
         },
         "weight":5000,
         "volume":0.019008,
         "pickupTimeWindowStart":"2021-11-05T08:00-03:00",
         "origin":{
            "identifier":"04-NEPO JUNDIAI - SP-TESTE",
            "latitude":-19.516919999999999,
            "longitude":-40.652200000000001,
            "name":"",
            "country":"BRA",
            "operation":"UNRESTRICTED"
         }
      },
      {
         "identifier":"04543526",
         "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":"  PFISIC01",
            "latitude":-20.306419999999999,
            "longitude":-40.350720000000003,
            "name":"VITÓRIA - ES",
            "country":"BRA",
            "operation":"UNRESTRICTED"
         },
         "weight":30,
         "volume":0.005,
         "pickupTimeWindowStart":"2021-11-05T08:00-03:00",
         "origin":{
            "identifier":"04-NEPO JUNDIAI - SP-TESTE",
            "latitude":-19.516919999999999,
            "longitude":-40.652200000000001,
            "name":"",
            "country":"BRA",
            "operation":"UNRESTRICTED"
         }
      }
   ],
   "restrictions":{
      "maxLoadingStops":1,
      "maxUnloadingStops":99,
      "maxDistanceBetweenLoadStops":9000,
      "allowInterleaving":"False",
      "maxDistanceBetweenUnloadStops":3000
   }
}

  • Mensagem de Resposta
:
Bloco de código
titleJson JSON de resposta Resposta do TPR
collapsetrue
{
   "success":true,
   "messages":[
      {
         "messageCode":"TPRRT0000",
         "message":"Sucesso."
      }
   ]
}

  • Mensagem de Retorno
:
Bloco de código
titleJson JSON de retorno Retorno do TPR
collapsetrue
{
   "responseDate":"2021-11-04T13:50:38.000-03:00",
   "version":null,
   "summary":{
      "totalTrips":1,
      "totalDistance":790.2284089297932,
      "totalStops":4,
      "totalVolume":0.27400800000000003,
      "totalWeight":6530.0,
      "totalDuration":3.9160278E7,
      "rejectedOrders":0,
      "rejectedWeight":0.0,
      "rejectedVolume":0.0
   },
   "tripsResults":[
      {
         "sequential":0,
         "distance":790.2284089297932,
         "numberOfStops":5,
         "volume":0.27400800000000003,
         "weight":6530.0,
         "duration":39160278,
         "extraTrip":false,
         "tollValue":0.0,
         "considerReturnDistance":true,
         "vehicle":"  000001",
         "stops":[
            {
               "sequence":0,
               "type":"LOAD",
               "locality":{
                  "identifier":"04-NEPO JUNDIAI - SP-TESTE",
                  "name":"",
                  "country":"BR",
                  "latitude":-19.51692,
                  "longitude":-40.6522,
                  "operation":"UNRESTRICTED"
               },
               "arrivalTime":"2021-11-05T08:00:00.000-03:00",
               "departureTime":"2021-11-05T08:15:00.000-03:00",
               "tollValue":0.0,
               "distance":0.0,
               "loadedOrders":[
                  {
                     "identifier":"04543517",
                     "volume":0.25,
                     "weight":1500.0
                  },
                  {
                     "identifier":"04543520",
                     "volume":0.019008,
                     "weight":5000.0
                  },
                  {
                     "identifier":"04543526",
                     "volume":0.005,
                     "weight":30.0
                  }
               ],
               "unloadedOrders":[
                  
               ]
            },
            {
               "sequence":1,
               "type":"UNLOAD",
               "locality":{
                  "identifier":"  PFISIC01",
                  "name":"VITÓRIA - ES",
                  "country":"BR",
                  "latitude":-20.30642,
                  "longitude":-40.35072,
                  "operation":"UNRESTRICTED"
               },
               "arrivalTime":"2021-11-05T10:00:37.292-03:00",
               "departureTime":"2021-11-05T10:15:37.292-03:00",
               "tollValue":0.0,
               "distance":140.82872152560284,
               "loadedOrders":[
                  
               ],
               "unloadedOrders":[
                  {
                     "identifier":"04543526",
                     "volume":0.005,
                     "weight":30.0
                  }
               ]
            },
            {
               "sequence":2,
               "type":"UNLOAD",
               "locality":{
                  "identifier":"  00458501",
                  "name":"CLIENTE LINHARES -ES",
                  "country":"BR",
                  "latitude":-19.36123,
                  "longitude":-40.05061,
                  "operation":"UNRESTRICTED"
               },
               "arrivalTime":"2021-11-05T12:04:01.970-03:00",
               "departureTime":"2021-11-05T12:19:01.970-03:00",
               "tollValue":0.0,
               "distance":144.54840026439211,
               "loadedOrders":[
                  
               ],
               "unloadedOrders":[
                  {
                     "identifier":"04543520",
                     "volume":0.019008,
                     "weight":5000.0
                  }
               ]
            },
            {
               "sequence":3,
               "type":"UNLOAD",
               "locality":{
                  "identifier":"  CLISC101",
                  "name":"CL GOV. VALADARES MG",
                  "country":"BR",
                  "latitude":-18.85791,
                  "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":"{\"sistema\":\"PROTHEUS\",\"identifier\":\"04000000108\",\"usuario\":\"Administrador\",\"modulo\":\"OMS\",\"empresa\":\"99\",\"routingType\":\"ROUTING\",\"filial\":\"PROTHEUS04\"}",\"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) - Programa OMSATPR1 - (Grupo OMSATPR1A ):

DescriçãoElementoRegra do elementoExemploCritério da capacidade ?TPRRoutingOptions:capacityCriteriaTipo de roteirização: PESO, VOLUME ou AMBOS.PESOPlanejamento para ?TPRRoutingOptions:routingInstantTypeDefine o instante a partir do qual as viagens podem ser expedidas: "Agora" Inicio 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+1Qtd. 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.

2Horário de carregamento ?TPRRoutingOrders:pickupTimeWindowStart

Horário inicial da janela de carregamento dos pedidos.

08:00Funcionamento filial ?TPRRoutingLocality:operationInformar 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 úteisConsidera retorno p/ filial ?TPRRoutingOptions:considerReturnDistance

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

SimQtd. máx. carregamentos ?TPRRoutingRestrictions:maxLoadingStops

Quantidade máxima de paradas de carregamento por viagem.

1Km máx. entre carregamentos ?TPRRoutingRestrictions:maxDistanceBetweenLoadStops

Máxima distância, em km, entre paradas de carregamento.

700Km máx. entre entregas ?TPRRoutingRestrictions:maxDistanceBetweenUnloadStops

Máxima distância, em km, entre paradas de entregas.

700Qtd. máx. de entregas ?TPRRoutingRestrictions:maxUnloadingStops

Quantidade máxima de paradas de entregas por viagem.

4Tempo 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:30Tempo 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:00Horário final das entregas ?TPRRoutingOrders:deliveryTimeWindowEnd

Horário final da janela de entregas.

18:00Funcionamento entregas ?TPRRoutingLocality:operationInformar 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):

ElementoCampoDescriçãoidentifierFwXfilial("DA3") + DA3_CODChave do VeículoweightCapacity

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.quantity1Quantidade de veículos, semelhantes a este, disponíveis.tollAxesQuantidade de eixos durante a viagem.tollReturnAxesQuantidade de eixos durante o retorno para a origem.

Informações enviadas dos pedidos (DE/PARA)

ElementoCampoDescriçãoidentifierFwXfilial("SC9") + C9_PEDIDOOs pedidos são enviados identificados pela filial + código do pedidoweight

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).pickupTimeWindowEndParâmetro "Horário final das entregas ?" + "Qtd. dias limite p/ entregas ?"O prazo de carregamento é o limite da entrega.deliveryTimeWindowStartParâ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. deliveryTimeWindowEndParâ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).originidentifierSM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOMEname

SM0->M0_CODFIL - SM0->M0_FILIAL - SM0->M0_NOME

countryBRAlatitudeDAR_LATITUlongitudeDAR_LONGIToperationParâmetro informado em "Funcionamento filial" OMSATPR1AdestinationidentifierFwXfilial("SA1") + A1_COD+A1_LOJA ou FwXfilial("SA2")+A2_NOME+A2_LOJA  name

A1_NREDUZ ou A2_NREDUZ

country

A1_PAIS ou A2_PAIS

latitude

DAR_LATITU

longitude

DAR_LONGIT

operationParâmetro informado em "Funcionamento entregas" OMSATPR1A

Apresente quais as transações/entidades que são trocadas e quem envia a informação para quem. Pode (e recomenda-se) ter um diagrama, uma tabela ou afins que apresente este fluxo.

Relacione quais são as mensagem únicas (TOTVSMessage) utilizadas e qual o seu relacionamento com as entidades já existentes do ERPs envolvidos.

Exemplos:

 

 Image Removed

Image Removed

Método

ID

Descrição

Origem

Destino

XSD (versões podem variar)

Cadastros

01

Cliente/Fornecedor

RM

Protheus

CustomerVendor_1_000.xsd

02

Moeda

RM

Protheus

Currency_1_000.xsd

03

Unidade de Medida

RM

Protheus

UnitOfMeasure_1_000.xsd

04

Produto

RM

Protheus

Item_?_000.xsd

05

Centro de Custo

RM

Protheus

CostCenter_1_000.xsd

06

Ativos

RM

Protheus

NOVA, Ativo fixo

07

Funcionários

RM

Protheus

Employee_1_000.xsd

08

Projeto

RM

Protheus

Project_1_000.xsd

09

Obra

RM

Protheus

SubProject_1_000.xsd

10

Tarefa

RM

Protheus

TaskProject_1_000.xsd

11

Meio de Pagamento

RM

Protheus

?????.xsd

12

Condições de pagamento

RM

Protheus

PaymentCondition_1_000.xsd

13

Coligada*
* implementado, mas o Protheus não vai enviar, estamos avaliando alternativa para preencher o de/para

RM

Protheus

Company_1_000.xsd

14

Filial*
* implementado, mas o Protheus não vai enviar, estamos avaliando alternativa para preencher o de/para

RM

Protheus

Branch_2_000.xsd

Processos

15

Solicitações (compras/armazém)

Protheus

RM

Request_1_000.xsd

16

Cancelar movimento (solicitação, OS, etc)

Protheus

RM

CancelRequest_1_000.xsd

17

Cancelar movimento (solicitação, OS, etc)

RM

Protheus

CancelRequest_1_000.xsd

18

Baixa de estoque

Protheus

RM

Request_1_000.xsd

19

Baixa de estoque

RM

Protheus

Request_1_000.xsd

20

Consulta Saldo

Protheus

RM

21

Apropriação de custos

Request _1_000.xsd

22

Geração de OS

23

Consulta de OS

24

Ampliação patrimonial

Fluxo das Informações

 

Para cada fluxo de informação descreva, se necessário, alterações de comportamento que o respectivo produto irá sofrer. Por exemplo: quando o Logix recebe o PEDIDO de OUTRO ERP, este pedido não poderá ser alterado no Logix.

Liste quais as entidades integradas e como é o mapeamento entre as diferentes estruturas. Por exemplo: Classe no sistema A vira categoria no sistema B, o campo X é refletido no campo Y etc.

Liste quais transações/operações a integração fará com as entidades relacionadas. Exemplo: Insert de PEDIDO, Insert, update de ITEM, buscar saldo em estoque do ITEM no dia X ou buscar dados do FUNCIONÁRIO.

Cadastros

Descreva características gerais do fluxo de informações e que serão comuns para este tipo de entidade. Características particulares para cada entidade deverão ser citadas em tópicos específicos de cada entidade.

Sempre que existir (a sugestão é sempre criar) e for agregador ao documento acrescentar aqui os diagramas/imagens ou até mesmo colocar tais diagramas diretamente na especificação dos processos

Em seguida faça uma descrição para cada um dos fluxos para cada entidade

 

<Transação/Entidade>

Identificador da Mensagem: <mensagem>

Versão: <versão>

Módulo <marca 1>: <BackOffice – Gestão xxxxxxx>

Módulo <marca 2>: <SIGAXXX>

Tipo de Envio: <Assíncrona/Síncrona>

Mensagem Padrão

PROTHEUS

RM

Tabela

Campo

Tabela

Campo

Code

CTO990

CTO_SIMB

GMOEDA

SIMBOLO *

Description

CTO990

CTO_DESC

GMOEDA

DESCRICAO

Symbol

CTO990

CTO_SIMB

GMOEDA

SIMBOLO

Notas:

Observações sobre comportamento desta mensagem ou dos processos envolvidos nela/para ela

A seguir descrever as variações, particularidades da mensagem e processos (integração) de acordo com cada marca

Limitações/Restrições

Descreva limitações e restrições para a integração que está sendo descrita.


 }

  • 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
  • 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 - Início 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

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
  • Não
Sim
Entregas ord. por estado(UF)?stateReturnForbidden

Quando informado:

  • Sim, não permitirá que a rota faça alternância de entregas entre Estados.
  • Não, a roteirização buscará pela melhor rota e se necessário haverá alternância de entrega entre Estados.
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:

  • Agora - Início das viagens na primeira hora factível, a partir do momento da roteirização mais uma hora.

  • D+1 - Início das viagens para amanhã, no primeiro horário factível de carregamento.

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:

  • 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

É 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
  • Não
Sim
Entregas ord. por estado(UF)?stateReturnForbidden

Quando informado:

  • Sim, não permitirá que a rota faça alternância de entregas entre Estados.
  • Não, a roteirização buscará pela melhor rota e, se necessário, haverá alternância de entrega entre Estados.
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.

tollAxesDA3_QTDEIXQuantidade de eixos na ida para cálculo do pedágio. Default 6.
tollReturnAxesDA3_QTEIXVQuantidade 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:

  • Agora: o planejamento somará uma hora para as entregas do mesmo dia.
  • 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 + 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

BRAPaís padrão da Filial (Brasil).

latitude

DAR_LATITUInformaçã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).

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


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


Image Added6. Fluxograma

6.1. Processo de Envio de Pedido de Vendas

draw.io Diagram
bordertrue
diagramNameOMSATPR1 - Envio de Pedidos de Venda
simpleViewerfalse
linksauto
tbstyletop
lboxtrue
diagramWidth641
revision3

6.2. Processo de Callback da Roteirização (Rotina em JOB)

draw.io Diagram
bordertrue
diagramNameOMSATPR2 - Callback Roteirização
simpleViewerfalse
linksauto
tbstyletop
lboxtrue
diagramWidth641
revision2

6.3. Processo de Alteração de Rota / Mapa 

draw.io Diagram
bordertrue
diagramNameProcesso de alteração de rota
simpleViewerfalse
linksauto
tbstyletop
lboxtrue
diagramWidth611
revision5

6.4. Callback Processo de Alteração de Rota / Mapa 

draw.io Diagram
bordertrue
diagramNameCallback processo de alteração de rota
simpleViewerfalse
linksauto
tbstyletop
lboxtrue
diagramWidth521
revision4



Image Added8. 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
titleExemplo de integração
collapsetrue
#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

Processos

Descreva características gerais do fluxo de informações e que serão comuns para este tipo de entidade. Características particulares para cada entidade deverão ser citadas em tópicos específicos de cada entidade.

Sempre que existir (a sugestão é sempre criar) e for agregador ao documento acrescentar aqui os diagramas/imagens ou até mesmo colocar tais diagramas diretamente na especificação dos processos

Em seguida faça uma descrição para cada um dos fluxos para cada entidade

 

<Transação/Processo>

Tipo de Fluxo: Protheus -> RM

Mensagem: Request_1_000

Versão: 1.000

Descrição de todo o comportamento e funcionamento do processo. Breve contexto, origem, regras, integração (geração da mensagem, envio, recebimento no destino), o quê supostamente irá ocorrer no destino, retorno, impacto, consequências, o que foi afetado, como conferir, validar, etc o retorno.

Acrescentar um diagrama do processo.

A seguir descrever as variações, particularidades da mensagem e processos (desta integração) de acordo com cada marca

Notas:

Observações sobre comportamento desta mensagem ou dos processos envolvidos nela/para ela

Limitações/Restrições

Descreva limitações e restrições para a integração que está sendo descrita. 

Limitações / Restrições Gerais

Descreva limitações e restrições para cada fluxo descrito no tópico anterior. Exemplo:

  • ERP1 envia ITEM cadastrado para o ERP2

ERP1 somente enviará o ITEM se este estiver em uma das famílias cadastradas no parâmetro FAMILIA_INTEGRACAO.

Se o tipo de valorização do estoque for FIFO.

  • ERP2 envia PEDIDO cadastrado para o ERP1

O pedido recebido no ERP1 vindo do ERP2 estará bloqueado para alteração.

 

Como fazer (opcional)

Descreva os passos que viabilizem a integração.

Exemplo:

Os passos para viabilizar a integração são:

  • No Logix ou no Protheus efetue o cadastro das seguintes informações: Clientes, fornecedores, transportadores, cidades, cotação de moeda e unidades de medida.
  • No Logix cadastrar um novo depositante e efetuar toda a parametrização necessária para a operação de WMS.
  • No Logix cadastrar um novo produto que seja controlado pelo WMS, para o depositante cadastrado anteriormente.
  • No Logix efetuar um processo de recebimento para o produto cadastrado anteriormente, utilizando uma nota fiscal provisória (tipo “A”).
  • No Protheus consultar a nota fiscal de recebimento que foi registrada no Logix, validando as informações recebidas.
  • No Logix efetuar um processamento de regularização fiscal, efetuando a cobertura dos produtos recebidos anteriormente.
  • No Protheus verificar se foi efetuado corretamente o relacionamento entre os dois documentos.
  • No Logix efetuar um processo de expedição para o novo produto cadastrado, até o momento do envio da mensagem de integração de pedido de venda.
  • No Protheus efetuar o faturamento do pedido de venda recebido.
  • No Protheus verificar se a nota fiscal gerada contém todas as informações necessárias para o segmento de operador logístico (armazém geral).
  • No Protheus efetuar a escrituração fiscal das notas fiscais, verificando se as regras da legislação deste segmento foram respeitadas.
  • No Logix é possível consultar o número do pedido de venda gerado para as notas fiscais de retorno simbólico e conta/ordem no programa WMS6333 (Consulta de Documentos). Para os processos de faturamento de serviço o número do pedido está disponível no programa WMS6411 (Movimentos a Faturar).

 

Situações comuns (opcional)

Descreva situações problemáticas comuns que podem ocorrer durante o funcionamento da integração e como solucioná-los. Neste ponto também é importante dar instruções de como reconhecer e investigar problemas que podem vir a ocorrer durante a integração. Se houver, apresente tabelas de códigos e descrições de erros que a integração poderá apresentar.

Este tópico possivelmente será alimentado com as experiências durante o desenvolvimento da integração e poderá ser realimentado durante o uso da integração no cliente.

Exemplo 1:

Tratamento de erros de integração (Produto A)

Erro

Mensagem

Solução

Código do erro

Mensagem exibida

Ação a ser tomada para resolução do erro.

Tratamento de erros de integração (Produto B)

Erro

Mensagem

Solução

Código do erro

Mensagem exibida

Ação a ser tomada para resolução do erro.

 

Exemplo 2:

Quando uma mensagem é enviada do Logix para o Protheus, podem ocorrer situações em que o WebService não estará totalmente funcional. Nestes casos uma mensagem de erro genérica irá aparecer na tela:

Exemplo:

Erro ao enviar a mensagem de Cidade via Integração

Se o arquivo de log for analisado, poderemos ver a falha na comunicação com o sistema destino:

-------------------------------------------------------------------------------

WSCERR044 / Não foi possível POST : URL http://172.16.31.57:8011/ws/FWWSEAI.apw

ADVPL WSDL Client 1.080707 / tst on 20120315 08:49:51

-------------------------------------------------------------------------------

Para resolver este problema, verifique as configurações do sistema de destino, analisando o funcionamento do servidor utilizado para esta comunicação e a habilitação do endereço do WebService. 

Checklist de suporte da aplicação

Crie um check-list de verificação de alguns pontos importantes para o funcionamento e atendimento da integração.

Instalação/Configuração

Relacione itens de verificação para garantir que a integração está corretamente instalada e configurada. Isto não pode ser uma cópia do procedimento de instalação/configuração, mas verificações pontuais que podem remeter aos itens da instalação.

Checklist de Verificações:

Relacione itens de verificações para que o atendente possa:

  • Identificar o funcionamento da integração;
  • Identificar a ocorrências de problemas;
  • Coletar evidências do mau funcionamento relatado pelo cliente;
  • Realizar possíveis ajustes na integração quanto à configuração ou negócio.
Anexos