...
| Produto: |
| ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Linha de Produto: |
| ||||||||
| Segmento: |
| ||||||||
| Tipo de Documento: | DSUPCONTR-8730 | ||||||||
| Módulo: | Acordos e Verbas | ||||||||
| Caminho: | Administração > Verbas de Bonificação | ||||||||
| Função: | VERBAS DE BONIFICAÇÃO - MAX0302 | ||||||||
| País: | Brasil | ||||||||
| Ticket: | 22828126 | ||||||||
| Requisito/Story/Issue (informe o requisito relacionado) : |
|
Foi identificada uma lentidão no processo pkg_adm_acordoverba.SP_CONSUMOVERBA_ZERASALDO, causada pela estrutura da query de busca de informações. A função fsaldoacordopromoc está sendo chamada de forma desnecessária para todos os acordos existentes anteriores à data final informada no parâmetro, resultando em acessos ineficientes.
...
| Bloco de código | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
with AcordosBase as (select Acordo.NroAcordo, Acordo.NroEmpresa, Acordo.SeqFornecedor, Acordo.SeqComprador, Acordo.VlrAcordo, Acordo.IndUtilContrSald, max(case when Verba.NroAcordo is not null then 1 else 0 end) TemVerba, max(case when Verba.DtaFinal >= trunc(sysdate) and Verba.QtdLimiteVerba > decode(nvl(Verba.QtdUtilizadaVerba, 0), 0, -1, Verba.QtdUtilizadaVerba) then 1 else 0 end) TemVergaVigenteTemVerbaVigente, nvl(max(Verba.IndVerbaAutoZeraSaldo), 'N') IndVerbaAutoZeraSaldo from Msu_AcordoPromoc Acordo left from join Mrl_CustoVerba Verba on Acordo.NroAcordo = Verba.Nroacordo Msu_AcordoPromoc Acordo left join Mrl_CustoVerba Verba and Acordo.NroEmpresa = Verba.NroEmpresaAcordo on where Acordo.AppOrigemNroAcordo = 2Verba.Nroacordo and Acordo.DtaInicialNroEmpresa >= pdDtaInicial Verba.NroEmpresaAcordo and Acordo.DtaFim + 1 <= pdDtaFinalnvl(Verba.IndTipAcordo, 'R') = 'R' and nvl(Verba.IndVerbaAutoZeraSaldo, 'N') StatusVerba = 'NA' where and nvl(Acordo.StatusAcordo, 'P') !AppOrigem = 'R'2 and Acordo.SituacaoAcordoDtaInicial not>= in ('R', 'C'nvl(pdDtaInicial, Acordo.DtaInicial) and Verba.NroempresaAcordo = Acordo.NroEmpresaAcordo.DtaFim + 1 <= pdDtaFinal and nvl(VerbaAcordo.IndTipAcordoStatusAcordo, 'RP') != 'R' and Verba.StatusVerba = 'A'Acordo.SituacaoAcordo not in ('R', 'C') group by Acordo.NroAcordo, Acordo.NroEmpresa, Acordo.SeqFornecedor, Acordo.SeqComprador, Acordo.VlrAcordo, Acordo.IndUtilContrSald), -- SALDO DO ACORDO SaldoAcordo as (select AcordosBase.NroAcordo, AcordosBase.NroEmpresa, fsaldoacordopromoc(AcordosBase.NroEmpresa, AcordosBase.NroAcordo, AcordosBase.SeqFornecedor) as VlrSaldo from AcordosBase AcordosBase), -- ACORDOS COM VERBAS VENCIDAS AcordosComVerba as (select AcordosBase.*, 'S' as IndExisteVerba, AcordosBase.NroEmpresa as NroEmpAcordo, Saldo.VlrSaldo from AcordosBase AcordosBase left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo and AcordosBase.NroEmpresa = Saldo.NroEmpresa where Saldo.VlrSaldo > 0 and AcordosBase.TemVerba = 1 and AcordosBase.TemVerbaVigente = 0 and AcordosBase.TemVergaVigenteIndVerbaAutoZeraSaldo = 0'N'), -- ACORDOS SEM VERBA AcordosSemVerba as (select AcordosBase.*, 'N' as IndExisteVerba, AcordosBase.NroEmpresa AS NroEmpAcordo, Saldo.VlrSaldo from AcordosBase AcordosBase left join SaldoAcordo Saldo on AcordosBase.NroAcordo = Saldo.Nroacordo and AcordosBase.NroEmpresa = Saldo.NroEmpresa where Saldo.VlrSaldo > 0 and AcordosBase.TemVerba = 0) select * from AcordosComVerba union all select * from AcordosSemVerba |
Se estiver na versão 24.07, atualizar o sistema para o service pack 24.07.
...
043 ou service pack superior.
Se estiver na versão 25.01, atualizar o sistema para o service pack 25.01.
...
017 ou service pack superior.