A funcionalidade de atualização de estoque tardia serve para empresas que possuem muita concorrência de dados da tabela de Saldos de Produtos (SB2), ela permite que o saldo do produto seja atualizado posteriormente à emissão das notas fiscais.
Exemplo:
Existe um produto "000001", este produto é utilizado nos processos de "Venda" e de "Compra", então posso ter um usuário realizando um Pedido de Vendas (MATA410), outro usuário realizando um "Pedido de Compras" (MATA121), outro realizando um "Documento de Saída" (MATA460A) e ainda outro realizando um "Documento de Entrada" (MATA103). Todos eles estão usando o produto "000001" ao mesmo tempo, para que o sistema permita essa ação, ele irá criar uma "fila", então um usuário só poderá gravar seu processo, quando for "sua vez de usar o registro".
Parâmetro MV_NFS_JOB
Se o parâmetro MV_NFS_JOB estiver habilitado (.T.), um JOB é executado para a atualização do estoque após a geração dos documentos.
Nestes casos, o documento de saída, é gerado sem atualização de estoque e os campos "Bloq.Estoque" (C9_BLEST) e "Bloq.Credito" (C9_BLCRED) são gravados com conteúdo ZZ.
O Job "FATXJOB" tem a função de regravar os campos "Bloq.Estoque" (C9_BLEST) e "Bloq.Credito" (C9_BLCRED) com conteúdo "10" e chamar a função de atualização de estoque.
Sendo assim, se o parâmetro "MV_NFS_JOB" estiver habilitado (.T.), o Job "FATXJOB" também deve estar. Caso o "FATXJOB" não esteja configurado, o parâmetro "MV_NFS_JOB" deve ser desabilitado (.F.)
Há duas maneiras indepedentes (uma não depende da outra) de executar a atualização de estoque quando acionada a atualização tardia do estoque:
Nesta opção é necessário configurar o Job no AppServer.ini do ambiente.
1. Exemplo de Job:
[ONSTART]
Jobs=FTJOBNFSB2_9901
[FTJOBNFSB2_9901]
main=FtJobNfsB2
environment=<NOME DO AMBIENTE>
nParms=2
Parm1=<CÓDIGO DA EMPRESA>
Parm2=<CÓDIGO DA FILIAL>
2. Crie um arquivo com o nome "FATXJOB.CFG" e salve-o na pasta do AppServer (Pasta de Instalação do Protheus), iremos indicar o horário de execução do Job, ou seja, de quanto em quanto tempo o sistema irá atualizar o Saldo dos Produtos na tabela SB2.
No exemplo abaixo, o JOB irá rodar das 18:00:00 às 22:30:00, a cada 5 minutos:
[FTJOBNFSB2_9901]
START_TIME="18:00:00"
FINISH_TIME="22:30:00"
INTERVAL=5
É possível realizar a execução do Job via Schedule, configurando sua recorrência de execução.
O acesso do cadastro de Schedules fica no Configurador (SIGACFG), segundo o menu: "Ambiente" > "Schedule" > "Schedule"
Como pré-requisito, é necessário possuir o Cadastro de Agente.
Após isso, realize os seguintes passos:
Conforme as execuções do Schedule forem ocorrendo, os saldos de produtos serão atualizados na tabela SB2