Árvore de páginas

Versões comparadas

Chave

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


CONTEÚDO

Índice
indent8.1.
exclude.*CONTEÚDO
stylenone

01. VISÃO GERAL

O WMS Protheus com controle de estoque exclusivo

...

possui integração com o processo de inventário do módulo SIGAACD (Automação

...

e Coleta de Dados).

Desta forma e possível realizar o inventário atualizando as tabelas de controle de estoque por endereço no WMS Protheus.

Este processo ocorrerá quando houver a necessidade de ajuste de saldos no estoque através das contagens do inventário.

Para este processamento e utilizado a rotina MATA340 (

...

Processa Acerto Inventário). 

Neste processo envolve também a necessidade de ajustes de saldos de estoque bloqueados quando e efetuado uma contagem menor que o saldo bloqueado no endereço e o empenho total do endereço refere-se a bloqueio de saldos.

O bloqueio destes saldos quando utiliza o WMS

...

Protheus ocorre por intermédio da rotina WMSA560 (Bloqueio de

...

Saldos WMS). 

Informações
titleIMPORTANTE!
Funcionamento aplicado apenas ao WMS com controle de estoque exclusivo.

02. O QUE É O BLOQUEIO DE SALDO POR ENDEREÇO WMS?

Rotina que permite efetuar o bloqueio e a liberação de saldo no WMS

...

Protheus.

Mais informações podem ser obtidas no Documento de Referência: Bloqueio de Saldo (WMSA560 - SIGAWMS).

03. 

...

PROCESSAMENTO AJUSTE INVENTÁRIO COM BLOQUEIO SALDO ENDEREÇO WMS

Quando

...

é efetuado uma contagem de inventário com quantidade menor que a quantidade do endereço, após finalizar as contagens e processar a geração do inventário

...

são gerados os dados na tabela SB7

...

(Itens inventário

...

).

Após é possível executar a rotina

...

MATA340 (Ajuste de Inventário). Durante o processamento desta rotina, quando a contagem no endereço é diferente do saldo existente no sistema

...

é efetuada a atualização no sistema para que

...

permaneça conforme a contagem

...

física realizada no

...

inventário.

Quando a contagem efetuada possui quantidade menor que a quantidade em estoque,

...

e, existe bloqueio de saldo de estoque para o produto/endereço que estiver sendo inventariado com quantidade maior que a contagem do inventário, durante a atualização dos saldos de estoque será efetuado também o ajuste da quantidade bloqueada para que não

...

permaneça divergente com a contagem

...

Esta alteração não está contemplando os itens que possuem estrutura de armazenagem, devido e não ser possível verificar se o bloqueio atualmente e somente do item avulso ou da estrutura. Desta forma para estes casos, para que seja possível efetuar ajustes de inventário será necessário que seja removida a quantidade de boqueio antes de processar a rotina de ajustes

...

.

...


Exemplo de leitura do Kardex do endereço 20401 no armazém 02 (apresentação resumida dos campos):

...

Visualizando isoladamente esses registros, conseguimos notar que tivemos 4 entradas para lotes distintos do produto 001 no endereço 20401 e apenas uma saída do lote AUTO000030 no dia 26/02/2020 que consumiu todo o saldo desse lote, sem ocorrências de estornos.

Considerando que esses são todos os registros de D13 do endereço e produto, podemos concluir que atualmente o saldo no endereço será:

...

Com uma quantidade pequena de registros é fácil chegar a esta conclusão, mas é necessário ter em mente que em um armazém podem ocorrer milhões de movimentações do produto desde sua origem.

...

Informações
titleIMPORTANTE!
Nunca devem existir registros de Kardex (D13) com quantidade negativa.

04. O QUE É O SALDO INICIAL WMS (D15)?

O saldo inicial WMS é gerado quando realizamos um fechamento de estoque por meio da rotina de Fechamento do Período no Estoque (MATA280).

O saldo inicial é calculado com base no saldo inicial do fechamento anterior mais o resultado de entradas e saídas do Kardex (D13), ou seja, o saldo inicial é o saldo que deveria constar no Saldo por Endereço WMS (D14) no dia do fechamento, se for considerado o histórico de entradas e saídas do endereço.

Painel
titleFórmula

