Histórico da Página
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.
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 Ciclo de Vida de Software - TOTVS Linha Protheus. |
Para realizar a integração é necessário possuir os novos programas ou atualizações dos programas do Faturamento, OMS e TMS:
Módulo | Programa | Descrição |
---|---|---|
Faturamento | FATXFUN.PRX | Funções genéricas FAT |
Faturamento | MATA410.PRX | Pedidos |
Faturamento | MATA461.PRX | Estorno de Pedidos |
Faturamento | MATV410.PRW | Funções para o Estorno de Pedidos |
OMS | OMSA200.PRW | Montagem de Carga |
OMS | OMSATPR1.PRW | Envio de Pedidos - TPR (Menu) |
OMS | OMSATPR1A.PRW | Funções do Envio de Pedidos - TPR |
OMS | OMSATPR2.PRW | Processamento do callback do retorno das viagens/carga - TPR |
OMS | OMSATPR3.PRW | Visualização do mapa da carga gerada (OMSA200 > Ações Relacionadas > Visualizar Mapa) |
OMS | OMSATPR4.PRW | Validações para a alteração e estorno de pedidos integrados com o TPR |
OMS | OMSXFUN.PRW | Funções genéricas OMS |
TMS | TMSAC18.PRW | Métodos de Envio - Integração Planejamento de Rotas |
TMS | TMSAC19.PRW | Consulta Planejamento de Rotas: Rotina que armazenará as informações referentes ao envio de informações para a integração Totvs Planejamento de Rotas (TPR) |
TMS | TMSAC20.PRW | Configuração Planejamento de Rotas: Rotina principal para realizar o cadastro e habilitar a integração Totvs Planejamento de Rotas (TPR). |
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. |
TMS | TMSAC24.PRW | Montagem e visualização do Mapa |
TMS | TMSAC25.PRW | Montagem e visualização do Mapa |
TMS | TMSAO15.PRW | Cadastro Referencia Geográfica |
TMS | TMSAO48.PRW | Integração Rota Inteligente |
TMS | TMSO46API.PRW | Métodos CallBack Planejamento de Rotas |
Para a integração é necessário realizar algumas configurações no appserver.ini
- Configuração do REST do Protheus (appserver.ini)
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 |
- Configurações HTTP (appserver.ini)
Bloco de código | ||||
---|---|---|---|---|
| ||||
[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 |
- Configurar Portais e Webservices (appserver.ini)
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 |
- Parâmetros utilizados (SIGACFG):
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. Informar .F. após a implantação. Incluir no ini do REST, na sessão do enviroment, a chave FWTRACELOG=1 | |
MV_HVERAO | Verifica 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_CDCLFR | Código da Classificação de Frete Padrão usado na importação de Documentos de Carga. Preenche o campo DAK_CDCLFR. | |
MV_OMSENTR | Define 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:
Campo | Valor |
---|---|
X6_VAR | MV_TPRCLOG |
X6_TIPO | L |
X6_DESCRIC | Define 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.
- Configurar as URLs de integração TPR - (Totvs Planejamento de Rotas) - Passo a passo TMSAC20
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.
- A geolocalização pode ser incluída/alterada ou visualizada pelo programa de Referência Geográfica (TMSA015 - SIGATMS)
ntegrações
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çõ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 coordenadas geradas (TMSAO15 - Tabela DAR).
Exemplo de envio:
- 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:
- 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 coordenadas geradas (TMSAO15 - Tabela DAR).
Exemplo de envio:
Bloco de código | ||||
---|---|---|---|---|
| ||||
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 |
2 - Envio de pedidos para roteirização: A integração depende dos pedidos, dos veículos selecionados e os parâmetros de integração:
Documentação da API TPR: Integração de Roteirização - ERPs
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", "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 | ||||
---|---|---|---|---|
| ||||
{ "success":true, "messages":[ { "messageCode":"TPRRT0000", "message":"Sucesso." } ] } |
Mensagem de Retorno:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{ "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\":\"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) - Programa 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" 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+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 | Informar 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. |
tollAxes | Quantidade de eixos durante a viagem. | |
tollReturnAxes | Quantidade de eixos durante o retorno para a origem. |
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 | BRA | País padrão da filial |
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 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 |
DAR_LATITU
DAR_LONGIT
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:
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.
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) informado antes de enviar os pedidos para planejamento via OMSATPR1 |
Processo de utilização
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.