Aumento de Casas Decimais no ambiente Faturamento - SIGAFAT

Produto:

Microsiga Protheus

Ocorrência:Aumento de casas decimais ou inconsistências relacionadas à alteração

Ambiente:

SIGAFAT - Faturamento


O aumento de casas decimais no Protheus é uma questão delicada. Quando realizado sem os devidos critérios, ou não recebe a devida manutenção, pode causar diversas inconsistências.

KCS: Cross Segmento - TOTVS Backoffice (Linha Protheus) - SIGAFAT - Casas decimais no Faturamento


POSSÍVEIS INCONSISTÊNCIAS



  • Exibida mensagem no Pedido de Vendas informando que...

Por se tratar de uma Nota Fiscal de Devolução, o valor unitário deve ser igual ao da Nota Fiscal de Origem

(sendo que o valor exibido no Pedido está sim igual ao valor exibido na Nota de Entrada)


  • No Pedido de Vendas (SC6)

É informado no item um Valor/Qtd “x” porém, ao Liberar / Preparar o documento de saída, esse valor/qtd é levado “y” (SC9 / SD2)


  • Campos com conteúdos diferentes, quando deveriam ter conteúdo idêntico

Exemplo: B6_PRUNIT / D2_PRCVEN (preço da venda) / D2_PRUNIT (preço unitário do produto)

Podendo inclusive atribuir essa diferença como desconto indevido na Nota.


  • Alerts na tela que impedem o processo:

A410UNIDIFA100VALORA410TOTAL |A415TOTAL

CONCEPÇÃO DE CAUSA


Estes comportamentos são comumente encontrados em ambiente onde houve aumento no tamanho de campos ou alteração na configuração de casas decimais. São causados devido a algum campo, relacionado à Nota, ter sido gravado com dados incompatíveis (geralmente, devido à tamanhos diferentes de campos ou das decimais, ou seja, dicionário/banco de dados alterado sem devida equiparação). Obs: Quando digo "algum campo relacionado à Nota" entenda-se que pode ser de quaisquer Tabelas, de diversos diferentes módulos, que o cliente possa ter implantado em seu negócio e de algum modo se relacionem, devido o sistema ser integrado.


É importante esclarecer que tais inconsistências geralmente não se limitam exclusivamente ao Pedido / Nota que está sendo lançado. Muitas vezes se trata de outras Tabelas que já foram movimentadas antes, uma vez que o sistema valida histórico e relacionamentos das movimentações para execução de cálculos e para manter a integridade de dados. Ou seja, quando o sistema faz um cálculo ele vai passar o valor de um campo X (C6_PRCVEN por exemplo) por vários outros campos. Se não estiverem todos padronizados, comportando a mesma quantidade e configuração dos dados, as últimas casas decimais serão perdidas, impactando assim no valor FINAL considerado e levado para o campo de destino.

É possível inclusive que a inconsistência seja identificada após atualização; isso devido às correções que são realizadas nas validações e nos Fontes atualizados! Ou mesmo, devido às Tabelas e/ou campos que foram criados e envolvidos no processo desde sua última atualização da Base


IMPORTANTE: Qualquer tratamento relacionado a casas decimais é considerado um desvio do Nativo do Protheus (no qual é padrão o uso de dois dígitos, apenas, para o ambiente Faturamento).
Portanto, é indicado que qualquer alteração neste sentido seja realizado e documentado por um analista in loco (Consultar diretamente seu ESN) para análise pontual de sua base/ seu cenário, inclusive para as manutenções dessas alterações nas Tabelas (já que com as atualizações podem ser criados novos campos e novas tabelas na base).


COMO SOLUCIONAR


1 - Identificar e ajustar todos os campos relacionados de modo que todos possuam configuração compatível para que os dados não se percam.

Ou seja, campos de quantidade devem todos possuir mesmo tamanho/ máscara. Campos de valor também devem possuir mesmo tamanho/ máscara (saiba mais aqui sobre o tamanho Limite-de-casas-decimais)
Com exceção de campos de Valor Total. CAMPOS TOTAIS NÃO SE ALTERA CASAS DECIMAIS, estes devem permanecer com 2 casas decimais (evitando inclusive erros em arquivos fiscais).

A TOTVS não possui um Documento específico para definição de todas as tabelas/campos que são utilizados em sua rotina, e consequentemente, precisam ser alterados para manter a integridade entre suas Tabelas; pois é relativo à cada Cliente, pontualmente, de acordo com os módulos que estão implantados, as rotinas que são utilizadas, as tabelas que são alimentadas e os campos que são de uso. Sendo assim, caso realize a implementação/ manutenção internamente com sua equipe de TI, ressaltamos a importância de alterar todas as tabelas/ campos utilizados na integração de suas rotinas; a fim de não gerar inconsistência em sua base de dados.

