Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

INTEGRAÇÃO OMS Protheus X Cockpit Logístico Neolog

Contexto de negócio (Introdução)

Integrar o módulo de Gestão de Distribuição (SIGAOMS) com a funcionalidade Programação de Transportes do Cockpit Logístico da Neolog por intermédio de arquivos no formato XML utilizando os Web Services já existentes do Cockpit Logístico, sem transformação de mensagens e sem utilização de sistemas intermediários (TOTVS EAI, TOTVS ESB, etc.).
Para esta integração foram consideradas as alterações necessárias para que o planejamento das montagens de cargas do módulo Gestão de Distribuição (SIGAOMS) da linha Microsiga Protheus utilize os recursos de Programação de Transportes do Cockpit Logístico. A Programação de Transportes fará a roteirização e o arranjo das cargas com base na demanda de transportes enviadas pelo SIGAOMS considerando as configurações das restrições logísticas e as funções-objetivos de otimização registradas no Cockpit Logístico. São exemplos de funções-objetivo: máxima ocupação dos veículos, diminuição dos prazos de entrega e redução da quantidade de viagens.
Para tanto, são utilizados os cadastros básicos já disponibilizados na integração entre o SIGATMS x Cockpit Logístico, sendo eles: 

...

Foi disponibilizado apenas um novo cadastro para a integração "Transportadoras". O cadastro de fornecedor foi ajustado permitindo que quando a integração OMS x CPL estiver habilitado o mesmo seja enviado como uma "Localidade", para o Cockpit Logístico.
Além dos cadastros, foi realizado a integração dos pedidos de venda que utilizam as "Cargas", os pedidos de venda são enviados para o Cockpit Logístico gerando "Pedidos de Transportes", para estes, o Cockpit Logístico realiza a análise e geração da viagem. 
Após a geração da viagem no Cockpit Logístico, este se integra com o SIGAOMS para a geração das Cargas.

Sistemas Envolvidos

Descrição dos sistemas envolvidos no contexto de negócio (e que serão envolvidos na integração).

  • TOTVS Gestão de Distribuição (SIGAOMS)  A sigla OMS significa Order Management System, ou seja, gerenciamento de pedidos e serviços e compreende as fases de captação, validação, avaliação, formação de carga e geração de mapa de separação ou, como é também conhecido, lista de separação. Para saber mais sobre o OMS TOTVS clique no link: https://www.totvs.com/mktfiles/tdiportais/helponlineprotheus/portuguese/sigaoms.htm
  • Cockpit Logístico Neolog O Cockpit Logístico é um sistema vertical desenvolvido pela Neolog, empresa do ecossistema TOTVS, que dispõe de módulos para Planejamento da Malha de Distribuição, Programação de Transportes e Monitoramento de Cargas. Para saber mais sobre o Cockpit Logístico Neolog clique no link: http://www.neolog.com.br/neolog-site/index.php/cockpit-logistico/

Integração

O objetivo é integrar o módulo de Gestão de Distribuição (SIGAOMS) com a funcionalidade Programação de Transportes do Cockpit Logístico da Neolog por intermédio de arquivos no formato XML utilizando os Web Services já existentes do Cockpit Logístico, sem transformação de mensagens e sem utilização de sistemas intermediários (TOTVS EAI, TOTVS ESB, etc.).

Escopo

O escopo desta integração permitirá o envio dos pedidos de venda liberados (crédito / estoque) no SIGAOMS para a formação das viagens no Cockpit Logístico. E o recebimento dessas viagens geradas no Cockpit Logístico por meio de um XML no SIGAOMS para a geração das CARGAS. 
As entidades e os pontos de integração que farão parte do escopo dessa integração são: 

Entidade

Pontos de Integração

Transportadora

  • Cadastro de Transportadoras
  • Edição Transportadoras

Fornecedor

  • Cadastro de Fornecedores
  • Edição de Fornecedor

Tipo de Veículo

  • Cadastro de Tipo Veículo
  • Edição de Tipo Veículo

Cliente

  • Cadastro de Cliente
  • Edição de Cliente

Empresas/Filiais

  • Cadastro de Empresas/Filiais
  • Edição de Empresas/Filiais

Produto

  • Cadastro de Produto
  • Edição de Produto

Pedidos de Venda

  • Envio dos Pedidos de Vendas ao Cockpit Logístico
  • Cancelamento dos Pedidos de Vendas

Montagem de Carga

  • Geração da viagem no Cockpit Logístico
  • Liberação da Viagem no Cockpit Logístico
  • Montagem de cargas OMS
  • Liberar Viagem no OMS

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

Cockpit Logístico
Cockpit Logístico na versão\release 5.6.1. Parâmetros de aquisição ativos (acesso pelo menu em Administração - Cockpit Logístico). Web Services ativos.
 Protheus
