CREATE OR REPLACE PACKAGE PKG_POPOLA_SLA_SE AS /****************************************************************************** NAME: PACKAGE PKG_POPOLA_SLA_SE PURPOSE: REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 02/11/2011 1. Created this package. ******************************************************************************/ PROCEDURE CARICAMENTO_SLA3GG_DONOR_VIRT (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_SLA3GG_REC_VIRT (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_SLATC_DONOR_VIRT (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_SLATC_REC_VIRT (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_SLA_SE(dataRif IN DATE); END PKG_POPOLA_SLA_SE; / CREATE OR REPLACE package body PKG_POPOLA_SLA_SE as procedure CARICAMENTO_SLA3GG_DONOR_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS --procedura per il caricamento dello SLA1 del DONOR VIRTUALE MVNO proc_name constant varchar2(30) := 'CARICAMENTO_SLA3GG_DONOR_VIRT'; D_ini DATE; D_fine DATE; BEGIN cod_errore := 0; D_ini:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS')); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, PROCESSO, TIPO_SLA, MESE, REC_EFF, DON_EFF, ID_RICHIESTA, MSISDN, TIPO_CLIENTE, NOME_OT, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, DATA_AGG ) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL, a.processo, a.tipo_messaggio, a.mese_comp_finale, a.recipient_effettivo, a.donor_effettivo, a.id_richiesta, b.Msisdn, b.Tipo_cliente, b.Nome_ot, b.data_validazione_max, b.business_id, SYSDATE FROM MNP_DW_SLA_3GG_OUT a, mnp.MNP_GEST_RICH_DONOR_VIRT b WHERE a.mese_comp_finale= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND a.tipo_messaggio='SLA1' AND a.recipient_effettivo IN ('TIMG') AND a.donor_effettivo in ('NOVE', 'COOP', 'TISC') AND a.processo = ('V') AND a.id_richiesta = b.id_richiesta; COMMIT; D_finE:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440)); EXCEPTION WHEN OTHERS THEN cod_errore := 1; DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLA3GG_DONOR_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_SLA3GG_DONOR_VIRT; procedure CARICAMENTO_SLA3GG_REC_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS --procedura per il caricamento dello degli SLA di: RECIPIENT VIRTUALE MVNO, DONOR VIRTUALE M2M e RECIPIENT VIRTUALE M2M proc_name constant varchar2(30) := 'CARICAMENTO_SLA3GG_REC_VIRT'; D_ini DATE; D_fine DATE; BEGIN cod_errore := 0; D_ini:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS')); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, PROCESSO, TIPO_SLA, MESE, REC_EFF, DON_EFF, ID_RICHIESTA, MSISDN, DESCR_STATO, TIPO_CLIENTE, NOME_OT, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, CAUSALE_RIF, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_DON, DATA_ESPL_TP, DATA_ESPL_GISP, DATA_AGG ) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL, a.processo, a.tipo_messaggio, a.mese_comp_finale, a.recipient_effettivo, a.donor_effettivo, a.id_richiesta, b.Msisdn, d.descr_stato, b.Tipo_cliente, b.Nome_ot, b.data_validazione_max, b.business_id_donating, b.business_id_recipient, b.Codice_rifiuto_validazione, b.Dataricezionerichiesta, b.Data_cut_over, c.data_i_o, c.data_i_o, -- tbv c.data_i_o, -- tbv SYSDATE FROM MNP_DW_SLA_3GG_OUT a, mnp.MNP_GEST_RICH_REC_VIRT b, mnp.MNP_STORICO_RICH_REC_VIRT c, mnp.MNP_STATO_REC_VIRT d WHERE a.mese_comp_finale= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND a.recipient_effettivo IN ('NOVE', 'COOP', 'TISC') AND a.donor_effettivo in ('TIMG', 'NOVE', 'COOP', 'TISC') AND a.processo = ('V') AND d.id_stato = b.stato AND a.id_richiesta = b.id_richiesta AND a.id_richiesta = c.id_richiesta AND c.stato_a = 12; -- EVASA COMMIT; D_finE:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440)); EXCEPTION WHEN OTHERS THEN cod_errore := 1; DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLA3GG_REC_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_SLA3GG_REC_VIRT; procedure CARICAMENTO_SLATC_DONOR_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS --procedura per il caricamento dello degli SLA di TC: DONOR VIRTUALE proc_name constant varchar2(30) := 'CARICAMENTO_SLATC_DONOR_VIRT'; D_ini DATE; D_fine DATE; BEGIN cod_errore := 0; D_ini:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS')); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, PROCESSO, TIPO_SLA, MESE, REC_EFF, DON_EFF, ID_RICHIESTA, MSISDN, TIPO_CLIENTE, DON_RETE, DATA_ESPL_DON, BUSINESS_ID_DONATING, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, DATA_AGG ) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL, a.processo, a.tipo_messaggio, a.mese_comp_finale, a.recipient_effettivo, a.donor_effettivo, a.id_richiesta, b.Msisdn, b.Tipo_cliente, 'TIMG', e.data_i_o, b.business_id, c.DESCR_STATO, d.credito, d.data_notifica_recipient, SYSDATE FROM MNP_DW_SLA_TC_OUT a, mnp.MNP_GEST_RICH_DONOR_VIRT b, mnp.MNP_STATO_DON_VIRT c, mnp.MNP_GEST_RICH_DON_VIRT_TC d, mnp.MNP_STORICO_RICH_DON_VIRT e WHERE a.mese_comp_finale = TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND a.tipo_messaggio IN ('SLA X', 'SLA Y', 'SLA Z') AND a.recipient_effettivo IN ('TIMG') AND a.donor_effettivo in ('NOVE', 'COOP', 'TISC') AND a.processo = ('V') AND a.id_richiesta = b.id_richiesta AND a.id_richiesta=d.id_richiesta AND a.id_richiesta=e.id_richiesta AND c.ID_STATO= b.STATO AND e.stato_a = 11; -- EVASA; COMMIT; D_finE:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440)); EXCEPTION WHEN OTHERS THEN cod_errore := 1; DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLATC_DONOR_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_SLATC_DONOR_VIRT; procedure CARICAMENTO_SLATC_REC_VIRT(dataRif IN DATE,cod_errore OUT NUMBER) IS --procedura per il caricamento dello degli SLA di TC: RECIPIENT VIRTUALE MVNO, DONOR VIRTUALE M2M e RECIPIENT VIRTUALE M2M proc_name constant varchar2(30) := 'CARICAMENTO_SLATC_REC_VIRT'; D_ini DATE; D_fine DATE; BEGIN cod_errore := 0; D_ini:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS')); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, PROCESSO, TIPO_SLA, MESE, REC_EFF, DON_EFF, ID_RICHIESTA, MSISDN, TIPO_CLIENTE, DON_RETE, DATA_ESPL_DON, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, DATA_CUT_OVER, DATA_AGG ) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL, a.processo, a.tipo_messaggio, a.mese_comp_finale, a.recipient_effettivo, a.donor_effettivo, a.id_richiesta, b.Msisdn, b.Tipo_cliente, 'TIMG', e.data_i_o, b.business_id_donating, b.business_id_recipient, c.DESCR_STATO, d.credito, d.data_notifica_recipient, b.data_cut_over, SYSDATE FROM MNP_DW_SLA_TC_OUT a, mnp.MNP_GEST_RICH_REC_VIRT b, mnp.MNP_STATO_REC_VIRT c, mnp.MNP_GEST_RICH_REC_VIRT_TC d, mnp.MNP_STORICO_RICH_REC_VIRT e WHERE a.mese_comp_finale = TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND a.tipo_messaggio IN ('SLA X', 'SLA Y', 'SLA Z') AND a.recipient_effettivo in ('NOVE', 'COOP', 'TISC') AND a.donor_effettivo in ('TIMG','NOVE', 'COOP', 'TISC') AND a.processo = ('V') AND a.id_richiesta = b.id_richiesta AND a.id_richiesta=d.id_richiesta AND a.id_richiesta=e.id_richiesta AND c.ID_STATO= b.STATO AND e.stato_a = 12; -- EVASA;; COMMIT; D_finE:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCEDURA '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440)); EXCEPTION WHEN OTHERS THEN cod_errore := 1; DBMS_OUTPUT.put_line ('Errore in DWH.CARICAMENTO_SLATC_REC_VIRT ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_SLATC_REC_VIRT; procedure CARICAMENTO_SLA_SE(dataRif IN Date) IS cod_errore NUMBER (1); cod_errore_sla3GG_don_virt NUMBER (1):=0; cod_errore_sla3GG_rec_virt NUMBER (1):=0; cod_errore_slaTC_don_virt NUMBER (1):=0; cod_errore_slaTC_rec_virt NUMBER (1):=0; proc_name constant varchar2(30) := 'CARICAMENTO_SLA_SE'; D_ini DATE; D_fine DATE; BEGIN dbms_output.enable(9999999); D_ini:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: INIZIO PROCESSO '||PROC_NAME||' - '||TO_CHAR(D_INI,'YYYY-MM-DD HH24:MI:SS')); ----------------------------------------------------- -- DELETE PREVENTIVA DELLA TABELLA ----------------------------------------------------- DELETE MNP_DW_SLA_SE_IN_OUT WHERE TO_CHAR(MESE,'mm/yyyy')=TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy'); cod_errore := 0; -- caricamento dati: CARICAMENTO_SLA3GG_DONOR_VIRT (dataRif,cod_errore_sla3GG_don_virt); CARICAMENTO_SLA3GG_REC_VIRT (dataRif,cod_errore_sla3GG_rec_virt); CARICAMENTO_SLATC_DONOR_VIRT (dataRif,cod_errore_slaTC_don_virt); CARICAMENTO_SLATC_REC_VIRT (dataRif,cod_errore_slaTC_rec_virt); cod_errore := cod_errore_sla3GG_don_virt + cod_errore_sla3GG_rec_virt+cod_errore_slaTC_don_virt +cod_errore_slaTC_rec_virt; IF cod_errore = 0 THEN -- tutto a posto DBMS_OUTPUT.put_line ('Caricamento dati SLA avvenuto.'); ELSE -- tutto na sola DBMS_OUTPUT.put_line ('CARICAMENTO DATI SLA PARZIALE: PROCESSO TERMINATO CON ERRORI VERIFICARE LOG!'); END IF; COMMIT; D_fine:=sysdate; DBMS_OUTPUT.put_line ('PKG_POPOLA_SLA_SE: FINE PROCESSO '||PROC_NAME||' - '||TO_CHAR(D_FINE,'YYYY-MM-DD HH24:MI:SS')||' - DURATA IN MINUTI:'||TRUNC((D_fine-D_ini)*1440)); EXCEPTION WHEN OTHERS THEN cod_errore := 1; DBMS_OUTPUT.put_line ('Errore nel caricamento dati Sla ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_SLA_SE; END PKG_POPOLA_SLA_SE; /