Saldo inicial do fechamento atual (D15) = Saldo inicial do fechamento anterior (D15)¹ + Movimentações de kardex de entrada (D13)² - Movimentações de kardex de saída (D13)³

¹ A data do fechamento anterior é o valor do parâmetro MV_ULMES.
² O kardex de entrada são D13 de origem 499 e com o campo D13_USACAL diferente de '2'.
³ O kardex de saída são D13 de origem 999 e com o campo D13_USACAL diferente de '2'.

Painel
titleQuery
Bloco de código
languagesql
titleCálculo do Saldo Inicial
collapsetrue
DECLARE @DataUltimoFechamento VARCHAR(8);
SET @DataUltimoFechamento = '20191217';

DECLARE @FilialD13 VARCHAR(2);
SET @FilialD13 = '01';

DECLARE @FilialD15 VARCHAR(2);
SET @FilialD15 = '01';

DECLARE @FilialSB2 VARCHAR(2);
SET @FilialSB2 = '01';

DECLARE @ProdutoSB2 VARCHAR(15)
SET @ProdutoSB2 = 'INSUMO001'

DECLARE @ArmazemSB2 VARCHAR(15)
SET @ArmazemSB2 = '01'

SELECT (FCH_SALDO + ENT_SALDO - SAI_SALDO) AS PREVISTO_D15
FROM (
	SELECT CASE WHEN FCH.FCH_SALDO IS NULL THEN 0 ELSE FCH.FCH_SALDO END FCH_SALDO
		  ,CASE WHEN ENT.ENT_SALDO IS NULL THEN 0 ELSE ENT.ENT_SALDO END ENT_SALDO
		  ,CASE WHEN SAI.SAI_SALDO IS NULL THEN 0 ELSE SAI.SAI_SALDO END SAI_SALDO
	FROM SB2990 SB2
	LEFT JOIN (
		SELECT D15.D15_LOCAL FCH_LOCAL
			,D15.D15_PRDORI FCH_PRDORI
			,D15.D15_PRODUT FCH_PRODUT
			,SUM(D15.D15_QINI) FCH_SALDO
		FROM D15990 D15
		WHERE D15.D15_FILIAL = @FilialD15
			AND D15.D15_DATA <= @DataUltimoFechamento
			AND D15.D_E_L_E_T_ = ' '
		GROUP BY D15.D15_LOCAL
			,D15.D15_PRDORI
			,D15.D15_PRODUT
		) FCH ON FCH.FCH_LOCAL = SB2.B2_LOCAL
		AND FCH.FCH_PRDORI = SB2.B2_COD
		AND FCH.FCH_PRODUT = SB2.B2_COD
	LEFT JOIN (
		SELECT D13.D13_LOCAL ENT_LOCAL
			,D13.D13_PRDORI ENT_PRDORI
			,D13.D13_PRODUT ENT_PRODUT
			,SUM(D13.D13_QTDEST) ENT_SALDO
		FROM D13990 D13
		WHERE D13.D13_FILIAL = @FilialD13
			AND D13.D13_DTESTO > @DataUltimoFechamento
			AND D13.D13_TM = '499'
			AND D13.D13_USACAL <> '2'
			AND D13.D_E_L_E_T_ = ' '
		GROUP BY D13.D13_LOCAL
			,D13.D13_PRDORI
			,D13.D13_PRODUT
		) ENT ON ENT.ENT_LOCAL = SB2.B2_LOCAL
		AND ENT.ENT_PRDORI = SB2.B2_COD
		AND ENT.ENT_PRODUT = SB2.B2_COD
	LEFT JOIN (
		SELECT D13.D13_LOCAL SAI_LOCAL
			,D13.D13_PRDORI SAI_PRDORI
			,D13.D13_PRODUT SAI_PRODUT
			,SUM(D13.D13_QTDEST) SAI_SALDO
		FROM D13990 D13
		WHERE D13.D13_FILIAL = @FilialD13
			AND D13.D13_DTESTO > @DataUltimoFechamento
			AND D13.D13_TM = '999'
			AND D13.D13_USACAL <> '2'
			AND D13.D_E_L_E_T_ = ' '
		GROUP BY D13.D13_LOCAL
			,D13.D13_PRDORI
			,D13.D13_PRODUT
		) SAI ON SAI.SAI_LOCAL = SB2.B2_LOCAL
		AND SAI.SAI_PRDORI = SB2.B2_COD
		AND SAI.SAI_PRODUT = SB2.B2_COD
	WHERE SB2.B2_FILIAL = @FilialSB2
		AND SB2.B2_LOCAL = @ArmazemSB2
		AND SB2.B2_COD = @ProdutoSB2
		AND SB2.D_E_L_E_T_ = ''
	) RESULTADO