Protheus versão 11.8 ou superior. Parâmetro de integração com Cockpit Logístico ativo (MV_CPLINT == .T.) Web Service de integração válido informado (MV_CPLURL)
Todos os parâmetros citados encontram-se no programa Parâm Integração  (OMSXCPL1) que pode ser acessado pelo menu Atualizações - Cockpit Logístico.
 
Atenção: Não é escopo desse documento descrever a instalação do ERP Protheus e do Cockpit Logístico Neolog nem suas configurações básicas.
É imprescindível a atualização do Protheus 11.8 por meio da execução do compatibilizador OMSP11R1.
Para ver o documento técnico referente a esta integração utilize este link: DT_Integracao_OMS_Neolog
Para que a integração possa funcionar corretamente, o ambiente deve conter o módulo SIGAOMS e o Cockpit Logístico devidamente configurados.

...

Bloco de código
languagejava
themeEclipse
titleappserver.ini
collapsetrue
[OnStart]
jobs=FWSCHDMANAG,FWSCHDQUEUE
RefreshRate=60
[FWSCHDMANAG]
Main=FWSCHDMANAG
Environment=<ambiente>
[FWSCHDQUEUE]
Main=FWSCHDQUEUE
Environment=<ambiente>

Instalação/Atualização

Vide tópico Pré-requisitos instalação/implantação/utilização.

Protheus

Vide tópico Pré-requisitos instalação/implantação/utilização.

Controle de Versão

O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.

Suporte

O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim as equipes de suporte dos produtos Backoffice Protheus estarão aptas a fazer a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.
Observação: Este modelo de suporte está sendo revisado pela TOTVS.

Transações/Entidades/Mensagens únicas

Método

ID

Descrição

Origem

Destino

XSD (versões podem variar)

Cadastros

01

Transportadora

Protheus

Cockpit Logístico

updateCarriers

 

02

Fornecedor

Protheus

Cockpit Logístico

LocalityAcquisitionService

 

03

Produtos

Protheus

Cockpit Logístico

ProductAcquisitionService

 

04

Empresas/Filiais

Protheus

Cockpit Logístico

LocalityAcquisitionService

 

05

Tipo de Veículo 

SIGAOMS

Cockpit Logístico

VehicleAcquisitionService

 

06

Cliente 

Protheus

Cockpit Logístico

updateLocalities

Processos

07

Enviar viagens

Cockpit Logístico

SIGAOMS

ReleaseTripPublishRequestService

 

08

Liberar Viagens

SIGAOMS

Cockpit Logístico

UnblockReleasedTripAcquisition

 

09

Montagem de Carga

SIGAOMS

Cockpit Logístico

UnblockReleasedTripAcquisitionService

 

10

Pedido de Vendas

SIGAOMS

Cockpit Logístico

OrderAcquisitionService

 

11

Cancelar Pedido de Vendas

SIGAOMS

Cockpit Logístico

OrderAcquisitionService

Fluxo das Informações

Os cadastros devem ser realizados no OMS Protheus e integrados para o Cockpit Logístico, a ativação da integração, no entanto, não impede a inclusão, alteração e exclusão de registros no Cockpit Logístico, mas esse procedimento não é recomendado pois as operações realizadas sobre os cadastros no Cockpit Logístico não são replicadas para os respectivos cadastros no Protheus.
Apenas as operações de inclusão e alteração são consideradas na integração e são efetuadas sempre que ocorrerem. A operação de eliminação sobre os registros de cadastros não é integrada pois não é possível verificar a integridade referencial no sistema de destino para considerá-la como restrição de eliminação dos registros no Protheus.
O sucesso das operações de inclusão e alteração de registros pode ser verificado acessando o programa de consulta no menu do Cockpit Logístico em: Interface - Log. O sistema de origem dos dados não recebe o status do processamento dos registros enviados, por isso considera integrado com base apenas na confirmação de recepção da mensagem de integração.

...

No próximo tópico são listadas as correspondências entre os campos de cada entidade e a respectiva tag XML da mensagem de integração.

Cadastros

Mensagem de integração dos registros do cadastro de "Tipo de Veículo"

...

Campo Protheus

Tag XML

Campo Cockpit Logístico

Observações

MV_CPLREG 

regionSourceId 

Regional

 

"CLI-" + RTRIM(SA1->A1_COD) + "" + RTRIM(SA1>A1SA1>A1_LOJA)

identifier 

Código

 

A1_NREDUZ 

name 

Nome 

 

A1_NOME 

description 

Descrição 

 

A1_END 

addressStreet 

Endereço 

 

 

addressNumber 

Nº 

Obter o conteúdo usando a função LjFiGetEnd sobre o campo A1_END 

A1_COMPLEM 

addressComplement 

