Tempo aproximado para leitura: 00:15:00 min
Dúvida
Quais os critérios das APIs Protheus - V1 para integração com TOTVS WMS SaaS?
Ambiente
TOTVS Logística - TOTVS WMS (SAAS) - Integração - Todas as versões
Solução
Para integração com o WMS SaaS, foram desenvolvidas API’s REST em ADVPL, sendo elas:
1. Processo de Recebimento
1.1 Documentos de Entrada
1.1.1 Liberar documento para integração
Sentido: ERP → WMS SaaS
Programa: Pré nota de Entrada - MATA140 e Documento de Entrada - MATA110
Antes de realizar a integração com o WMS SaaS o documento de entrada precisa ser liberado para integração. Para isso pode-se utilizar a seguinte função:
Confirmação da liberação:
Após isso o documento é liberado para integração.
1.1.2 Buscar Documentos
Sentido: ERP → WMS SaaS
Programa: Pré nota de Entrada - MATA140 e Documento de Entrada - MATA110
Para os verbos GET só serão disponibilizados para retorno, os documentos que entrarem nos critérios abaixo:
- Tipo - F1_TIPO é igual a Normal, Devolução ou Beneficiamento
- TES - D1_TES é diferente de VAZIO ou TES - D1_TES é igual a VAZIO e Status Conferência - F1_STATCON é igual a 4. Se documento de entrada, TES deve controlar ESTOQUE - F4_ESTOQUE = 'S'.
- Quantidade - D1_QUANT é maior do que 0.
- RecnoDelete - R_E_C_D_E_L_ é igual a 0.
- Filial - F1_FILIAL é igual a filial logada xFilial(“SF1”).
- Apenas os produtos que tenham relação com a tabela NNR - Armazéns .
- Caso o cliente seja um operador logístico, utiliza-se o cadastro de depositantes como base para a busca dos documentos. Sendo assim, o sistema só irá listar os documentos que tiverem fornecedores com mesmo CNPJ e Inscrição Estadual que algum dos depositantes. No caso de um documento de beneficiamento, a mesma regra se aplica na tabela de clientes.
1.1.2.1 Campos específicos no recebimento
A integração está preparada para integrar o campo "observacao" e "subtipoFluxoProcesso" no documento do WMS. Para tanto, deve-se customizar a api do Protheus para que ela envie esta informação conforme o campo esperado.
1.1.3 Atualizar Status Documentos
Sentido: ERP ← WMS SaaS
Programa: Pré nota de Entrada / Documento de Entrada - MATA140/MATA103
Atualiza o campo de Status Conferência - F1_STATCON para 3.
1.1.4 Cancelar Documentos
Sentido: ERP ← WMS SaaS
Programa: Pré nota de Entrada / Documento de Entrada - MATA140/MATA103
Atualiza o campo de Status Conferência - F1_STATCON para 0 permitindo liberar documento para alteração / exclusão.
1.1.5 Finalização Conferência
Sentido: ERP ← WMS SaaS
Programa: Pré nota de Entrada / Documento de Entrada - MATA140/MATA103
Ao final da conferência, caso o documento do Protheus esteja com status de Conferência divergente, Documento integrado ou Liberado para integração, ele sofrerá as seguintes atualizações:
- Será gravado o status recebido da conferência, que poderá ser Conferência finalizada - 1 ou Conferência divergente - 2
- Caso o status seja diferente de de 2, será validado se o status gravado é igual a Documento integrado - 3. Nesse caso, será retornado que a conferência foi reiniciada.
Caso o documento do Protheus não esteja com status de Conferência divergente, Documento integrado ou Liberado para integração, será retornado que o documento já foi conferido.
1.1.6 Reiniciar Conferência
Sentido: ERP ← WMS SaaS
Programa: Pré nota de Entrada / Documento de Entrada - MATA140/MATA103
Atualiza o campo Status Conferência - F1_STATCON de acordo com os dados retornados pelo WMS SaaS - Status 3.
2. Processo de Expedição
2.1 Pedido de Venda
2.1.1 Liberar documento para integração
Sentido: ERP → WMS SaaS
Programa: Pedidos de Venda - MATA410
Antes de realizar a integração com o WMS SaaS o documento de pedido de venda precisa ser liberado para integração. Para isso pode-se utilizar a seguinte função:
Confirmação da liberação:
2.1.2 Buscar Pedidos
Sentido: ERP → WMS SaaS
Programa: Pedidos de Venda - MATA410
Para os verbos GET só serão disponibilizados para retorno, os pedidos de venda que entrarem nos critérios abaixo:
- TIPO C5_TIPO é igual a Normal, Devolução ou Beneficiamento.
- Gera WMS C5_GERAWMS é igual a 1=No Pedido.
- Tipo Carga C5_TPCARGA é igual a 2=Não utiliza.
- RecnoDelete R_E_C_D_E_L_ é igual a 0.
- Liberação C5_LIBEROK é igual a S=Sim.
- Nota C5_NOTA é igual a VAZIO.
- Não exista Quantidade liberada C9_QTDLIB maior do que 0 e Controle de Estoque F4_ESTOQUE igual a S=Sim e:
- Não possua bloqueio de estoque C9_BLEST.
- Não possua bloqueio de crédito C9_BLCRED.
- Não possua bloqueio de WMS C9_BLWMS.
- Apenas os produtos que tenham relação com a tabela NNR - Armazéns
- Apenas clientes que tenham relação com a tabela SA1 - Clientes
- Filial - C5_FILIAL é igual a filial logada xFilial(“SC5”).
- Bloqueio C5_MSBLQL é igual a vazio.
2.1.3 Atualizar Status Pedido de venda
Sentido: ERP ← WMS SaaS
Programa: Pedidos de Venda - MATA410
Atualiza o campo de Status do Pedido C5_MSBLQL para 1=Bloqueado quando o pedido é integrado com o WMS SaaS.
2.1.4 Cancelar Pedido de venda
Sentido: ERP <- WMS SaaS
Programa: Pedidos de Venda - MATA410
Atualiza o campo de Status do Pedido C5_MSBLQL para 3=Aguardando liberação para integração.
2.1.5 Finaliza Separação de Estoque
Sentido: ERP ← WMS SaaS
Programa: Pedidos de Venda - MATA410
Atualiza as liberações do itens do pedido tabela SC9 conforme retorno do WMS SaaS e libera os itens para faturamento.
Realizar a aglutinação ou segregação dos lotes conforme o que foi separado no WMS SaaS. Se indicado lote na tabela SC6, será utilizado ele para separação.
2.1.6 Atualização do número da NF
Sentido: ERP → WMS SaaS
Programa: Pedidos de Venda - MATA410
Ao ser realizado o faturamento do pedido de venda, o número da NF gerada C5_NOTA é atualizado no WMS SaaS para informação.
2.2 Pedido de Venda (LIBERAÇÃO PARCIAL)
2.2.1 Habilitar o parâmetro de integração parcial
Sentido: ERP → WMS SaaS
Programa: Configurador - SIGACFG
Deve-se alterar o parâmetro MV_WMSPVPC para .T. :
2.2.2 Habilitar o documento para integração
Sentido: ERP → WMS SaaS
Programa: Pedidos de Venda - MATA410
Para que um pedido seja elegível para a integração com o WMS, ele deve ser liberado para a separação via MATA410. Para isso deve-se utilizar a seguinte função:
Confirmação da liberação:
2.2.3 Liberar a quantidade desejada do pedido
Sentido: ERP → WMS SaaS
Programa: Liberação de Pedidos de Venda - MATA440
Para efetivamente liberar uma quantidade específica de um pedido de venda, deve-se acessar a rotina MATA440, acionar o botão Liberar, informar a quantidade desejada e salvar:
Após a execução deste processo, o sistema preencherá automaticamente o campo C9_IDDCF - Seq. Liberação que será usado juntamente com o número do pedido na montagem do documento de expedição do SaaS ex: Pedido 000141 Seq.Liberação 0001, documento SaaS = 0001410001. Deve-se então aguardar a execução do JOB do WMS SaaS que irá integrar o documento. O documento integrado poderá ser visualizado através do monitor de integrações:
2.2.4 Visualizar as liberações realizadas para um pedido
Programa: Liberação de Pedidos de Venda - MATA440
Para visualizar as liberações realizadas para um pedido específico, deve-se acessar o MATA440, acessar outras ações e clicar em Lista Itens Saas:
As demais funcionalidades do processo seguem iguais ao pedido completo.
2.3 Pedido de Venda com Carga
2.3.1 - Criar pedido com Carga
Criar um pedido de venda com o campo Carga - C5_TPCARGA = 1 - Utiliza
2.3.2 - Criar carga para o pedido.
No módulo OMS - OMSA200, realizar a montagem da carga. O sistema só permitirá a montagem de carga de pedidos que estejam com o campo C5_MSBLQL = 3 - NAO INTEGRA.
2.3.3 - Liberar carga para o WMS:
Na tela de cargas, posicionar sobre o registro da carga e ir em Outras Ações→ Liberar Separação SaaS. Após processamento, caso o cliente utilize Pedido Parcial, os registros da SC9 para a carga em questão terão o campo C9_IDDCF preenchidos. O campo DAK_BLWMS também é atualizado para 01 = Enviado WMS.
2.4 Nota Fiscal de Saída
2.4.1 Buscar Notas de Saída
Sentido: ERP → WMS SaaS
Programa: Documento de Saída - MATA460
Para os verbos GET só serão disponibilizados para retorno, as notas que entrarem nos critérios abaixo:
- TIPO - F2_TIPO é igual a Normal, Devolução ou Beneficiamento
- RecnoDelete - R_E_C_D_E_L_ é igual a 0.
- Apenas clientes que tenham relação com a tabela Clientes
- Filial F2_FILIAL é igual a filial logada xFilial(“SF2”).
-
TES que movimenta estoque F4_estoque = S
2.5 Remito de devolução
2.5.1 Buscar remito de devolução
Sentido: ERP → WMS SaaS
Programa: Remito devolucion - MATA102DN
Para a integração de remito de devolução, basta que o remito seja inserido através da rotina MATA102N e atenda aos requisitos:
- TIPO - F2_TIPO igual a Devolução
- RecnoDelete R_E_C_D_E_L_ é igual a 0.
- Apenas clientes que tenham relação com a tabela Clientes.
- Filial - F2_FILIAL é igual a filial logada xFilial(“SF2”).
- TES que movimenta estoque F4_estoque = S
- F2_ESPECIE seja igual a 'RCD'
3. Processo de Manufatura
3.1 Requisição para produção
Sentido: ERP → WMS SaaS
Programa: Ordem de Produção - MATA380
Para os verbos GET só serão disponibilizados para retorno, os empenhos que entrarem nos critérios abaixo:
- Data Final - C2_DATRF é igual a VAZIO
- Filial - C2_FILIAL é igual a filial logada xFilial(“SC2”).
- Delete - D_E_L_E_T_ é igual a vazio.
- Apenas produtos que tenham relação com a tabela SAH - Unidades de Medida
- Apenas os produtos que tenham relação com a tabela NNR - Armazéns
3.1.1 Campos Específicos
Para documento de requisição de produção é possível a inclusão da informação de endereço de produção no payload de forma especifica através de customização da API incluindo o campo enderecoProducao do tipo String, conforme o exemplo abaixo:
Para documento de requisição de produção é possível incluir também de forma especifica no payload, o campo subtipoFluxoProcesso do tipo String, conforme o exemplo abaixo:
Para documento de requisição de produção é possível incluir também de forma especifica no payload, o campo referenciaProducao do tipo String, conforme o exemplo abaixo:
3.2 Devolução de produção
Sentido: ERP → WMS SaaS
Programa: Ordem de Produção - MATA380
Para os verbos GET só serão disponibilizados para retorno, os empenhos de devolução que entrarem nos critérios abaixo:
- Data Final - C2_DATRF é diferente de VAZIO
- Quantidade - C2_QUANT é maior do que Quantidade Entregue - C2_QUJE
- Filial - C2_FILIAL é igual a filial logada xFilial(“SC2”).
- Delete - D_E_L_E_T_ é igual a vazio.
- Apenas produtos que tenham relação com a tabela SAH - Unidades de Medida
-
Apenas os produtos que tenham relação com a tabela NNR - Armazéns
3.2.1 Campos Específicos
Para documento de devolução de produção é possível incluir também de forma especifica no payload, o campo subtipoFluxoProcesso do tipo String, conforme o exemplo abaixo:
Para documento de devolução de produção é possível incluir também de forma especifica no payload, o campo referenciaProducao do tipo String, conforme o exemplo abaixo:
3.3 Apontamento de Produção
3.3.1 - Inclusão de apontamento
Sentido: ERP → WMS SaaS
Programa: Ordem de Produção - MATA250
Para os verbos GET só serão disponibilizados para retorno, os empenhos que entrarem nos critérios abaixo:
- Data Final - D3_OP é DIFERENTE de VAZIO. Exemplo: D3_OP <> ' '
- Filial - D3_FILIAL é igual a filial logada xFilial(“SD3”).
- Delete - D_E_L_E_T_ é igual a vazio.
- Quantidade apontada maior que zero D3_QUANT >’0'
- Tipo de movimentação interna registrada no estoque D3_CF ='PR_'
- Status de movimentação igual a VAZIO - D3_STATUS = ' '. Quando o apontamento for integrado, esse status será alterado para '1' e quando estornado, será retornado para ''.
3.3.2 - Estorno de apontamento
Sentido: WMS SaaS→ ERP
Programa: Entrada produção
Após um apontamento ter sido integrado ao WMS SaaS, o seu estorno no ERP só acontecerá após o estorno no WMS SaaS. Caso o usuário tente fazer o estorno antes disso, será apresentada a seguinte mensagem:
Para fazer o estorno no WMS SaaS, basta acessar o menu Manufatura → Entrada Produção, selecionar o apontamento e clicar em Excluir apontamento:
3.3.3 Campos Específicos
Para documento de apontamento de produção é possível incluir também de forma especifica no payload, o campo referenciaProducao do tipo String, conforme o exemplo abaixo:
4. Processo de Estoque
4.1 Movimentação Interna
Sentido: ERP ← WMS SaaS
Programa: Movimentação Interna - MATA241
Realiza a movimentação interna de um item conforme retorno do WMS SaaS. Quando informado como AVARIA, transfere para o armazém padrão 99. Quando RETIRADO de AVARIA, retira o saldo do armazém 99 e envia para o armazém de destino.
4.2 Transferência entre Depósitos - Entrada e Saída
Sentido: ERP → WMS SaaS
Programa: Transferência Múltipla - MATA260 e Transferência Mod II - MATA261
Para os verbos GET só serão disponibilizados para retorno, os empenhos que entrarem nos critérios abaixo:
- Data de Movimento maior ou igual à hoje e time stamp.
- Filial - D3_FILIAL é igual a filial logada xFilial(“SD3”).
- Pontos de entrada WMSD3ENT e WMSD3SAI compilados com as regras para integração.
- Status do documento igual a vazio.
- Quando gerado um documento de Entrada em um deposito controlado pelo WMS, este processo irá gerar um processo de Devolução de Produção
- Quando gerado um documento de Saída em um deposito controlado pelo WMS, este processo deve gerar um processo de Requisição de Produção
4.2.1 Campos Específicos
Para documento de Saída no qual gera uma requisição de produção no WMS Saas é possível a inclusão da informação de endereço de produção no payload de forma especifica através de customização da API incluindo o campo enderecoProducao do tipo String, conforme o exemplo abaixo:
Para documento de transferência de saída - Requisição e transferência de entrada - Devolução é possível incluir também de forma especifica no payload, o campo subtipoFluxoProcesso do tipo String, conforme o exemplo abaixo:
4.3 Inventário
Sentido: ERP ← WMS SaaS
Programa: Processo de inventário - MATA270
Realiza a geração das fichas de inventário no ERP:
- Sempre gera o saldo total do produto retornado pelo SaaS aglutinado por tipo de estoque e lote.
- É gerada somente uma ficha por produto por dia. Caso já exista uma ficha, ela é atualizada.
- As fichas são somente geradas, a análise e processamento deverão ser feitos manualmente.
- Os seguintes parâmetros devem estar configurados no F12 da rotina Processo de inventário - MATA270:
4.4 Solicitação ao Armazém
Sentido: ERP → WMS SaaS
Para gerar uma Solicitação ao Armazém, deve-se acessar a rotina de Solicitação ao Armazém - MATA105, depois entrar na rotina Gerar Pré. Requisição - MATA106 e clicar em gerar.
Assim que uma solicitação for gerada, já será elegível para a integração com o WMS.
As tabelas envolvidas no processo são SCP e SCQ , onde os as condições " CP_STATUS = ' ' e CQ_NUMREQ = ' ' " devem ser respeitadas.
4.4.1 Campos específicos
Para documento de solicitação ao armazém -Requisição é possível a inclusão da informação de endereço de produção no payload de forma especifica através de customização da API incluindo o campo enderecoProducao do tipo String, conforme o exemplo abaixo:
Para documento de solicitação ao armazém - Requisição é possível incluir também de forma especifica no payload, o campo subtipoFluxoProcesso do tipo String, conforme o exemplo abaixo:
5. Cadastros
5.1 Produto por contexto.
Sentido: ERP ← WMS SaaS
- Segue abaixo a lista dos campos utilizados no Protheus e integrados ao WMS SaaS para cadastro dos produtos e subcadastros, como Skus e Caracteristicas.
- B1_COD - Código do Produto - Utilizado para mapeamento no de-para da integração, integrado ao campo Código do Produto.
- B1_DESC - Descrição - Campo de descrição do produto, integrado aos campos Descrição Comercial e Descrição Mobile, considernado os primeiros 60 caracteres.
- B1_UM - Unidade de medida - Campo de unidade de medida do produto, integrado ao campo Unidade de medida.
- B1_RASTRO - Rastro Produto - Quando setado como L - Lote e filial configurada para controle de lote e MV_CARSAAS contém lote, adiciona a característica Lote ao produto no WMS. Caso MV_CARSAAS contenha também dataValidade, adiciona a característica Data de Validade ao produto no WMS.
- BM_DESC - Categoria - Campo de categoria do Produto, quando preenchida, cadastra e integra a categoria ao Produto no WMS.
-
SKUs
- B1_CODBAR - Código de barras - Utilizado como código de barras do SKU principal.
- AH_DESCPO - Descrição Unidade de medida - Utilizado como descrição do SKU principal, descrição do campo B1_UM.
- B1_PESO - Peso bruto do produto - Utilizado como peso do SKU principal.
- B1_CODGTIN - Código de barras GTIN - Utilizado como código de barras do Segundo SKU.
- AH_DESCPO - Descrição da Segunda Unidade de medida - Utilizado como descrição do SKU principal, descrição do campo B1_SEGUM.
- B1_TIPCONV, B1_CONV - Utilizado na conversão da segunda unidade de medida. Pode ser mutiplicador ou divisor.
Para as demais API’s, as regras são construídas de acordo com os parâmetros enviados no query da URL, usando o padrão oData.
Importante
O ponto de entrada ALTSKUWMS pode ser utilizado para alteração dos dados de SKU.
Saiba mais
Para saber mais, acesse: PROT - Regras de negócio e processos de integração entre ERP Protheus e WMS SaaS
Fluxo da integração do Pedido de Venda - Miro: Integração de pedido de Venda
0 Comentários