Produto: TOTVS Gestão Financeira
Processo de Negócio: Rateios do lançamento
Processo do Sistema: Tratamento do erro: "O registro rateio por centro de custo possui campo PERCENTUAL obrigatório."
Introdução
Este erro ocorre porque nas primeiras versões da BibliotecaRM, o campo PERCENTUAL na tabela de Rateios do Lançamento (FLANRATCCU) estava sendo gravado como nulo. Logo, ao fazer qualquer alteração no registro o erro é exibido.
Desenvolvimento/Procedimento
Tratamento do erro: "O registro rateio por centro de custo possui campo PERCENTUAL obrigatório."
Para correção, sigas as instruções:
*Sugerimos que todo o processo seja realizado em ambiente de testes e validando a solução, replicar ao ambiente de produção. Faça um backup da base de dados e utilize-o.
Primeiro Procedimento
Atualizar a versão da BibliotecaRM e do aplicativo RM Fluxus para a última específica na versão 11.20, fazendo com que a falha não ocorra nos próximos registros a serem gerados.
1. Digite, www.totvs.com/suporte
2. Faça o login, com seu Email e Senha.
3. Clique em Download através da barra do menu do Portal do Cliente.
4 Aplica-se o filtro: [ Linha = RM e Amb/Vers = 11.2x ]
5. Pronto! Na grid de download, listará todos os produtos da respectiva série informada.
Segundo Procedimento
Rodar um script na base de dados para que os lançamentos já gravados sejam corrigidos e o campo PERCENTUAL seja preenchido de forma adequada na tabela de Rateios do Lançamento.
Existem dois scripts disponibilizados pela equipe de Suporte, um para bases Oracle e outro para bases SQL. Solicite o que se adéqua a sua situação e lembre-se de criar um backup antes de executá-lo na base de produção.
Exemplo de script (SQL)
DECLARE @DECIMAIS VARCHAR(2), @COLIGADA DCODCOLIGADA
DECLARE @IDLAN INTEGER, @INTEIRO INTEGER, @IDRAT INTEGER
DECLARE @VALOR NUMERIC
DECLARE ACERTO_PERCENTUAIS CURSOR FOR
SELECT CODCOLIGADA, INTEIRO FROM FPARAM WHERE ID = 215
OPEN ACERTO_PERCENTUAIS
FETCH NEXT FROM ACERTO_PERCENTUAIS INTO @COLIGADA, @INTEIRO
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE @COLIGADA1 DCODCOLIGADA, @VAR VARCHAR(1000), @EXEC VARCHAR(1000)
DECLARE ACERTO_PERCENTUAIS1 CURSOR FOR
SELECT VALOR =
CASE
WHEN (TEMP.VALOR > 0) THEN (F.VALOR / TEMP.VALOR) * 100
ELSE 100
END, F.CODCOLIGADA, F.IDLAN, F.IDRATCCU
FROM FLANRATCCU F, (SELECT SUM(VALOR) VALOR, CODCOLIGADA, IDLAN FROM FLANRATCCU
WHERE PERCENTUAL IS NULL AND CODCOLIGADA = @COLIGADA
GROUP BY CODCOLIGADA, IDLAN) TEMP
WHERE TEMP.CODCOLIGADA = F.CODCOLIGADA AND
TEMP.IDLAN = F.IDLAN
OPEN ACERTO_PERCENTUAIS1
FETCH NEXT FROM ACERTO_PERCENTUAIS1 INTO @VALOR, @COLIGADA1, @IDLAN, @IDRAT
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @VAR = ('CAST(TEMP.VALOR AS NUMERIC(15,' + CAST(@INTEIRO AS VARCHAR) + '))')
SET @EXEC = ('UPDATE FLANRATCCU SET PERCENTUAL = ' + CAST(@VAR AS VARCHAR(100))+ '
FROM (
SELECT VALOR =
CASE
WHEN (TEMP1.VALOR > 0) THEN (F.VALOR / TEMP1.VALOR) * 100
ELSE 100
END, F.CODCOLIGADA, F.IDLAN, F.IDRATCCU
FROM FLANRATCCU F, (SELECT SUM(VALOR) VALOR, CODCOLIGADA, IDLAN
FROM FLANRATCCU
WHERE PERCENTUAL IS NULL AND
CODCOLIGADA = ' + CAST(@COLIGADA AS VARCHAR) + '
GROUP BY CODCOLIGADA, IDLAN) TEMP1
WHERE TEMP1.CODCOLIGADA = F.CODCOLIGADA AND
TEMP1.IDLAN = F.IDLAN ) TEMP
WHERE TEMP.CODCOLIGADA = FLANRATCCU.CODCOLIGADA AND
TEMP.IDLAN = FLANRATCCU.IDLAN AND
FLANRATCCU.CODCOLIGADA = ' + CAST(@COLIGADA1 AS VARCHAR) + ' AND
FLANRATCCU.IDLAN = ' + CAST(@IDLAN AS VARCHAR) + ' AND
FLANRATCCU.IDRATCCU = TEMP.IDRATCCU' )
EXEC(@EXEC)
FETCH NEXT FROM ACERTO_PERCENTUAIS1 INTO @VALOR, @COLIGADA1, @IDLAN, @IDRAT
END
CLOSE ACERTO_PERCENTUAIS1
DEALLOCATE ACERTO_PERCENTUAIS1
FETCH NEXT FROM ACERTO_PERCENTUAIS INTO @COLIGADA, @INTEIRO
END
CLOSE ACERTO_PERCENTUAIS
DEALLOCATE ACERTO_PERCENTUAIS
GO
Informações Adicionais
- Inicialmente o erro era apresentado apenas em clientes utilizando a versão 11.20, mas os clientes que migraram para a versão 11.40 também estão encontrando esse erro ao editar qualquer lançamento já gravado na base antes da migração. Neste caso, basta apenas rodar o script para correção.
- Se não for do setor de Tecnologia da empresa, acione este departamento e explique a situação.
Data de produção/atualização: 18/01/2012