Como acertar a numeração do D3_DOC

Está Gostando? Compartilhe

Neste post quero apresentar a forma que utilizo para corrigir a numeração no campo D3_DOC.

Sei que às vezes alguns usuários, sem querer erram o dedo e acabam alterando a sequência de algum campo do Protheus. E não somente o usuário, pois o sistema às vezes apresenta algum erro ou outro que altera a numeração.

E no caso da tabela SD3 (Movimentos Internos), o campo D3_DOC, utiliza na inicialização do campo a função NextNumero, e essa função efetua a busca direto no banco de dados, sem passar pelo controle de numerações do License, então você não consegue simplesmente ir e alterar via configurador.

Então é preciso realizar alguns procedimentos via QUERY.

E para isto eu costumo, primeiro verificar quantos registros estão errados, e se não houve movimentação no estoque desses itens.

E para isso, utilizo a query a seguinte:

SELECT 
    R_E_C_N_O_, 
    D3_FILIAL,
    D3_DOC 
FROM 
    dbo.SD3010 
WHERE 
    D3_FILIAL = '01'
    AND D3_DOC  < 'INVENT   '
    AND D_E_L_E_T_ = ' '
ORDER BY 
    D3_FILIAL DESC ,
    D3_DOC DESC ,
    D3_COD DESC ,
    R_E_C_N_O_ DESC

Após isto com esta listagem em mãos (documentos SD3), solicito ao usuário responsável pelas movimentações (caso exista um, rs), que realize os processos para estornar um a um desses documentos.

E após estes estornos, prossigo com a exclusão (pois a função NextNumero, não filtra o campo D3_ESTORNO).

E para isso, realizo um UPDATE na tabela SD3, atualizando o campo D_E_L_E_T_ para * (somente dos registros que foram estornados).

*Dica: Se a instalação tiver o R_E_C_D_E_L_, preencho ele com R_E_C_N_O_. 

Para isto utilizo o seguinte script.

UPDATE 
    SD3010 
SET 
    D_E_L_E_T_ = '*' 
WHERE 
    D3_DOC >= '40 '
    AND D3_ESTORNO = 'S'
    AND D3_DOC  < 'INVENT   '
    AND D_E_L_E_T_ = ' '

E assim concluo o processo acho que consegui contribuir de alguma forma.

Até a próxima.

Aproveite e Veja Também

Includes utilizar no AdvPL
Artigos

Quais Includes utilizar no desenvolvimento AdvPL?

Ao iniciar o desenvolvimento AdvPL quais includes utilizar? Pois a escolha das Includes corretas é crucial. Includes, ou arquivos *.ch, são fundamentais para o funcionamento

Lógica de Programação AdvPL

E-book grátis!

Também não gosto de SPAM e prometo manter o seu endereço de e-mail seguro.

plugins premium WordPress

Obrigado por cadastrar-se

Em alguns minutos você recebera um e-mail que te dará acesso ao e-Book.