Esta query também pode ser utilizada para gerar uma prévia do saldo inicial do produto no dia atual, ou então, para verificar se o saldo inicial calculado está correto.

...

Informações
titleIMPORTANTE!

Nunca devem existir Saldos Iniciais (D15) com quantidade negativa.

05. VERIFICANDO AS DIVERGÊNCIAS

...

  • Somente quando o item inventariado fizer parte de uma estrutura de armazenagem e este item possuir bloqueio de saldo em estoque, não será efetuado a ajuste, pois não é possível identificar se o bloqueio pertence somente a um item da estrutura ou a estrutura completa.

  • Desta forma para estes casos, para que seja possível efetuar ajustes de inventário será necessário que seja removida a quantidade de bloqueio de forma manual antes de processar a rotina de ajustes

04. ASSUNTOS RELACIONADOS

Documentos de Referência

05. ANEXO - PDF

Painel
titleDivergência de Saldo Por Endereço e Kardex

Query

Verificar se existem divergências entre D13 e D14.sql 

Trata-se da mesma query executada na rotina de Ajuste de Saldo (WMSA580).

Objetivo

Esta query realiza um cálculo com saldo inicial D15 mais o kardex D13 e então compara com o valor existente no saldo por endereço D14. 

Resultado

Se esta query retornou dados significa que os endereços possuem registros de kardex faltando, ou então, que o saldo o endereço está incorreto, faltou alguma acréscimo ou decréscimo na quantidade em estoque.

O Que Fazer

O objetivo principal desta investigação é procurar onde o WMS falhou em atualizar a D13, D14 ou D15. O ideal é procurar um caso onde existam poucos registros de D13 para o endereço e tentar entender se o histórico de movimentações faz sentido, por exemplo: se não existe algum documento que permitiu retirar do endereço uma quantidade maior que a disponível, se ocorreu algum estorno que deixou a quantidade negativa, enfim, podem existir diferentes situações. 

Uma vez identificado o problema, ou então, após entender que a falha no estoque é muito antiga e que não é possível rastrear a origem, pode ser utilizada a rotina Análise de Estoque Por Endereço WMS (WMSA580) para realizar o ajuste de saldo.

Após o ajuste do saldo, recomenda-se que o cliente mantenha uma verificação diária/semanal para monitorar novos casos de divergência. Ter um período de tempo menor no qual ocorreu o problema é uma forma mais fácil de encontrar a origem.

Painel
titleDivergência de Saldo em Estoque Com Saldo Por Endereço

Query

Verificar se existem divergências entre SB2 e D14.sql

Verificar se existem divergências entre SB8 e D14.sql

Objetivo

As queries possuem o mesmo objetivo, comparar se o somatório da tabela de estoque está compatível com o somatório da tabela WMS. Quando o produto possuí controle de rastro, utilizamos a query que compara com a SB8 e quando não possuí controle de rastro, utilizamos a query que compara com SB2. A premissa é que SB2 e SB8 não possuam divergências e, quando existir, cabe ao módulo de Estoque (SIGAEST) avaliar e ajustar.

Resultado

Se esta query retornou dados, significa que existe uma divergência entre o saldo WMS e o saldo em estoque, podendo ser um problema de qualquer um dos módulos.

O Que Fazer

Este tipo de problema é mais complexo para detectar a origem, mas o primeiro passo é se certificar de qual dos saldos está correto: SB2/SB8 ou D14?

Essa é uma questão que o cliente deve responder; o ideal é recomendar que ele faça a contagem de alguns endereços e compare com a quantidade em estoque no WMS. Feito isso, é possível utilizar a rotina Análise de Estoque Por Endereço WMS (WMSA580), seja para ajustar o saldo em estoque com base no saldo WMS ou para ajustar o saldo WMS com base no saldo em estoque.

