Processo automático 87 - Movimentar pendências de estoque do faturamento
Essa rotina tem por objetivo processar as pendências das baixas de estoque do faturamento caso o campo Baixa de Estoque NF Assíncrona da tela Parâmetros da Filial para Vendas (F070FVE) for igual a S-Sim. Esse parâmetro faz com que não sejam geradas baixas de estoque no momento do fechamento da nota fiscal de saída. As movimentações agrupadas de estoque podem ser normais ou diárias e ambas têm como base a tabela de pendências (E140PMV).
Ao processar as pendências, o sistema gera as baixas de estoque das respectivas notas fiscais. São processadas apenas pendências cujas notas fiscais estejam autorizadas pela SEFAZ ou que não sejam eletrônicas.
A execução deste processo automático não considera suas execuções anteriores que ainda estejam em processamento, portanto, caso a empresa possua um alto volume de movimentos de estoques, recomenda-se um balanceamento entre a periodicidade de execução do processo agendado e o limite de requisições de cada execução.
Observações
- sempre que houver pendências de movimentações de estoque disponíveis, elas serão processadas. Isso independe do campo Baixa de Estoque NF Assíncrona(F070FVE) estar definido como S-Sim ou N-Não;
- para que sejam gerados movimentos de estoque para a nota fiscal, é necessário um registro relativo à nota na tabela E140PMV. Após processar a pendência, o registro é excluído da tabela E140PMV e incluído na tabela E140PME.
- caso ocorra algum erro relacionado ao número de cursores, configure os parâmetros LIMITE_PENDENCIAS e LIMITE_REQUISICOES.
- as pendências de produtos/depósitos que estiverem com inventário em aberto com bloqueio de movimentos, não serão executadas até que o inventário seja finalizado.
O agendamento ou não das tarefas pendentes considera a integração com os respectivos módulos, ou seja, somente os itens da nota fiscal de saída com transação integrada com o módulo de estoque são armazenados como pendência de movimento de estoque.
Para pendências com produto controlado por lote que não tiveram o lote distribuído na gravação da nota, a distribuição é realizada no momento do processamento da pendência e já automaticamente baixado o estoque. Essas pendências serão geradas com o campo E140PMV.CodLot = %LOTE% para identificação que precisam ser distribuídos antes da realização da baixa.
FILTRO_EMPRESA: parâmetro opcional. Quando informado, filtra a execução da rotina por empresa. Quando não informado, todas as empresas são consideradas. Não permite abrangência;
FILTRO_FILIAL: parâmetro opcional. Quando informado, filtra a execução da rotina por filial. Quando não informado, todas as filias são consideradas.
- havendo, por exemplo, 1 empresa (CodEmp = 1) e filiais 1, 2 e 3 (CodFil = 1, CodFil = 2 e CodFil = 3), caso o parâmetro FILTRO_EMPRESA for igual a 1 e FILTRO_FILIAL igual a 2, serão consideradas apenas as pendências da empresa 1 e da filial 2;
- caso o parâmetro FILTRO_EMPRESA for igual a 1 e FILTRO_FILIAL não for preenchido, todas as filiais da empresa serão consideradas;
- caso o parâmetro FILTRO_EMPRESA não for preenchido, todas as empresas que tiverem pendências serão consideradas.
LIMITE_EMISSAO: filtra por data de emissão da nota fiscal. Execução de pendências cujas datas de emissão da nota fiscal forem menores ou iguais às datas informadas;
LIMITE_PENDENCIAS: número inteiro opcional que indica quantas pendências serão processadas por execução do processo automático (padrão do sistema: 9999);
LIMITE_REQUISICOES: número inteiro opcional que indica ao sistema quantos agrupamentos de estoque devem ser processados por execução do processo agendado (padrão do sistema: 9999). Esse parâmetro está diretamente ligado ao número de requisições para processar e também à capacidade de processamento do ambiente. Recomendamos começar com um número baixo (200, por exemplo) e ir aumentando conforme os resultados forem sendo positivos, até chegar em um cenário ideal
MINIMO_MOVIMENTOS: parâmetro opcional e sem número fixo, que indica o número mínimo de agrupamento de pendências por requisição. Permite executar vários produtos na mesma requisição. Os movimentos continuam sendo agrupados, porém uma instância de serviço poderá movimentar mais de um produto e a função deste parâmetro é de limitar a quantidade de agrupamentos formados a cada execução do processo agendado e, por consequência, limitar a quantidade de instâncias que serão consumidas.
Quando a quantidade de produtos é menor, o efeito é pequeno porque tem poucos agrupamentos para executar. Já quando a quantidade de produtos é maior e a variação entre as movimentações é grande, o parâmetro é bastante aplicável, porque uma execução de serviço movimenta vários produtos, diminuindo assim a necessidade de instâncias para a movimentação de todos os produtos.
Recomendamos que, para uma quantidade elevada de produtos com poucos movimentos, o usuário utilize o parâmetro com um valor baixo (10) e acompanhe se a quantidade de produtos pendentes (E140PMV) diminui. Ou seja, que monitore o tamanho da fila de agrupamentos por empresa/produto/derivação/depósito.
Duas notas fiscais de saída que originaram as seguintes pendências de movimentação de estoque:
Empresa | Filial | Série | Número | Seq. Item | Produto | Derivação | Depósito |
---|---|---|---|---|---|---|---|
1 | 1 | NFE | 1 | 1 | AAA | 1 | DEP01 |
1 | 1 | NFE | 1 | 2 | AAA | 1 | DEP02 |
1 | 1 | NFE | 1 | 3 | AAA | 1 | DEP05 |
1 | 1 | NFE | 2 | 1 | AAA | 1 | DEP01 |
1 | 1 | NFE | 2 | 2 | AAA | 1 | DEP02 |
1 | 1 | NFE | 2 | 3 | AAA | 1 | DEP05 |
Ao executar o processo agendado com o parâmetro LIMITE_REQUISICOES=2, o sistema montará os seguintes agrupamentos:
Empresa | Filial | Produto | Derivação | Depósito |
---|---|---|---|---|
1 | 1 | AAA | 1 | DEP01 |
1 | 1 | AAA | 1 | DEP02 |
Ou seja, do total de seis itens pendentes, o sistema formaria três agrupamentos de estoque, porém, devido à limitação de requisições configuradas, serão formados apenas dois agrupamentos que irão executar a movimentação de estoque dos quatro itens que pertencem aos respectivos agrupamentos. Cada agrupamento formado irá gerar uma requisição assíncrona do web service de movimentação de estoque e ocupará uma instância disponível do ERP. Na segunda tabela, duas instâncias do ERP serão utilizadas.
Os dois itens restantes que pertencem ao terceiro agrupamento não serão processados nessa execução e ficarão pendentes até o próximo agendamento ser executado.
DIAS_DATACORTE: dias que serão considerados para definir a data de corte para processamento da movimentação agrupada do estoque quando o parâmetro TIPO_MOVIMENTO for igual a 1-Agrupado/Diário (Valor padrão = 1). Quando a data de emissão da nota for menor que a data de processamento do agendador, deve-se preencher o parâmetro com a quantidade de dias anterior à data atual. Caso seja encontrado algum movimento em dias anteriores, ele será gerado conforme as pendências encontradas.
Quando a data de emissão da nota for menor que a data do processamento do agendador, deve-se utilizar o parâmetro acima, sendo que o número utilizado será a quantidade de dias anteriores à data atual. Caso seja encontrado algum movimento em dias anteriores, o movimento será gerado conforme as pendências encontradas.
TIPO_MOVIMENTO: indica o tipo de movimento de estoque (0-Normal, 1-Agrupado/Diário). O padrão do sistema é 0-Normal. Para que aconteça a movimentação agrupada de estoque, um lote de pendência será gerado. O tipo 0-Normal contempla documentos eletrônicos com dispositivo autorizado igual a 6.
As notas fiscais que possuem série onde o dispositivo autorizado é igual a 6 - Nota Fiscal Eletrônica também são considerados quando a rotina está configurada com o Tipo de Movimento igual a 1, porém as movimentações de estoque delas não são feitas de forma agrupada. Nesse caso, a execução ocorre como se o Tipo de Movimento fosse 0. Isso acontece para evitar a necessidade de dois processos agendados para executar a movimentação assíncrona. Para documentos fiscais do tipo 10 - Nota Fiscal Consumidor Eletrônica, o agrupamento ocorre normalmente. Os registros nas tabelas E210MEA e E210DEA não serão gerados para documentos fiscais do tipo 6 - Nota Fiscal Eletrônica, pois para esses documentos o agrupamento não ocorre.
Geração do lote de pendência (agrupamento de pendências)
A geração do lote de pendências consiste em gerar um número (lote) para o agrupamento de pendências para que a movimentação possa ser feita de forma distribuída e com o uso do web service de movimentação de estoque pendente. A geração do lote é realizada respeitando o parâmetro de limite de pendências [LIMITE_PENDENCIAS] e agrupado de acordo com os critérios de:
- Empresa;
- Filial;
- Produto;
- Derivação;
- Depósito.
Tipo de Movimento Normal [TIPO_MOVIMENTO=0]
É a forma padrão de movimentação de estoque, em que esta é realizada por item de nota fiscal. Para o caso de documentos eletrônicos, apenas documentos com status 3-Autorizada são processados.
Tipo de Movimento Agrupado/Diário [TIPO_MOVIMENTO=1]
Executa a movimentação de estoque de forma agrupada, sendo que este agrupamento será feito diariamente e por produto.
Observação
Não será mantido um histórico de pendências executadas (Tabela E140PME - Vendas - Notas fiscais de saída - Pendência de movimentação de estoque executada).
A utilização do parâmetro [TIPO_MOVIMENTO=1] compreende duas etapas:
Movimentação de estoque agrupado/diário
Executa a movimentação agrupada de estoque para pendências que atendam os seguintes requisitos:
- Dispositivo Autorizado da série diferente de 5-ECF, 10-NFCe, 11-SAT ou Dispositivo Autorizado da série igual a 5-ECF, 10-NFCe, 11-SAT e valorização de movimentação igual a Fechamento na transação de movimento de estoque;
- Produto Não utiliza Lote: não possuir controle por Lote (E075PRO.CTRLOT=N);
- Produto Não utiliza Série: não possuir controle por Série (E075PRO.CTRSEP=N);
- Data de corte: um dia antes da data de execução;
- Número de tentativas de execução com falha: menor ou igual a 3.
Gravação do movimento de estoque
- Agrupamento de pendências do lote: realiza o agrupamento das pendências do lote gerado no item anterior, realizando o somatório de Quantidade e Valor do Movimento, de acordo com:
- Empresa;
- Filial;
- Produto;
- Derivação;
- Depósito;
- Data de emissão da nota;
- Transação de estoque.
- Valor do movimento de estoque agrupado: somatório do valor do movimento das pendências. Quando esse valor estiver zerado e o produto for um Componente de KIT, o valor do movimento de estoque será realizado através do preço médio do produto na filial.
- Quantidade do movimento: somatório da quantidade de movimento das pendências.
Controle de falhas
Ao executar a movimentação de estoque agrupada, podem ocorrer falhas (como estoque insuficiente, por exemplo) e toda falha de movimentação gerará um incremento no número de tentativas da pendência (E140PMV.QtdTat).O sistema fará 3 tentativas de movimentação; caso todas falhem, a pendência será processada novamente apenas 12 horas depois (no mínimo). Exemplo: se a pendência X foi processada com falha às 8, às 9 e às 10 horas, somente após as 22 horas a pendência X será liberada para movimentação.
Movimentação normal de estoque
Quando a execução da 1ª Etapa não utilizou todas as requisições disponíveis (estabelecido pelo parâmetro [LIMITE_REQUISICOES]), será realizado o movimento normal de estoque, por item de nota fiscal, para as pendências que atendam a um dos seguintes requisitos:
- Dispositivo Autorizado da série: DIFERENTE de 5-ECF, 10-NFCe, 11-SAT;
- Dispositivo Autorizado da série: 5-ECF, 10-NFCe, 11-SAT e Transação de movimento de estoque: Valorização de movimentação DIFERENTE F-Fechamento;
- Produto Utiliza Lote: Possuir controle por Lote (E075PRO.CTRLOT=S);
- Produto Utiliza Série: Possuir controle por Série (E075PRO.CTRSEP=S).
Observação
A movimentação de estoque agrupada deve ser utilizada somente quando o Critério de Rateio do movimento de estoque for: Transação, Produto/Serviço, Família, Agrup. Estoques, Agrup. Produção, Agrup. Custos, Agrup. Comercial, Agrup.Fiscal ou Depósito. Trata-se de critérios onde o agrupamento é possível, pois são ligados ao produto e não ao documento fiscal. Caso a transação não possua Forma de Rateio, o Critério de Rateio pode ficar em branco.
Consulta de documentos fiscais dos movimentos agrupados
Na tela Consulta de Movimentos de Estoque (F212CME), o usuário pode consultar os documentos dos movimentos agrupados de estoque através do botão Doctos (6). Esse botão abrirá a tela consulta de Movimentos de Estoque Agrupado (F212CMA), que usará as tabelas Movimento de estoque agrupado (E210MEA) e Documentos do movimento de estoque agrupado (E210DEA) para permitir a consulta dos itens dos documentos fiscais na tela Faturamento - Consulta Itens de Notas Fiscais de Saída (F141CIS).
Cancelamento de Movimento Agrupado/Diário
Ao cancelar ou reabilitar um documento fiscal de saída que possua movimento de estoque agrupado (utilizando o [PARAMETRO_MOVIMENTO=1], será realizado o movimento de estorno de estoque. Os movimentos de saída de uma nota fiscal de saída não serão excluídos, pois esses movimentos foram gerados agrupando itens de diversas notas, de acordo com os critérios estabelecidos.
Observação
É pré-requisito para configurar a transação de estorno de movimento de estoque agrupado o preenchimento do campo TnsEea na tela Parâmetros da Filial para Vendas (F070FVE).
Cancelamento e reabilitação de notas fiscais de saída
Ao reabilitar ou cancelar uma nota fiscal de saída, é verificada a existência de tarefas para a respectiva nota fiscal.
Se houver tarefas de movimentação de estoque com as situações Pendente ou Falha, estas pendências são removidas e a reabilitação ou cancelamento segue normalmente, inclusive excluindo os movimentos dos itens que movimentaram estoque. Isso acontece, pois a movimentação de estoque via web service é por agrupamento de produto, derivação e depósito, ou seja, uma nota fiscal pode ter itens movimentados e itens não movimentados. No caso da reabilitação da nota fiscal, a reserva exclusiva dos itens sem movimento de estoque não deve ser modificada. Somente os itens com movimento de estoque devem ter a reserva exclusiva incrementada no estoque.
No caso do cancelamento da nota fiscal, os itens que não movimentaram estoque têm a reserva exclusiva diminuída do estoque.
Conciliação de estoque
Ao executar a rotina de conciliação de estoque, é feita a verificação da existência de tarefas pendentes de notas fiscais. Se houver tarefas do tipo Movimentação de Estoque com as situações Pendente ou Falha, o processo de conciliação do estoque é bloqueado.
Integração com Tributos
Ao executar a rotina de integração de notas fiscais de venda na tela Integração de Notas Fiscais (F660INT), é feita a verificação da existência de tarefas pendentes de notas fiscais. Se houver tarefas com as situações Pendente ou Falha, o processo de integração é bloqueado.
Integração contábil
Ao executar a rotina de integração contábil na tela Integração Contábil (F645CTB), quando as opções Notas Fiscais de Saída, Estoques, Contas a Receber ou Tesouraria forem selecionadas, é feita a verificação da existência de tarefas pendentes de notas fiscais. Se houver tarefas com as situações Pendente ou Falha, o processo de integração contábil é bloqueado.
Fechamento dos estoques
Ao executar a rotina de fechamento dos estoques (opção Atualização e Fechamento do período), é feita a verificação da existência de tarefas pendentes de notas fiscais.
O processo de fechamento dos estoques é bloqueado, se houver tarefas do tipo Movimentação de Estoque com as situações Pendente ou Falha nas seguintes situações:
- nota fiscal de saída para filial do fechamento;
- nota fiscal de transferência para filial do fechamento;
- nota fiscal de saída de qualquer filial, com transação de estoques integrada com uma transação de transferência de estoques.
Se o processo de fechamento de estoques for executado apenas para atualizar os estoques (opção Atualização dos estoques) não serão verificadas pendências de notas fiscais.
Observações
A movimentação de estoque não será executada se o período estiver fechado.
Inventário de estoque
Ao executar a rotina de inventário de estoques, é feita a verificação da existência de tarefas pendentes de notas fiscais. Se houver tarefas do tipo Movimentação de Estoque com as situações Pendente ou Falha, o processo de inventário de estoques é bloqueado.