Complemento 

 

A1_BAIRRO 

addressDistrict 

Bairro 

 

A1_CEP 

addressZipCode 

CEP 

 

A1_MUN 

addressCity 

Cidade 

 

A1_EST

addressStateAcronym 

UF 

 

"BR" ou YA_SIGLA 

addressCountryAcronym 

País 

Acessar a tabela SYA pelo campo A1_PAIS. Quando A1_PAIS em branco ou igual a 105 atribuir "BR" 

"2"

logisticRoleId 

Tipo 

2=Destino (por orientação da Neolog para gerar menos combinações de rota)

...

Campo Protheus

Tag XML

Campo Cockpit Logístico

Observações

MV_CPLREG

regionSourceId 

Regional

 

"FOR-" + RTRIM(SA2->A2_COD) + "" + RTRIM(SA2>A2SA2>A2_LOJA)

identifier

Código

Será adicionado a sigla "FOR" para composição do código para identificação que se trata de um fornecedor para uso como uma localide devido aos pedidos de beneficiamento do OMS.

A2_NREDUZ

name

Nome

 

A2_NOME

description

Descrição

 

A2_END

addressStreet

Endereço

 

 

addressNumber

Obtido por meio do campo A2_END

A2_COMPLEM

addressComplement 

Complemento

 

A2_BAIRRO

addressDistrict 

Bairro 

 

A2_CEP

addressZipCode

CEP 

 

A2_MUN

addressCity 

Cidade

 

A2_EST

addressStateAcronym 

UF

 

A2_PAIS / "BR" ou YA_SIGLA

addressCountryAcronym

País

Quando A2_PAIS em branco ou igual a 105 atribuido "BR" 

"2"

logisticRoleId 

 Tipo 

2=Destino (por orientação da Neolog para gerar menos combinações de rota)

...

Campo Protheus

Tag XML

Campo Cockpit Logístico

Observações

MV_CPLREG

regionSourceId 

Regional

 

MV_CPLIDS 

integrationDataSource 

Integração

 

"1"

orderTypeSourceId 

Tipo do Pedido

 

RTRIM(SC5->C5_FILIAL) + "" + RTRIM(SC5>C5SC5>C5_NUM)

identifier

 

SC5->(RECNO())

RTRIM(SC5->C5_FILIAL) + "" + RTRIM(SC5>C5SC5>C5_NUM)

code

Código do Ped. Transp.

 

"0"

priority 

Prioridade

 

Date()

erpCreationDt 

Data Corrente

Data de criação do pedido

Date()

pickupStart

Janela Embarque

 

Date() ou C5_FECENT

deliveryStart

Janela Entrega

Data corrente ou data informada no pedido de venda

Date() ou C6_ENTREG ou C9_DATENT 

deliveryEnd 

Janela Entrega

 

C9_PEDIDO

orderId 

ID do Pedido de Transporte

 

RTRIM(SC5->C5_FILIAL)+""+RTRIM(SC5>C5SC5>C5_NUM) +  C9_ITEM

sourceId

 

 

C9_PRODUTO

productId 

Produto

 

C9_QTDLIB 

quantity

Quantidade total de unid.

 

C9_PRCVEN 

price

Valor Total de unid. De prod.

 

"FIL-" + RTRIM(SC5->C5_FILIAL)

originId

Origem Inicial

 

"CLI-" + RTRIM(SC5->C5_CLIENT) + "" + RTRIM(SC5>C5SC5>C5_LOJAENT)

destinationId

ID da Localidade de destino do Pedido

 

C9_QTDLIB 

quantityInShipmentUnits 

 

 

B5_ALTURLC

height

 

Quando houver relacionamento com o B1_PRODUTO, quando vazio será enviado por default o contéudo = 0.001

B5_LARGLC

width

 

Quando vazio por default o contéudo enviado será = 0.001

B5_COMPRLC

length

 

Quando vazio por default o contéudo enviado será = 0.001

B1_PESO ou B1_PESBRU

weight 

 

De acordo com a configuração do parâmetro MV_PESOCAR, verificar o
conteúdo do parâmetro por meio da função OsPesoProd e enviar os dados.
Quando vazio por default o contéudo enviado será = 0.001

MV_CPLEMB

shipperId

ID do Embarcador

 

"1"

modal

ID do modal do pedido de transporte

Enviar valor fixo 1 - Rodoviário

C5_TPFRETE

incoterm

 

Sendo o conteúdo C = 1 e F = 0 para o CPL, quando o campo for vazio iremos passar sempre 1.

MV_CPLINV

shipmentUnitWrapperCode

Invólucro de embarque

 

...

Campo Protheus

Tag XML

Campo Cockpit Logístico

Observações

DK1_UNIDID

identifier

 

 

DK1_REGID

RegionalSourceId

