CREATE OR REPLACE PACKAGE DWH.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_DONOR_SLA1 (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_DONOR_SLATC (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_RECIPIENT_SLA_TC (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_RECIPIENT_SLA_2 (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_RECIPIENT_SLA_2AOM (dataRif IN DATE,cod_errore OUT NUMBER); PROCEDURE CARICAMENTO_SLA_SE(dataRif IN DATE); END PKG_POPOLA_SLA_SE; / CREATE OR REPLACE package body DWH.PKG_POPOLA_SLA_SE as procedure CARICAMENTO_DONOR_SLA1(dataRif IN DATE,cod_errore OUT NUMBER) IS --procedura per il caricamento dello SLA1 del DONOR VIRTUALE MVNO proc_name constant varchar2(30) := 'CARICAMENTO_DONOR_SLA1'; 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, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.TIPO_CLIENTE ELSE C.TIPO_CLIENTE END AS TIPO_CLIENTE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.NOME_OT ELSE C.NOME_OT END AS NOME_OT, A.MSISDN, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATA_VALIDAZIONE_MAX ELSE C.DATA_VALIDAZIONE_MAX END AS DATA_VALIDAZIONE_MAX, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.BUSINESS_ID ELSE C.BUSINESS_ID END AS BUSINESS_ID_DONATING, NULL AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATARICEZIONERICHIESTA ELSE C.DATARICEZIONERICHIESTA END AS DATA_RICEZIONE_RICHIESTA, A.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, NULL AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_3GG_OUT A,MNP.MNP_GEST_RICH_DONOR_VIRT B,MNP.MNP_GESTIONE_RICHIESTA C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.DONOR_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.RECIPIENT_RETE IN ('H3GI', 'WIND', 'OPIV', 'NOVA', 'TIMG') AND A.TIPO_MESSAGGIO IN ('SLA1', 'SLA2') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.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_DONOR_SLA1 ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_DONOR_SLA1; procedure CARICAMENTO_DONOR_SLATC(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_DONOR_SLATC'; 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, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.TIPO_CLIENTE ELSE C.TIPO_CLIENTE END AS TIPO_CLIENTE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.NOME_OT ELSE C.NOME_OT END AS NOME_OT, A.MSISDN, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATA_VALIDAZIONE_MAX ELSE C.DATA_VALIDAZIONE_MAX END AS DATA_VALIDAZIONE_MAX, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.BUSINESS_ID ELSE C.BUSINESS_ID END AS BUSINESS_ID_DONATING, NULL AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATARICEZIONERICHIESTA ELSE C.DATARICEZIONERICHIESTA END AS DATA_RICEZIONE_RICHIESTA, A.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, NULL AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_3GG_OUT A,MNP.MNP_GEST_RICH_DONOR_VIRT B,MNP.MNP_GESTIONE_RICHIESTA C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.DONOR_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO = 'SLA2' AND A.RECIPIENT_RETE IN ('H3GI', 'WIND', 'OPIV', 'NOVA', 'TIMG') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.ID_RICHIESTA(+) ; INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.TIPO_CLIENTE ELSE C.TIPO_CLIENTE END AS TIPO_CLIENTE, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.NOME_OT ELSE C.NOME_OT END AS NOME_OT, A.MSISDN, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATA_VALIDAZIONE_MAX ELSE C.DATA_VALIDAZIONE_MAX END AS DATA_VALIDAZIONE_MAX, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.BUSINESS_ID ELSE C.BUSINESS_ID_DONATING END AS BUSINESS_ID_DONATING, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.BUSINESS_ID ELSE C.BUSINESS_ID_RECIPIENT END AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATARICEZIONERICHIESTA ELSE C.DATARICEZIONERICHIESTA END AS DATA_RICEZIONE_RICHIESTA, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN B.DATA_CUT_OVER ELSE C.DATA_CUT_OVER END AS DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, CASE WHEN RECIPIENT_EFFETTIVO='TIMG' THEN (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_DON_VIRT_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) ELSE (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_REC_VIRT_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) END AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_TC_OUT A,MNP.MNP_GEST_RICH_DONOR_VIRT B,MNP.MNP_GEST_RICH_REC_VIRT C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.DONOR_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO IN ('SLA X','SLA Y','SLA Z') AND A.RECIPIENT_EFFETTIVO IN ('TIMG','COOP', 'NOVE', 'TISC') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.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_DONOR_SLATC ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_DONOR_SLATC; procedure CARICAMENTO_RECIPIENT_SLA_TC(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_RECIPIENT_SLA_TC'; 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, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, B.TIPO_CLIENTE AS TIPO_CLIENTE, B.NOME_OT AS NOME_OT, A.MSISDN, B.DATA_VALIDAZIONE_MAX AS DATA_VALIDAZIONE_MAX, B.BUSINESS_ID_DONATING AS BUSINESS_ID_DONATING, B.BUSINESS_ID_RECIPIENT AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, B.DATARICEZIONERICHIESTA AS DATA_RICEZIONE_RICHIESTA, B.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, C.CREDITO AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_TC_OUT A,MNP.MNP_GEST_RICH_REC_VIRT B, MNP.MNP_GEST_RICH_REC_VIRT_TC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO IN ('SLA X','SLA Y','SLA Z') AND A.DONOR_EFFETTIVO IN('TIMG','COOP', 'NOVE', 'TISC') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA= C.ID_RICHIESTA(+); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, B.TIPO_CLIENTE AS TIPO_CLIENTE, B.NOME_OT AS NOME_OT, A.MSISDN, B.DATA_VALIDAZIONE_MAX AS DATA_VALIDAZIONE_MAX, B.BUSINESS_ID AS BUSINESS_ID_DONATING, B.BUSINESS_ID AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, B.DATARICEZIONERICHIESTA AS DATA_RICEZIONE_RICHIESTA, B.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, C.CREDITO AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_TC_OUT A,MNP.MNP_GESTIONE_RICHIESTA_REC B, MNP.MNP_GEST_RICH_REC_TC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO IN ('SLA X','SLA Y','SLA Z') AND A.DONOR_RETE IN('H3GI', 'WIND', 'OPIV', 'NOVA') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA= C.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_RECIPIENT_SLA_TC ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_RECIPIENT_SLA_TC; procedure CARICAMENTO_RECIPIENT_SLA_2(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_RECIPIENT_SLA_2'; 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, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, B.TIPO_CLIENTE AS TIPO_CLIENTE, B.NOME_OT AS NOME_OT, A.MSISDN, B.DATA_VALIDAZIONE_MAX AS DATA_VALIDAZIONE_MAX, B.BUSINESS_ID_DONATING AS BUSINESS_ID_DONATING, B.BUSINESS_ID_RECIPIENT AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, B.DATARICEZIONERICHIESTA AS DATA_RICEZIONE_RICHIESTA, A.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, C.CREDITO AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_3GG_OUT A,MNP.MNP_GEST_RICH_REC_VIRT B,MNP.MNP_GEST_RICH_REC_VIRT_TC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO IN ('SLA1','SLA2','SLA3') AND A.DONOR_EFFETTIVO IN ('TIMG','COOP', 'NOVE', 'TISC') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.ID_RICHIESTA(+); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, B.TIPO_CLIENTE AS TIPO_CLIENTE, B.NOME_OT AS NOME_OT, A.MSISDN, B.DATA_VALIDAZIONE_MAX AS DATA_VALIDAZIONE_MAX, B.BUSINESS_ID_DONATING AS BUSINESS_ID_DONATING, B.BUSINESS_ID_RECIPIENT AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, B.DATARICEZIONERICHIESTA AS DATA_RICEZIONE_RICHIESTA, B.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, C.CREDITO AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_TC_OUT A,MNP.MNP_GEST_RICH_REC_VIRT B,MNP.MNP_GEST_RICH_REC_VIRT_TC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.TIPO_MESSAGGIO = 'SLA X' AND A.DONOR_EFFETTIVO = 'TIMG' AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.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_RECIPIENT_SLA_2 ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_RECIPIENT_SLA_2; procedure CARICAMENTO_RECIPIENT_SLA_2AOM(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_RECIPIENT_SLA_2AOM'; 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, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.TIPO_CLIENTE ELSE C.TIPO_CLIENTE END AS TIPO_CLIENTE, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.NOME_OT ELSE C.NOME_OT END AS NOME_OT, A.MSISDN, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.DATA_VALIDAZIONE_MAX ELSE C.DATA_VALIDAZIONE_MAX END AS DATA_VALIDAZIONE_MAX, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.BUSINESS_ID_DONATING ELSE C.BUSINESS_ID END AS BUSINESS_ID_DONATING, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.BUSINESS_ID_RECIPIENT ELSE C.BUSINESS_ID END AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.DATARICEZIONERICHIESTA ELSE C.DATARICEZIONERICHIESTA END AS DATA_RICEZIONE_RICHIESTA, A.DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_REC_VIRT_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) ELSE (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_REC_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) END AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_3GG_OUT A,MNP.MNP_GEST_RICH_REC_VIRT B,MNP.MNP_GESTIONE_RICHIESTA_REC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.DONOR_RETE IN ('H3GI', 'WIND', 'OPIV', 'NOVA', 'TIMG') AND A.TIPO_MESSAGGIO IN( 'SLA1','SLA2','SLA3') AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.ID_RICHIESTA(+); INSERT INTO MNP_DW_SLA_SE_IN_OUT ( UNIQUE_ID, TIPO_SLA, PROCESSO, ID_RICHIESTA, MESE, DON_EFF, REC_EFF, REC_RETE, DON_RETE, TIPO_CLIENTE, NOME_OT, MSISDN, DATA_VALIDAZIONE_MAX, BUSINESS_ID_DONATING, BUSINESS_ID_RECIPIENT, DATA_ESPL_DON, DATA_RICEZIONE_RICHIESTA, DATA_CUT_OVER, DATA_ESPL_TP, DATA_ESPL_MSS, DATA_ESPL_GISP, DESCR_STATO, CREDITO, DATA_NOTIF_RECIPIENT, CAUSALE_RIF) SELECT SEQ_DW_SLA_SE_IN_OUT.NEXTVAL AS UNIQUE_ID, A.TIPO_MESSAGGIO AS TIPO_SLA, A.PROCESSO, A.ID_RICHIESTA, A.MESE_COMP_FINALE AS MESE, A.DONOR_EFFETTIVO AS DON_EFF, A.RECIPIENT_EFFETTIVO AS REC_EFF, A.RECIPIENT_RETE AS REC_RETE, A.DONOR_RETE AS DON_RETE, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.TIPO_CLIENTE ELSE C.TIPO_CLIENTE END AS TIPO_CLIENTE, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.NOME_OT ELSE C.NOME_OT END AS NOME_OT, A.MSISDN, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.DATA_VALIDAZIONE_MAX ELSE C.DATA_VALIDAZIONE_MAX END AS DATA_VALIDAZIONE_MAX, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.BUSINESS_ID_DONATING ELSE C.BUSINESS_ID END AS BUSINESS_ID_DONATING, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.BUSINESS_ID_RECIPIENT ELSE C.BUSINESS_ID END AS BUSINESS_ID_RECIPIENT, NULL AS DATA_ESPL_DON, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.DATARICEZIONERICHIESTA ELSE C.DATARICEZIONERICHIESTA END AS DATA_RICEZIONE_RICHIESTA, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN B.DATA_CUT_OVER ELSE C.DATA_CUT_OVER END AS DATA_CUT_OVER, NULL AS DATA_ESPL_TP, NULL AS DATA_ESPL_MSS, NULL AS DATA_ESPL_GISP, NULL AS DESCR_STATO, CASE WHEN DONOR_EFFETTIVO='TIMG' THEN (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_REC_VIRT_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) ELSE (SELECT Z.CREDITO FROM MNP.MNP_GEST_RICH_REC_TC Z WHERE Z.ID_RICHIESTA=A.ID_RICHIESTA) END AS CREDITO, NULL AS DATA_NOTIF_RECIPIENT, NULL AS CAUSALE_RIF FROM MNP_DW_SLA_TC_OUT A,MNP.MNP_GEST_RICH_REC_VIRT B,MNP.MNP_GESTIONE_RICHIESTA_REC C WHERE A.MESE_COMP_FINALE= TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy') AND A.RECIPIENT_EFFETTIVO IN ('COOP', 'NOVE', 'TISC') AND A.DONOR_RETE IN ('H3GI', 'WIND', 'OPIV', 'NOVA', 'TIMG') AND A.TIPO_MESSAGGIO = 'SLA X' AND A.ID_RICHIESTA= B.ID_RICHIESTA(+) AND A.ID_RICHIESTA=C.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_RECIPIENT_SLA_2AOM ' || SQLERRM||' - '||to_char(sysdate,'YYYY-MM-DD HH24:MI:SS')); RETURN; END CARICAMENTO_RECIPIENT_SLA_2AOM; procedure CARICAMENTO_SLA_SE(dataRif IN Date) IS cod_errore NUMBER (1); err_donor_sla1 NUMBER (1):=0; err_donor_slatc NUMBER (1):=0; err_recipient_sla_tc NUMBER (1):=0; err_recipient_sla_2 NUMBER (1):=0; err_recipient_sla_2_aom 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 MESE =TO_CHAR(ADD_MONTHS(dataRif,-1),'mm/yyyy'); cod_errore := 0; -- caricamento dati: CARICAMENTO_DONOR_SLA1 (dataRif,err_donor_sla1); CARICAMENTO_DONOR_SLATC (dataRif,err_donor_slatc); CARICAMENTO_RECIPIENT_SLA_TC (dataRif,err_recipient_sla_tc); CARICAMENTO_RECIPIENT_SLA_2 (dataRif,err_recipient_sla_2); CARICAMENTO_RECIPIENT_SLA_2AOM(dataRif,err_recipient_sla_2_aom); cod_errore := err_donor_sla1 + err_donor_slatc+err_recipient_sla_tc +err_recipient_sla_2+err_recipient_sla_2_aom; 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; /