01. DADOS GERAIS
Produto: | TOTVS Backoffice
|
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice SP |
Módulo: | FINANCEIRO (SIGAFIN) |
Função: | LANÇAMENTOS CONTÁBEIS OFF-LINE (CTBAFIN) - CP |
Ticket: | 13112382 |
Requisito/Story/Issue (informe o requisito relacionado) : | DFINAPL-14753 |
02. SITUAÇÃO/REQUISITO
Ao contabilizar offline (CTBAFIN) em multi-thread com banco de dados Oracle o processo é interrompido ao encontrar o seguinte cenário: Quando há compensações a pagar (FINA340) de 2 NDF's com 1 NF, e posteriormente é estornada a compensação de uma das NDF's.
No trace do DbAccess é exibido o seguinte erro ao tentar fazer o INSERT de registros na tabela temporária: Error : 1 - ORA-00001: unique constraint .
No mesmo cenário relatado, mas em banco de dados MSSQL, o processo não é interrompido, porém são geradas duplicidades nos lançamentos contábeis (LPS 597 e 589).
03. SOLUÇÃO
Foi identificado que a clausula LEFT JOIN da query responsável por fazer a busca dos registros da tabela SE5 retornava duplicidades no contexto de compensações a pagar.
Assim, ao tentar inserir esses dados na tabela temporária ocorria o erro e o processo era abortado.
Para esse cenário foi corrigido os filtros da clausula LEFT JOIN para interpretar corretamente situações onde há estornos (E5_TIPODOC='ES').
Também foi diagnosticado e corrigido na clausula LEFT JOIN, no contexto de compensações a receber, que a busca pelos registros não estava com a chave correta de comparação com o campo E5_DOCUMEN, causando a não gravação das flags de contabilização no campo E5_LA.
04. DEMAIS INFORMAÇÕES
Melhoria complementar:
Implementamos criação da tabela temporária de movimentações de títulos uma nova coluna sequencial para bancos Oracle e Postgres.
O intuito é que não ocorra a interrupção do processo (erro de unique constraint) quando houver retorno de registros duplicados da query.
05. ASSUNTOS RELACIONADOS
Não se aplica