Podemos citar os campos mais usuais PARA O MÓDULO FATURAMENTO, e algumas das integrações mais recorrentes (orientamos que estejam com o mesmo tamanho do campo E com mesma quantidade de casas decimais de um campo para outro respectivamente)


SC6 - PEDIDOS DE VENDA: C6_QTDVEN, C6_QTDLIB, C6_QTDLIB2, C6_UNSVEN, C6_SLDALIB, C6_QTDENT, C6_QTDENT2, C6_PRUNIT, C6_PRCVEN, C6_QTDEMP, C6_QTDEMP2, C6_QTDRESE

SC9 - QTD LIBERADAS: C9_QTDLIB, C9_PRCVEN, C9_QTDRESE, C9_QTDLIB2

SD2 - NOTAS DE SAIDA: D2_QUANT, D2_QTSEGUM, D2_PRCVEN, D2_PRUNIT, D2_QTDEDEV, D2_VALDEV, D2_QTDAFAT, D2_QTDEFAT

SD4 - EMPENHOS: D4_QUANT, D4_QTDEORI, D4_QTSEGUM

SCK - ORCAMENTOS: CK_QTDVEN, CK_PRCVEN, CK_PRUNIT, CK_VALDESC

ADB - CONTRATO DE PARCERIA: ADB_QUANT, ADB_PRCVEN, ADB_PRUNIT, ADB_UNSVEN, ADB_QTDENT, ADB_QTDEMP

DA1 - ITENS DA TABELA DE PREÇOS: DA1_PRCBAS, DA1_PRCVEN, DA1_VLRDES

SC7- PEDIDO DE COMPRAS: C7_QUANT, C7_QTSEGUM, C7_QUJE, C7_QTDACLA, C7_PRECO

SC1 - SOLICITAÇÕES: C1_QUANT, C1_QTSEGUM

SC8 - COTACOES: C8_QUANT, C8_QTDCTR, C8_QTSEGUM, C8_PRECO

SD1 - NOTAS DE ENTRADA: D1_QUANT, D1_QTSEGUM, D1_QTDPEDI, D1_QTDEDEV, D1_VALDEV, D1_VUNIT

SD3 - MOVIMENTACOES INTERNAS: D3_QUANT, D3_QTSEGUM, D3_PERDA

SB2 - SALDOS FISICOS E FINANCEIROS: B2_QATU, B2_QFIM, B2_QEMPN, B2_QTSEGUM, B2_RESERVA, B2_QPEDVEN, B2_NAOCLAS, B2_QTNP, B2_QNPT, B2_QTER, B2_QFIM2, B2_QEMPN2, B2_RESERV2, B2_QPEDVE2, B2_QFIMFF, B2_VFIM1 / 2 / 3 / 4 / 5, B2_VATU1 / 2 / 3 / 4 / 5, B2_CM1 / 2 / 3 / 4 / 5.

SB6 - SALDOS PODER TERCEIROS: B6_QUANT, B6_QTSEGUM, B6_QULIB, B6_PRUNIT, B6_SALDO

SB7 - INVENTARIO: B7_QUANT, B7_QTSEGUM

SB9 - SALDOS INICIAIS: B9_QINI, B9_QISEGUM, B9_VINI1 / 2 / 3 / 4 / 5, B9_VINIFF1 / 2 / 3 / 4 / 5

SB8 - SALDOS POR LOTE: B8_QTDORI, B8_QEMPPRE, B8_SALDO, B8_SALDO2, B8_EMPENHO, B8_QACLASS, B8_QTDORI2, B8_EMPENH2, B8_QEPRE2, B8_QACLAS2

SBF - SALDOS POR ENDEREÇO: BF_QUANT, BF_EMPENHO, BF_QEMPPRE, BF_QTSEGUM, BF_EMPEN2, BF_QEPRE2

SBJ - SALDOS INICIAIS POR LOTE: BJ_QINI, BJ_QISEGUM

SBK - SALDOS INICIAIS POR ENDERECO: BK_QINI, BK_QISEGUM

SD5 - REQUISIÇÕES POR LOTE : D5_QUANT, D5_QTSEGUM

SDD - BLOQUEIO DE LOTES: DD_QUANT, DD_SALDO, DD_QTDORIG, DD_QTSEGUM, DD_SALDO2

SDB - MOVIMENTOS DE DISTRIBUIÇÃO: DB_QUANT, DB_EMPENHO, DB_QTSEGUM, DB_EMP2

SDA - SALDOS A DISTRIBUIR: DA_QTDORI, DA_SALDO, DA_EMPENHO, DA_QTSEGUM, DA_QTDORI2, DA_EMP2

SDC - COMPOSIÇÃO DO EMPENHO: DC_QUANT, DC_QDTORIG, DC_QTSEGUM

SCP - SOLICITAÇÕES AO ARMAZÉM: CP_QUANT, CP_QTSEGUM, CP_QUJE, CP_SALBLQ

