expsigladb.Package.CNRMAR037_BODY.sql Maven / Gradle / Ivy
--------------------------------------------------------
-- DDL for Package Body CNRMAR037
--------------------------------------------------------
CREATE OR REPLACE PACKAGE BODY "CNRMAR037" is
function fnum(anum number) return varchar2 is
begin
return to_char(anum,'9999999999999D99');
end;
function descMan(aMan mandato%rowtype) return varchar2 is
begin
return 'MAN es:'||aMan.esercizio||
' cds:'||aMan.cd_cds||
' uo:'||aMan.cd_unita_organizzativa||
' tipo:'||aMan.ti_mandato||
' c/r:'||aMan.ti_competenza_residuo||
' pg:'||aMan.pg_mandato;
end;
function descManRiga(aManRiga mandato_riga%rowtype) return varchar2 is
begin
return ' es_obb:'||aManRiga.esercizio_obbligazione||
' es_ori_obb:'||aManRiga.esercizio_ori_obbligazione||
' pg_obb:'||aManRiga.pg_obbligazione||
' pg_obb_scad:'||aManRiga.pg_obbligazione_scadenzario||
' cds_damm:'||aManRiga.cd_cds_doc_amm||
' uo_damm:'||aManRiga.cd_uo_doc_amm||
' es_damm:'||aManRiga.esercizio_doc_amm||
' tipo_damm:'||aManRiga.cd_tipo_documento_amm||
' pg_damm:'||aManRiga.pg_doc_amm;
end;
function descRev(aRev reversale%rowtype) return varchar2 is
begin
return 'REV es:'||aRev.esercizio||
' cds:'||aRev.cd_cds||
' uo:'||aRev.cd_unita_organizzativa||
' tipo:'||aRev.ti_reversale||
' c/r:'||aRev.ti_competenza_residuo||
' pg:'||aRev.pg_reversale;
end;
function descRevRiga(aRevRiga reversale_riga%rowtype) return varchar2 is
begin
return ' es_obb:'||aRevRiga.esercizio_accertamento||
' es_ori_obb:'||aRevRiga.esercizio_ori_accertamento||
' pg_obb:'||aRevRiga.pg_accertamento||
' pg_obb_scad:'||aRevRiga.pg_accertamento_scadenzario||
' cds_damm:'||aRevRiga.cd_cds_doc_amm||
' uo_damm:'||aRevRiga.cd_uo_doc_amm||
' es_damm:'||aRevRiga.esercizio_doc_amm||
' tipo_damm:'||aRevRiga.cd_tipo_documento_amm||
' pg_damm:'||aRevRiga.pg_doc_amm;
end;
function descVoce(aVoc voce_f_saldi_cmp%rowtype) return varchar2 is
begin
return 'VOCE cds:'||aVoc.cd_cds||
' es:'||aVoc.esercizio||
' app:'||aVoc.ti_appartenenza||
' gest:'||aVoc.ti_gestione||
' voce:'||aVoc.cd_voce||
' comp:'||aVoc.ti_competenza_residuo;
end;
function MSG_DIS_AUTOR(aTipo varchar2,aMan mandato%rowtype,aNota varchar2)
return varchar2 is
aOut varchar2(1000);
begin
aOut:=aTipo||' '||descMan(aMan)||' '||aNota;
return aOut;
end;
function MSG_DIS_AUTOR(aTipo varchar2,aRev reversale%rowtype,aNota varchar2)
return varchar2 is
aOut varchar2(1000);
begin
aOut:=aTipo||' '||descRev(aRev)||' '||aNota;
return aOut;
end;
function MSG_DIS_AUTOR(aTipo varchar2,aVocFSal voce_f_saldi_cmp%rowtype,aNota varchar2)
return varchar2 is
aOut varchar2(1000);
begin
aOut:=aTipo||' '||descVoce(aVocFSal)||' '||aNota;
return aOut;
end;
procedure job_mar_autor00(job number, pg_exec number, next_date date, aEs number, aCdCds varchar2, isModifica char) is
aTSNow date;
aUser varchar2(20);
aEndT date;
aStartT date;
aEnd varchar2(80);
aStart varchar2(80);
aDelta varchar2(80);
aMsgTipoMar varchar2(30);
aNumMan number:=0;
aNumRev number:=0;
aCDS unita_organizzativa%rowtype;
begin
aTSNow:=sysdate;
aUser:=IBMUTL200.getUserFromLog(pg_exec);
if isModifica = 'Y' then
aMsgTipoMar:='MARTELLO';
else
aMsgTipoMar:='VERIFICA';
end if;
aStartT:=sysdate;
aStart:=to_char(sysdate,'YYYYMMDD HH:MI:SS');
IBMUTL210.logStartExecutionUpd(pg_exec, TIPO_LOG_MAR_MANREV, job, D_AUTOR||'-'||aMsgTipoMar||' (disallinamenti documenti autorizzatori). Start:'||to_char(aTSNow,'YYYY/MM/DD HH-MI-SS'),D_AUTOR);
-- Inizio procedura di controllo/martello
BEGIN
IBMUTL200.logInf(pg_exec, D_AUTOR||'-START at: '||aStart||' es.'||aEs||' cds.'||aCdCds,aEs||aCdCds,'SOC');
-- Recuperiamo in aCds le informazioni inerenti il Cds in esame
begin
select * into aCDS from unita_organizzativa where cd_unita_organizzativa = aCdCds and fl_cds = 'Y';
exception when NO_DATA_FOUND then
IBMERR001.RAISE_ERR_GENERICO('Cds non trovato:'||aCdCds);
end;
-- *******************************
-- Inizio Ciclo su tutti i mandati
-- *******************************
for aM in (
select * from mandato where
esercizio = aEs
and cd_cds = aCdCds
for update nowait
) loop
declare
aTotRiga number(15,2);
-- Inizio Calcolo il totale del mandato
begin
aNumMan:=aNumMan+1;
-- Calcoliamo il totale del mandato sommando l'importo delle righe ad esso associate aTotRiga
-- Check D_AUTOR000 MAN
select nvl(sum(im_mandato_riga),0) into aTotRiga from mandato_riga where
esercizio = aM.esercizio
and cd_cds = aM.cd_cds
and pg_mandato = aM.pg_mandato;
-- se il totale d
if aTotRiga <> aM.im_mandato then
-- Se il totale relativo alla somma delle righe non corrisponde
-- al totale del MANDATO allora segnaliamo l'anomalia
IBMUTL200.logInf(pg_exec, MSG_DIS_AUTOR(D_AUTOR000,aM,null),'delta:'||fnum(aM.im_mandato-aTotRiga),'SOCD');
end if;
end;
-- Fine Calcolo il totale del mandato
end loop;
-- *****************************
-- Fine Ciclo su tutti i mandati
-- *****************************
-- **********************************
-- Inizio Ciclo su tutte le reversali
-- **********************************
for aR in (
select * from reversale where
esercizio = aEs
and cd_cds = aCdCds
for update nowait
) loop
declare
aTotRiga number(15,2);
-- Inizio Calcolo il totale della reversale
begin
aNumRev:=aNumRev+1;
-- Calcoliamo il totale della reversale sommando l'importo delle righe ad essa associate aTotRiga
-- Check D_AUTOR500 REV
select nvl(sum(im_reversale_riga),0) into aTotRiga from reversale_riga where
esercizio = aR.esercizio
and cd_cds = aR.cd_cds
and pg_reversale = aR.pg_reversale;
if aTotRiga <> aR.im_reversale then
-- Se il totale relativo alla somma delle righe non corrisponde
-- al totale della REVERSALE allora segnaliamo l'anomalia
IBMUTL200.logInf(pg_exec, MSG_DIS_AUTOR(D_AUTOR500,aR,null),'delta:'||fnum(aR.im_reversale-aTotRiga),'SOCD');
end if;
end;
-- Fine Calcolo il totale della reversale
end loop;
-- ********************************
-- Fine Ciclo su tutte le reversali
-- ********************************
-- ******************************************************************************************
-- Se il cds in esame non è di tipo ENTE allora controlliamo
-- che la somma di tutti i mandati collegati sia pari al saldo sulla tabella voce_f_saldi_cmp
-- il saldo sulla tabella voce_f_saldi_cmp, per i mandati, viene calcolato in base a:
-- esercizio = aEs, cd_cds = aCdCds, TI_GESTIONE = 'S' (Spesa), TI_COMPETENZA_RESIDUO ='C' (Competenza)
-- ******************************************************************************************
if aCds.cd_tipo_unita <> 'ENTE' then
-- ***********************************************
-- Inizio Controllo Saldi mandati aggregati per cd_cds, competenza, residuo
-- Check D_AUTOR100, D_AUTOR105 MAN
-- ***********************************************
declare
aTotC number(20,2); -- Totale Competenze
aTotR number(20,2); -- Totale Residui
aTotSaldiC number(20,2); -- Totale Saldi Competenze
aTotSaldiR number(20,2); -- Totale Saldi Residui
begin
aTotC :=0;
aTotR :=0;
aTotSaldiC := 0;
aTotSaldiR := 0;
select nvl(sum(decode(ti_competenza_residuo,TIPO_COMPETENZA,im_mandato,0)),0),
nvl(sum(decode(ti_competenza_residuo,TIPO_RESIDUO,im_mandato,0)),0)
into aTotC, aTotR
from mandato
where esercizio = aEs
and cd_cds = aCdCds
and stato <> STATO_ANNULLATO;
select nvl(sum(decode(ti_competenza_residuo,TIPO_COMPETENZA,im_mandati_reversali,0)),0),
nvl(sum(decode(ti_competenza_residuo,TIPO_RESIDUO,im_mandati_reversali,0)),0)
into aTotSaldiC, aTotSaldiR
from voce_f_saldi_cmp
where esercizio = aEs
and cd_cds = aCdCds
and ti_gestione = TIPO_SPESA
and ti_appartenenza = 'D';
if aTotC <> aTotSaldiC then
IBMUTL200.logInf(pg_exec, D_AUTOR100 ||' Esercizio = '|| aEs || ' Cds = '||aCdCds ,'delta:'||fnum(aTotC-aTotSaldiC),'SOCD');
end if;
if aTotR <> aTotSaldiR then
IBMUTL200.logInf(pg_exec, D_AUTOR105||' Esercizio = '|| aEs || ' Cds = '||aCdCds,'delta:'||fnum(aTotR-aTotSaldiR),'SOCD');
end if;
end;
-- **********************************************************************
-- Fine Controllo Saldi mandati aggregati per cd_cds, competenza, residuo
-- **********************************************************************
-- **************************************************************
-- Inizio Controllo Totalizzazione mandati aggregati per Capitolo
-- Check D_AUTOR110 D_AUTOR115 MAN
-- **************************************************************
declare
-- aTotSaldi number(20,2);
lVoceFSaldi voce_F_saldi_cmp%rowtype;
begin
-- Aggreghiamo i mandati in base al capitolo (CD_CDS, ESERCIZIO, TI_APPARTENENZA, TI_GESTIONE, CD_VOCE, TI_COMPETENZA_RESIDUO)
for aMandCapitolo in (select obbsv.CD_CDS, obbsv.ESERCIZIO, obbsv.TI_APPARTENENZA, obbsv.TI_GESTIONE,
obbsv.CD_VOCE, man.TI_COMPETENZA_RESIDUO,
sum(decode (manr.im_mandato_riga,0,0,1) * obbsv.im_voce) TOTALE
from mandato man, mandato_riga manr,
obbligazione obb,
obbligazione_scadenzario obbs, (select ESERCIZIO, ESERCIZIO_ORIGINALE, PG_OBBLIGAZIONE, PG_OBBLIGAZIONE_SCADENZARIO, TI_APPARTENENZA, TI_GESTIONE, CD_VOCE, cd_cds, sum(im_voce) im_voce
from obbligazione_scad_voce
group by ESERCIZIO, ESERCIZIO_ORIGINALE, PG_OBBLIGAZIONE, PG_OBBLIGAZIONE_SCADENZARIO, TI_APPARTENENZA, TI_GESTIONE, CD_VOCE, cd_cds )obbsv
where man.stato <> STATO_ANNULLATO
and man.cd_cds = aCdCds
and man.esercizio = aEs
and man.CD_CDS = manr.cd_cds
and man.ESERCIZIO = manr.esercizio
and man.PG_MANDATO = manr.pg_mandato
and manr.CD_CDS = obbs.cd_cds
and manr.ESERCIZIO_OBBLIGAZIONE = obbs.esercizio
and manr.ESERCIZIO_ORI_OBBLIGAZIONE = obbs.esercizio_originale
and manr.PG_OBBLIGAZIONE = obbs.pg_obbligazione
and manr.PG_OBBLIGAZIONE_SCADENZARIO = obbs.pg_obbligazione_scadenzario
and obb.CD_CDS = manr.CD_CDS
and obb.ESERCIZIO = manr.ESERCIZIO_OBBLIGAZIONE
and obb.ESERCIZIO_ORIGINALE = manr.ESERCIZIO_ORI_OBBLIGAZIONE
and obb.PG_OBBLIGAZIONE = manr.PG_OBBLIGAZIONE
and obb.STATO_OBBLIGAZIONE <> STATO_ANNULLATO_OBB
and obbs.CD_CDS = obbsv.cd_cds
and obbs.ESERCIZIO = obbsv.esercizio
and obbs.ESERCIZIO_ORIGINALE = obbsv.esercizio_originale
and obbs.PG_OBBLIGAZIONE = obbsv.pg_obbligazione
and obbs.PG_OBBLIGAZIONE_SCADENZARIO = obbsv.pg_obbligazione_scadenzario
group by obbsv.CD_CDS,
obbsv.ESERCIZIO,
obbsv.TI_APPARTENENZA,
obbsv.TI_GESTIONE,
obbsv.CD_VOCE,
man.TI_COMPETENZA_RESIDUO)
loop
-- Azzeramento della variabile di totalizzazione Saldi a dei totali
-- aTotSaldi := 0;
-- Fine Azzeramento
-- Calcolo dei saldi relativi alla COMPETENZA/RESIDUO
select * -- im_mandati_reversali
into lVoceFSaldi from voce_f_saldi_cmp voce
where voce.CD_CDS = aMandCapitolo.cd_cds
and voce.ESERCIZIO = aMandCapitolo.esercizio
and voce.TI_APPARTENENZA = aMandCapitolo.ti_appartenenza
and voce.TI_GESTIONE = aMandCapitolo.ti_gestione
and voce.CD_VOCE = aMandCapitolo.cd_voce
and voce.TI_COMPETENZA_RESIDUO = aMandCapitolo.TI_COMPETENZA_RESIDUO;
if aMandCapitolo.TOTALE <> lVoceFSaldi.im_mandati_reversali then
if aMandCapitolo.TI_COMPETENZA_RESIDUO = TIPO_COMPETENZA then
-- IBMUTL200.logInf(pg_exec, D_AUTOR110 || ' - cd_cds: '||aMandCapitolo.cd_cds ||' - esercizio: '||aMandCapitolo.esercizio||' - ti_appartenenza: '||aMandCapitolo.ti_appartenenza || ' - ti_gestione: ' ||aMandCapitolo.ti_gestione ||' - cd_voce: ' || aMandCapitolo.cd_voce || ' - competenza_residuo: '||aMandCapitolo.TI_COMPETENZA_RESIDUO ,'delta:'||fnum(aMandCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
IBMUTL200.logInf(pg_exec,MSG_DIS_AUTOR(D_AUTOR110,lVoceFSaldi,null),'delta:'||fnum(aMandCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
end if;
if aMandCapitolo.TI_COMPETENZA_RESIDUO = TIPO_RESIDUO then
-- IBMUTL200.logInf(pg_exec, D_AUTOR115 || ' - cd_cds: '||aMandCapitolo.cd_cds ||' - esercizio: '||aMandCapitolo.esercizio||' - ti_appartenenza: '||aMandCapitolo.ti_appartenenza || ' - ti_gestione: ' ||aMandCapitolo.ti_gestione ||' - cd_voce: ' || aMandCapitolo.cd_voce || ' - competenza_residuo: '||aMandCapitolo.TI_COMPETENZA_RESIDUO ,'delta:'||fnum(aMandCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
IBMUTL200.logInf(pg_exec,MSG_DIS_AUTOR(D_AUTOR115,lVoceFSaldi,null),'delta:'||fnum(aMandCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
end if;
end if;
-- **********************************************************
-- Modifichiamo i saldi in voce_f_saldi_cmp
-- **********************************************************
-- if isModifica ='Y' then
-- update voce_f_saldi_cmp
-- set im_mandati_reversali = aMandCapitolo.TOTALE
-- where CD_CDS = aMandCapitolo.cd_cds
-- and ESERCIZIO = aMandCapitolo.esercizio
-- and TI_APPARTENENZA = aMandCapitolo.ti_appartenenza
-- and TI_GESTIONE = aMandCapitolo.ti_gestione
-- and CD_VOCE = aMandCapitolo.cd_voce
-- and TI_COMPETENZA_RESIDUO = aMandCapitolo.ti_competenza_residuo;
-- end if;
end loop;
end;
-- ************************************************************
-- Fine Controllo Totalizzazione mandati aggregati per Capitolo
-- ************************************************************
-- **************************************************************************
-- Inizio Controllo Saldi reversali aggregate per cd_cds, competenza, residuo
-- Check D_AUTOR600, D_AUTOR605 REV
-- **************************************************************************
declare
aTotC number(20,2);
aTotR number(20,2);
aTotSaldiC number(20,2);
aTotSaldiR number(20,2);
aTipoAppartenenza char(1);
begin
select nvl(sum(decode(ti_competenza_residuo,TIPO_COMPETENZA,im_reversale,0)),0),
nvl(sum(decode(ti_competenza_residuo,TIPO_RESIDUO,im_reversale,0)),0)
into aTotC, aTotR
from reversale
where esercizio = aEs
and cd_cds = aCdCds
and stato <> STATO_ANNULLATO;
if aCDS.cd_tipo_unita='ENTE' then
aTipoAppartenenza := 'C';
else
aTipoAppartenenza := 'D';
end if;
select nvl(sum(decode(ti_competenza_residuo,TIPO_COMPETENZA,im_mandati_reversali,0)),0),
nvl(sum(decode(ti_competenza_residuo,TIPO_RESIDUO,im_mandati_reversali,0)),0)
into aTotSaldiC, aTotSaldiR
from voce_f_saldi_cmp
where esercizio = aEs
and cd_cds = aCdCds
and ti_gestione = TIPO_ENTRATA
and ti_appartenenza = aTipoAppartenenza;
if aTotC <> aTotSaldiC then
IBMUTL200.logInf(pg_exec, D_AUTOR600 ||' Esercizio = '|| aEs || ' Cds = '||aCdCds,'delta:'||fnum(aTotC-aTotSaldiC),'SOCD');
end if;
if aTotR <> aTotSaldiR then
IBMUTL200.logInf(pg_exec, D_AUTOR600 ||' Esercizio = '|| aEs || ' Cds = '||aCdCds,'delta:'||fnum(aTotR-aTotSaldiR),'SOCD');
end if;
end;
-- **************************************************************************
-- Fine Controllo Saldi reversali aggregate per cd_cds, competenza, residuo
-- **************************************************************************
-- ****************************************************************
-- Inizio Controllo Totalizzazione reversali aggregate per Capitolo
-- Check D_AUTOR605 REV
-- ****************************************************************
declare
aTotC number(20,2);
aTotR number(20,2);
-- aTotSaldi number(20,2);
lVoceFSaldi voce_F_saldi_cmp%rowtype;
begin
-- Aggreghiamo le reversali in base al capitolo (CD_CDS, ESERCIZIO, TI_APPARTENENZA, TI_GESTIONE, CD_VOCE, TI_COMPETENZA_RESIDUO)
for aRevCapitolo in (select acc.CD_CDS, acc.ESERCIZIO, acc.TI_APPARTENENZA, acc.TI_GESTIONE, acc.CD_VOCE, rev.TI_COMPETENZA_RESIDUO, sum(revr.im_reversale_riga) TOTALE
from reversale rev, reversale_riga revr,
accertamento acc
where rev.stato <> STATO_ANNULLATO
and rev.cd_cds = aCdCds
and rev.esercizio = aEs
and rev.CD_CDS = revr.cd_cds
and rev.ESERCIZIO = revr.esercizio
and rev.PG_REVERSALE = revr.pg_reversale
and revr.CD_CDS = acc.cd_cds
and revr.ESERCIZIO_ACCERTAMENTO = acc.esercizio
and revr.ESERCIZIO_ORI_ACCERTAMENTO = acc.esercizio_originale
and revr.PG_ACCERTAMENTO = acc.pg_accertamento
group by acc.CD_CDS,
acc.ESERCIZIO,
acc.TI_APPARTENENZA,
acc.TI_GESTIONE,
acc.CD_VOCE,
rev.TI_COMPETENZA_RESIDUO)
loop
-- Azzeramento della variabile di totalizzazione Saldi a dei totali
-- aTotSaldi := 0;
aTotC := 0;
aTotR := 0;
-- Fine Azzeramento
select * -- im_mandati_reversali
into lVoceFSaldi
from voce_f_saldi_cmp voce
where voce.CD_CDS = aRevCapitolo.cd_cds
and voce.ESERCIZIO = aRevCapitolo.esercizio
and voce.TI_APPARTENENZA = aRevCapitolo.ti_appartenenza
and voce.TI_GESTIONE = aRevCapitolo.ti_gestione
and voce.CD_VOCE = aRevCapitolo.cd_voce
and voce.TI_COMPETENZA_RESIDUO = aRevCapitolo.ti_competenza_residuo;
if aRevCapitolo.TOTALE <> lVoceFSaldi.im_mandati_reversali then
if aRevCapitolo.TI_COMPETENZA_RESIDUO = TIPO_COMPETENZA then
-- IBMUTL200.logInf(pg_exec, D_AUTOR610 || ' - cd_cds: '||aRevCapitolo.cd_cds ||' - esercizio: '||aRevCapitolo.esercizio||' - ti_appartenenza: '||aRevCapitolo.ti_appartenenza || ' - ti_gestione: ' ||aRevCapitolo.ti_gestione ||' - cd_voce: ' || aRevCapitolo.cd_voce || ' - competenza_residuo: '||aRevCapitolo.TI_COMPETENZA_RESIDUO ,'delta:'||fnum(aRevCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
IBMUTL200.logInf(pg_exec,MSG_DIS_AUTOR(D_AUTOR610,lVoceFSaldi,null),'delta:'||fnum(aRevCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
end if;
if aRevCapitolo.TI_COMPETENZA_RESIDUO = TIPO_RESIDUO then
-- IBMUTL200.logInf(pg_exec, D_AUTOR615 || ' - cd_cds: '||aRevCapitolo.cd_cds ||' - esercizio: '||aRevCapitolo.esercizio||' - ti_appartenenza: '||aRevCapitolo.ti_appartenenza || ' - ti_gestione: ' ||aRevCapitolo.ti_gestione ||' - cd_voce: ' || aRevCapitolo.cd_voce || ' - competenza_residuo: '||aRevCapitolo.TI_COMPETENZA_RESIDUO ,'delta:'||fnum(aRevCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
IBMUTL200.logInf(pg_exec,MSG_DIS_AUTOR(D_AUTOR615,lVoceFSaldi,null),'delta:'||fnum(aRevCapitolo.TOTALE-lVoceFSaldi.im_mandati_reversali),'SOCD');
end if;
end if;
-- **********************************************************
-- Modifichiamo i saldi in voce_f_saldi_cmp
-- **********************************************************
-- if isModifica ='Y' then
-- update voce_f_saldi_cmp
-- set im_mandati_reversali = aRevCapitolo.TOTALE
-- where CD_CDS = aRevCapitolo.cd_cds
-- and ESERCIZIO = aRevCapitolo.esercizio
-- and TI_APPARTENENZA = aRevCapitolo.ti_appartenenza
-- and TI_GESTIONE = aRevCapitolo.ti_gestione
-- and CD_VOCE = aRevCapitolo.cd_voce
-- and TI_COMPETENZA_RESIDUO = aRevCapitolo.ti_competenza_residuo;
-- end if;
end loop;
end;
-- **************************************************************
-- Fine Controllo Totalizzazione reversali aggregate per Capitolo
-- **************************************************************
end if; -- Fine sezione relativa a bilancio CDS
-- Fine procedura di controllo/martello
aEndT:=sysdate;
aEnd:=to_char(aEndT,'YYYYMMDD HH:MI:SS');
aDelta:=to_char((aEndT-aStartT)*24*3600,'999999');
IBMUTL200.logInf(pg_exec,D_AUTOR||'-PROCESSATE '||aNumMan||' MAN + '||aNumRev||' REV',aEs||aCdCds,'SOC');
IBMUTL200.logInf(pg_exec,D_AUTOR||'-END at: '||aEnd||' tot exec time(s):'||aDelta||' es.'||aEs||' cds.'||aCdCds,aEs||aCdCds,'SOC');
EXCEPTION WHEN OTHERS THEN
ROLLBACK;
IBMUTL200.logErr(pg_exec, SQLERRM(SQLCODE),DBMS_UTILITY.FORMAT_ERROR_STACK,'SOC');
END;
end;
end;
© 2015 - 2024 Weber Informatics LLC | Privacy Policy