Após o ajuste do saldo, o cliente pode realizar um acompanhamento diário/semanal para identificar um período no qual foi detectada uma nova divergência; assim teremos uma faixa de Kardex para analisar, de forma mais compacta.

Painel
titleDivergência nas Reservas do Saldo Por Endereço

Situação

Existem cenários nos quais o cliente pode reportar algum problema nas reservas dos endereço, seja porque existe uma quantidade empenhada indevidamente, uma saída prevista sem origem ou um bloqueio de saldo sem documento relacionado, e isso é notado ao tentar faturar um documento, executar uma Ordem de Serviço, entre outros.

O Que Fazer

No momento não temos uma query para avaliar essas divergências e esses problemas devem ser analisados tendo por referência o conjunto de informações que justificam aquela reserva. Por exemplo: avaliar se existem registros de Bloqueio de Saldo (D0U) que justifiquem o saldo bloqueado.

Para entender como cada campo de reserva é calculado pelo WMS, consulte nossa documentação complementar sobre Como São Gerados os Saldos de Empenho Previsto, Empenho, Saída Prevista, Entrada Prevista, Bloqueio de Saldo na Tabela de Saldo WMS (D14).

Uma vez identificado qual o documento que gerou o problema, pode ser utilizada a rotina Análise das Quantidades Reservadas WMS (WMSA585) para ajustar a base.

06. EXEMPLOS DE TICKETS ATENDIDOS

Expandir
titleDivergência de Saldo Entre a D14 e a SB2

Issue: 

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-8767

Reclamação: O cliente com o novo WMS está com divergência de saldo entre a D14 e a SB2. Segundo ele, a quantidade da D14 é a correta. Precisam emitir uma nota fiscal de saída, mas não estão conseguindo liberar o pedido de venda e efetuar a separação por conta deste problema.

Solução: Apenas melhoramos a documentação da Rotina de Análise de Estoque por Endereço - WMSA580, para que ele conseguisse utilizá-la. A verificação da causa foi realizada depois.

Expandir
titleDivergência de Saldo Entre D15 e SB9

Issue: 

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-9141

Reclamação: Executamos o fechamento de estoque normalmente no sistema. Os saldos de SB9 e D15 são gravados normalmente quando executado a rotina Virada de Saldos. No entanto, observamos de forma bem clara no último fechamento de Dezembro/2019, situações nas quais o saldo total apresentado na D15, quando somamos produto + armazém + filial (independente do endereço) e comparamos com o resultado de produto + armazém + filial na SB9 não batem.

Solução: Identificamos que o fechamento da D15 estava correto e passamos o ticket para a equipe de Estoque (SIGAEST).

Expandir
titleCaso 1 - Saldo Por Endereço (D14) Negativo

Issue: 

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-7440

Reclamação: Devido a um problema identificado no recebimento integrado com o CQ, o saldo na D14 ficou negativo.

Solução: Além de ajustado o problema origem no recebimento, também criamos a Rotina de Análise de Estoque por Endereço - WMSA580 para arrumar a base do cliente.

Expandir
titleCaso 2 - Saldo Por Endereço (D14) Negativo

Issue: 

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-8974

Reclamação: Saldo por endereço (D14) permanece negativo, após cliente rodar ajuste de saldos.

Solução: Após analise do Kardex (D13) entendemos que a rotina de Análise de Estoque por Endereço estava fazendo os ajustes incorretamente. Portanto, apagamos o ajuste de saldo nos endereços nos quais não foram corrigidos via ajuste de inventário e enviamos a rotina corrigida para o cliente rodar novamente. 
Como o problema de estoque era generalizado, não conseguimos identificar a causa do desbalanceamento.

Expandir
titleFechamento de Estoque Não Gera D15

Issue:  

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-6254

Reclamação: Rotina de Virada de Saldo não está gerando D15.

Solução: Após análise efetuada no ambiente do cliente via acesso remoto, verificamos que o problema na virada de saldos era consequência de registros de fechamentos anteriores que não geraram saldos iniciais (SBK e D15) por conta do campo BZ_LOCALIZ e BZ_CTRWMS preenchidos como "2". Dessa forma, foi orientado o ajuste em massa desses campos para a filial. Esse processo resolveu o problema com a SBK, contudo, como o WMS se baseia em fechamentos anteriores, também foi necessário o ajuste retroativo dos saldos iniciais na D15 manualmente.
Com as devidas alterações, os demais fechamentos ocorreram corretamente.