SCQ - PRÉ-REQUISIÇÕES: CQ_QUANT, CQ_QTSEGUM, CQ_QTDISP

AF2 - TAREFAS DO ORÇAMENTO: AF2_QUANT, AF2_KVUNIT

AF3 - RECUSRSOS DO ORÇAMENTO: AF3_QUANT, AF3_CUSTD

AF4 - DESPESAS DO ORÇAMENTO: AF4_VALOR

AF8 - PROJETOS: AF8_VALBDI

AFA - RECURSOS DO PROJETO: AFA_QUANT, AFA_CUSTD

AFC - ESTRUTURA DO PROJETO: AFC_QUANT, AFC_CUSTO, AFC_CUSTO1/2/3/4/5

SC2 - ORDENS PRODUÇÃO: C2_QUANT, C2_PERDA, C2_QTSEGUM, C2_QUJE

SBC - PERDA POR OP: BC_QUANT, BC_QTDDEST, BC_QTSEGUM, BC_QTDDES2

SD4 - EMPENHOS: D4_QSUSP, D4_QTDEORI, D4_QUANT, D4_QTSEGUM

SH6 - MOVIMENTACAO DA PRODUÇÃO: H6_QTDPROD, H6_QTDPERD, H6_QTDPRO2

SUB - ORCAMENTOS: UB_QUANT, UB_VRUNIT, UB_VALDESC, UB_VALACRE, UB_PRCTAB


Considerações Importantes:

  • A ferramenta UPDTAMCPO foi descontinuada a partir da Release 12.1.23 com uso de binário LOBO GUARÁ devido não ser uma ferramenta homologada pela Totvs. Alterações devem ser realizadas manualmente via Configurador - SIGACFG após devidos backups e validação em ambiente teste.
  • Como mencionado, Todas as Tabelas utilizadas em seu processo devem estar de acordo. Além das mais usuais mencionadas, para consultar tabelas envolvidas em cada rotina utilizada: Pode ser verificado no Help Online da rotina expandindo a pasta 'Dados Técnicos'>'Tabelas'. EXEMPLO: Ao consultar a Rotina Documentos de Saída, exibe as Tabelas Utilizadas: http://interno.totvs.com/mktfiles/tdiportais/helponlineprotheus/p12/portuguese/mata460a_tabelas.htm
  • O parâmetro MV_ARREFAT trata apenas se deve arredondar ou truncar o resultado da Multiplicação "Quantidade" * "Valor Unitário", quando o total de decimais não contempla o resultado completo da operação. Observação: Caso utilize outras moedas, o Valor Unitário também será arredondado na conversão.

2 - Corrigir dados inconsistentes gravados nas Tabelas relacionadas

Após realizar os ajustes de tamanhos dos campos no configurador, corrigindo assim a compatibilidade na configuração do Dicionário e Banco de Dados, ainda há o problema já causado, ou seja, dados que já estão gravados no banco (que podem estar inconsistentes) não são alterados na base.

Deste modo, recomendamos como medidas de contorno:


  • Que execute (juntamente com seu time de TI para devidos procedimentos de análise e precaução) algumas rotinas de recálculos disponibilizados pelo sistema:

MATA215 - Refaz Acumulados / MATA216 - Refaz saldo de/em terceiro / Refaz dados CLI/FOR / MATA300 - Refaz Saldos que podem ajustar alguns campos que possuem dados incorretos.


  • Que valide o processo desde seu início de forma que não seja trazido histórico inconsistente de Tabelas já registradas (por exemplo, trazer dado já incorreto da SD1/SB6 para SC6, ou da SC9 para a SD2).

Ou seja, para validar deve-se refazer o procedimento do início com um novo registro, não utilizando registros já gravados na base com possíveis inconsistências de dados. Exemplo: Se o procedimento se trata de uma Nota de Devolução / Retorno...

Então neste caso deve-se inserir uma nova Nota de Origem (idêntica ao caso em questão) e, na sequência realizar o processo de devolução (total/parcial) de modo que os dados tenham a devida integridade para correto processamento.


Observação Final:

Aqui foram registradas as considerações importantes na análise de ambiente/ base, em relação às casas decimais, para que efetue a validação.

Caso realize as validações e os devidos procedimentos indicados, porém, ainda ocorra o problema, será necessário solicitar auxilio da Consultoria Totvs ou Consultoria do Módulo para que acesse remotamente a sua base, visando avaliação/ debug da rotina para investigá-la e identificar a origem do problema.

Há a Consultoria In loco (solicitar diretamente à seu Gerente de atendimento TOTVS) e a Consultoria Técnica (Ligar diretamente no 4003-0015 Opções 2-3-2-4) na qual o atendimento é agendado conforme necessidade do cliente e disponibilização dos consultores.