Regional

 

DK1_VIAGID

Viagem

Viagem CPL

 

DK1_PEDROT

orderSourceId

Pedido CPL

 

DK1_PRODUTO

productSourceId

Produto

 

DK1_QTD

quantity

Quantidade  

 

DK1_PRECO

price

Preço

 

DK1_DATENT

deliveryDate

Dt/Hr Entrg 

 

DK1_ORIGEM

integrationSource

ID da origem de dados

 

Processos

Foi realizado tratamento na rotina OMSXCPL2 para a carga de dados do SIGAOMS para o Cockpit Logístico, permitindo a sincronização dos cadastros de Filiais, Clientes, Produtos, Tipos de Veículos, Fornecedores e Transportadora. 
Além disso, foi disponibilizada uma nova rotina(OMSXCPL6) que permite a seleção e envio de pedidos de vendas criados no OMS para o CPL gerando pedidos de transporte, e uma nova rotina(OMSXCPL7) que monitora e recebe as viagens geradas no CPL para posterior geração de carga e liberação no Protheus.
 

Fluxo do Processo


Clientes
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: LocalityAcquisitionService
Versão: 1.000
Ao cadastrar um cliente no Protheus, quando a integração estiver ativa, os dados serão enviados ao Cockpit Logístico por meio do método updateLocalities, esses dados por sua vez serão salvos como localidade, e poderão ser visualizados no CPL em: CADASTRO -> Localidades

...


Pedidos de venda
Tipo de Fluxo: Protheus -> Cockpit Logístico
Mensagem: OrderAcquisitionService
Versão: 1.000
Ao cadastrar um Pedido de venda no Protheus, quando a integração estiver ativa, os dados são enviados ao Cockpit Logístico por meio do método OrderAcquisitionService, esses dados por sua vez geram no CPL Pedidos de transporte e poderão ser visualizados em: PROGRAMAÇÃO -> Analise, deve-se filtrar os dados da cesta geral.
No SIGAOMS, foi disponibilizado um programa(OMSXCPL6) que permite selecionar uma lista com os pedidos de venda para envio ao Cockpit Logístico. Os pedidos deverão estar liberados por crédito e estoque e com o campo "Carga" igual a 1 = Utiliza.
O cancelamento do pedido no CPL pode ser feito por meio de duas rotinas: 
Cancelamento via rotina Preparação dos Documentos de Saída (MATA460A):

    • Quando houver o cancelamento de uma liberação do pedido de venda por meio da rotina "Preparação dos Documentos de Saída", opção "Ações Relacionadas" "Estor. Docs" na confirmação da exclusão do registro, é realizado o envio do cancelamento ao CockPit Logístico.

Cancelamento via rotina Pedido de Venda (MATA410):

    • Alteração de um pedido de venda já liberado na rotina "Pedido de Venda" (MATA410):
      •  Ao confirmar a alteração o sistema realiza a exclusão do registro liberado, assim é realizado o envio do cancelamento ao CockPit Logístico.
    • Alteração de pedido de venda já liberado e com nova liberação na própria rotina (MATA410):
      • Ao confirmar a alteração com nova liberação o sistema exclui o registro anterior e recria um novo registro com as informações da alteração. Assim é realizado o envio do cancelamento para o Cockpit Logístico e o envio de um novo pedido liberado. 


Cargas
Tipo de Fluxo: Cockpit Logístico -> Protheus
Mensagem: ReleaseTripPublishRequestService
Versão: 1.000
O Cockpit Logistico envia as viagens geradas para o SIGAOMS para a formação das Cargas. O envio é realizado pela chamada do WebService  ReleaseTripPublishRequestService, para isso foi disponibilizado um programa monitor para receber estas viagens(OMSXCPL7). 
A rotina oferece a opção de marcação dos registros e um botão "Gera Carga" para geração das Cargas no OMS.  
Uma vez recebida a viagem do Cockpit e gerada a Carga no SIGAOMS, após a geração do documento fiscal da carga (NF de Saída) é enviada novamente ao Cockpit uma mensagem de retorno com a confirmação da gravação da Carga e documento de saída, assim o Cockpit confirma a viagem gerada, este retorno é realizado pelo WebService publishReleasedTripResponse, mensagem UnblockReleasedTripAcquisition. Esta chamada ocorre por meio da opção "Liberar Viagem".
 

Como fazer (opcional)

Ver item "Procedimento para Utilização" no documento técnico DT_LOGTMS01-512 - RÉPLICA _IINTEGRAÇÃO_OMS_X_COCKPIT_LOGÍSTICO_NEOLOG

Checklist de suporte da aplicação

Instalação/Configuração

  • Pelo programa Parâm Integração (OMSXCPL1) informe e teste a URL do Web Service do Cockpit Logístico.

...