Files
gateway-mnp-dbc/dbcmnpsrc/FE/mnpapp/script/pkg/dwh/pkgPopolaSlaSE.sql
2024-05-13 12:54:14 +02:00

938 lines
27 KiB
MySQL

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;
/