Expandir
titleComposição do Saldo Disponível Negativo

Issue:  

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-6254

Reclamação: Composição do saldo disponível negativo.

Solução:  Analisamos os movimentos de Estoque por Endereço WMS (D14) , Kardex por Endereço WMS (D13), Ordem de Serviço (DCF), Saldos à Distribuir (D0G) e notamos que as quantidades estão batendo com o Saldo do Produto (SB2), mas a quantidade a classificar nos intrigava porque quando há uma quantidade a classificar deve haver um acréscimo no saldo do produto da mesma quantidade.
No contato foi diagnosticado que houve intervenção manual no banco de dados pela equipe do cliente, onde foi removido o movimento da D14, ajustado o saldo na SB2 e na SB8, porém, não foram ajustadas as quantidades de saldo a classificar, gerando assim o saldo negativo. Orientamos que fosse efetuado o ajuste de saldo a classificar da SB2 e da SB8 e removidos os registros da SD3, para não gerar novamente essa quantidade a classificar, caso executem o refaz saldos.

Lembramos também que deverão ser revisados os registros na D0G, DCF, D12, D13, D0Q, D0R,e D0S, que precisam ser removidos, para completar o primeiro ajuste manual realizado via telefone e que ajustou somente o saldo da SB2, SB8 e D14.

Solicitamos também que realizassem um processo de liberação de qualidade completo para confirmarmos se o Sistema está funcionando corretamente ou se somente foi causado problema pela manutenção manual, uma vez que esse saldo a classificar é originado de uma liberação da qualidade.

Expandir
titleNão Executa Ordem de Serviço Por Falta de Saldo

Issue:  

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-6680

Reclamação: Ao consultar o estoque, o Sistema apresenta como disponível a quantidade de 100 unidades do produto. Emitimos o pedido e efetuamos a liberação sem problemas. Automaticamente é gerado um serviço no WMS e este, ao ser executado, diz que não foi possível executar por não ter saldo para o produto e permanece com o status Interrompido.

Solução:  Identificamos problemas nas quantidades previstas D14, devido intervenções manuais no registro da ordem de serviço DCF. Criamos a Rotina de Análise das Quantidades Reservadas WMS - WMSA585 para ajudar a ajustar a base.

Expandir
titleRefaz Saldos Não Ajusta Saldo WMS

Issue:  

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-3552

Reclamação: Durante o fechamento do estoque notamos que a rotina de Recalculo do Saldo Atual e o Refaz Acumulados não estão ajustando as tabelas do WMS.

Solução:  Foi explicado que não seria implementada uma rotina para refazer o saldo das tabelas do WMS pois, por ser um módulo de Controle de Estoque apurado sempre que houver divergências, devemos identificar a origem e corrigir neste ponto o problema. Após certa recorrência de situações, criamos a rotina WMSA580 para nos auxiliar no ajuste da base. De qualquer forma, ao executar a rotina de refazer saldos do estoque não é chamada nossa rotina WMS, é necessário executar a rotina WMSA580 separadamente.

Expandir
titleDesbalanceamento do Estoque ao Finalizar Atividade Com Quantidade a Menor

Issue:  

Jira
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDLOGWMSMSP-3302

Reclamação: Desbalanceamento do estoque ao finalizar Atividade com quantidade a menor.

Solução:  Neste caso, apenas corrigimos os fontes e o cliente realizou ajuste manual na base.

07. RESUMO

Não existe uma resposta padrão para a pergunta "como avaliar as divergências de saldo?" devido aos cenários diversificados.

Para as análises, além de obviamente considerar a situação reportada pelo cliente é necessário ter em mente quais os objetivos dos registros de Kardex (D13), Saldo por Endereço (D14) e Saldo Inicial (D15) e como utilizá-los para reconstruir os passos do Sistema em busca de padrões de comportamento que indiquem problemas.

Um bom começo para essas análises é solicitar um conjunto de registros (D13, D14, D15, SB9, SB8 e SB2) de alguns produtos do período anterior a alguns fechamentos de estoque ¹ e, se possível, de produtos que tenham poucas movimentações.

...


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>

...