From b71ffdf7dc3cb5dd1304a37d68958ee4e809f65b Mon Sep 17 00:00:00 2001 From: Suzan Wiegerinck Date: Sun, 25 Apr 2021 13:20:52 +0000 Subject: [PATCH] PNBR#65979: Notificatie monitoring koppeling Topdesk svn path=/Customer/trunk/; revision=51081 --- PNBR/pnbr.sql | 317 ++++++++++++++++++++------------------------------ 1 file changed, 127 insertions(+), 190 deletions(-) diff --git a/PNBR/pnbr.sql b/PNBR/pnbr.sql index a355a7e21..c66c1a30c 100644 --- a/PNBR/pnbr.sql +++ b/PNBR/pnbr.sql @@ -7961,7 +7961,8 @@ AS AND o.mld_statusopdr_key NOT IN (1, 2, 6, - 7) + 7, + 9) AND ( m.mld_melding_externnr IS NULL OR m.mld_melding_externnr <> SUBSTR ( @@ -8032,7 +8033,7 @@ AS AND m.prs_perslid_key = pr.prs_perslid_key AND syncdate.mld_melding_key(+) = m.mld_melding_key AND km.mld_stdmelding_key = sm.mld_ins_discipline_key --- let op: kenmerk zit gekoppeld op discipline niveau - AND m.mld_melding_status NOT IN (1, 5, 6) + AND m.mld_melding_status NOT IN (1, 2, 6, 7, 9) AND km.mld_srtkenmerk_key = 9083 AND ( fac.safe_to_number ( TO_CHAR (mld_melding_note_aanmaak, @@ -8156,7 +8157,7 @@ BEGIN FOR rec IN externnr LOOP BEGIN - v_aanduiding := 'Extern nr voor melding: ' || rec.mld_melding_key; + v_aanduiding := 'Topdesknr zetten bij melding: ' || rec.mld_melding_key; v_errorhint := 'Melding vullen met externnr voor melding ' || rec.mld_melding_key; @@ -8175,11 +8176,13 @@ BEGIN THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - fac.writelog ( - p_applname, - 'E', - v_aanduiding || oracle_err_num || '/' || oracle_err_mes, - v_errorhint); + + -- aanmaken mldtrk in fac_tracking + INSERT INTO fac_tracking (fac_srtnotificatie_key, + fac_tracking_refkey, + fac_tracking_oms) + VALUES (655, rec.mld_melding_key, v_aanduiding || '/' ||oracle_err_num || ': ' || oracle_err_mes); + END; END LOOP; @@ -8187,7 +8190,7 @@ BEGIN FOR rec IN actie_cust LOOP BEGIN - v_aanduiding := 'Actie cust melding: ' || rec.mld_melding_key; + v_aanduiding := 'Topdesk actie naar aanvr mld: ' || rec.mld_melding_key; SELECT COALESCE (mld_kenmerkopdr_waarde, 'Wacht op klant') INTO v_status_ogd @@ -8202,6 +8205,7 @@ BEGIN AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND o.mld_opdr_key = ko.mld_opdr_key AND sk.mld_srtkenmerk_key = 9081 + AND o.mld_statusopdr_key IN (5, 8) AND ko.mld_kenmerkopdr_verwijder IS NULL) status, mld_melding m WHERE m.mld_melding_key = status.mld_melding_key(+) @@ -8310,15 +8314,13 @@ BEGIN THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - fac.writelog ( - p_applname, - 'E', - v_aanduiding - || '-' - || oracle_err_num - || '/' - || oracle_err_mes, - v_errorhint); + + -- aanmaken mldtrk in fac_tracking + INSERT INTO fac_tracking (fac_srtnotificatie_key, + fac_tracking_refkey, + fac_tracking_oms) + VALUES (655, rec.mld_melding_key, v_aanduiding || '/' ||oracle_err_num || ': ' || oracle_err_mes); + END; END LOOP; @@ -8326,7 +8328,7 @@ BEGIN LOOP BEGIN -- Eerst verzamelen we alle nieuwe notities en zetten deze klaar in een kenmerk voor verzending - v_aanduiding := 'Note naar OGD melding: ' || rec.mld_melding_key; + v_aanduiding := 'Note naar Topdesk voor melding: ' || rec.mld_melding_key; v_errorhint := 'Notities verzamelen voor verzending ' || rec.mld_melding_key; @@ -8351,7 +8353,7 @@ BEGIN rec.notitie); v_errorhint := - 'Opdracht opnieuw te verzenden voor melding ' + 'Opdracht opnieuw te verzenden naar Topdesk voor melding: ' || rec.mld_melding_key; -- Eerst zetten we de opdracht opnieuw klaar om te verzenden @@ -8360,7 +8362,7 @@ BEGIN WHERE o.mld_opdr_key = rec.mld_opdr_key; v_errorhint := - 'Syncdatum bijwerken voor melding ' || rec.mld_melding_key; + 'Syncdatum Topdesk bijwerken voor melding ' || rec.mld_melding_key; -- Als er nog niet eerder gesynchroniseerd is maken we een kenmerk aan met de syncdatum -- Als al eerder gesynchroniseerd is werken we de syncdatum bij @@ -8437,7 +8439,7 @@ BEGIN mld_srtkenmerk sk WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_key = 9081 + AND sk.mld_srtkenmerk_key = 9081 AND ko.mld_kenmerkopdr_verwijder IS NULL) status_ogd WHERE o.mld_typeopdr_key = k.mld_typeopdr_key @@ -8445,6 +8447,7 @@ BEGIN AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND o.mld_melding_key = m.mld_melding_key AND status_ogd.mld_opdr_key(+) = o.mld_opdr_key + AND o.mld_statusopdr_key IN (5, 8) AND o.mld_opdr_key = rec.mld_opdr_key; mld.upsertopdrachtkenmerk (v_status_ogd_key, @@ -8457,15 +8460,13 @@ BEGIN THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - fac.writelog ( - p_applname, - 'E', - v_aanduiding - || '-' - || oracle_err_num - || '/' - || oracle_err_mes, - v_errorhint); + + -- aanmaken ordtrk in fac_tracking + INSERT INTO fac_tracking (fac_srtnotificatie_key, + fac_tracking_refkey, + fac_tracking_oms) + VALUES (658, rec.mld_opdr_key, v_aanduiding || '/' ||oracle_err_num || ': ' || oracle_err_mes); + END; END LOOP; @@ -8475,6 +8476,7 @@ EXCEPTION THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); + fac.writelog (p_applname, 'E', oracle_err_num || '/' || oracle_err_mes, @@ -8671,174 +8673,109 @@ AS '10' -- Over kwartaal 3 ); ---- Monitoring Topdesk koppeling Als de afgelopen 5 minuten een fout in het ---- verwerken van berichten is geconstateerd moet er genotificeerd worden -CREATE OR REPLACE VIEW PNBR_V_NOTI_OGD -( - SOORT, - KEY, - TOPDESKNR, - MELDINGNR, - OPDR_NR, - TRACKING_DATUM, - TRACKING_OMS, - HINT, - RESPONSE -) -AS -SELECT 'Tracking', - tracking_key, - topdesknr, - meldingnr, - opdr_nr, - tracking_datum, - tracking_oms, - hint, - response - FROM (SELECT m.mld_melding_externnr - topdesknr, - TO_CHAR (m.mld_melding_key) - meldingnr, - m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr - opdr_nr, - t.fac_tracking_key - tracking_key, - t.fac_tracking_datum - tracking_datum, - t.fac_tracking_oms - tracking_oms, - '' - hint, - CASE - WHEN UPPER (t.fac_tracking_oms) LIKE - '%CREATING CHANGE TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 34)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%CREATING INCIDENT TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 36)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%UPDATING CHANGE TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 34)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%UPDATING INCIDENT TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 36)) - END - response - FROM fac_tracking t, mld_opdr o, mld_melding m - WHERE t.fac_tracking_refkey = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND ( UPPER (fac_tracking_oms) LIKE - '%CREATING CHANGE TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%CREATING INCIDENT TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%UPDATING CHANGE TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%UPDATING INCIDENT TOPDESK%')) - WHERE response >= 400 - AND ROUND ((SYSDATE - tracking_datum) * 1440) <= 5 -UNION ALL -SELECT 'imp_log', - l.imp_log_key, - '', - '', - '', - l.imp_log_datum tracking_datum, - l.imp_log_omschrijving, - l.imp_log_hint, - 0 - FROM imp_log l - WHERE imp_log_applicatie = 'TOPDESK' - AND ROUND ((SYSDATE - l.imp_log_datum) * 1440) <= 5; - --- De foutieve berichten kunnen op 2 plaatsen staan: in de tracking tabel of in de imp_log --- Dit rapport toont alle fouten van vandaag +-- Dit rapport toont alle fouten van vandaag die in de tracking tabel zijn gelogd CREATE OR REPLACE VIEW PNBR_V_RAP_TOPDESK_LOG ( - SOORT, - KEY, - TOPDESKNR, + TRACKING_KEY, MELDINGNR, OPDR_NR, TRACKING_DATUM, TRACKING_OMS, - HINT, - RESPONSE + RESPONSE, + AANTAL_X ) AS -SELECT 'Tracking', - tracking_key, - topdesknr, - meldingnr, - opdr_nr, - tracking_datum, - tracking_oms, - hint, - response - FROM (SELECT m.mld_melding_externnr - topdesknr, - TO_CHAR (m.mld_melding_key) - meldingnr, - m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr - opdr_nr, - t.fac_tracking_key - tracking_key, - t.fac_tracking_datum - tracking_datum, - t.fac_tracking_oms - tracking_oms, - '' - hint, - CASE - WHEN UPPER (t.fac_tracking_oms) LIKE - '%CREATING CHANGE TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 34)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%CREATING INCIDENT TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 36)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%UPDATING CHANGE TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 34)) - WHEN UPPER (t.fac_tracking_oms) LIKE - '%UPDATING INCIDENT TOPDESK%' - THEN - fac.safe_to_number (SUBSTR (t.fac_tracking_oms, 36)) - END - response - FROM fac_tracking t, mld_opdr o, mld_melding m - WHERE t.fac_tracking_refkey = o.mld_opdr_key - AND o.mld_melding_key = m.mld_melding_key - AND ( UPPER (fac_tracking_oms) LIKE - '%CREATING CHANGE TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%CREATING INCIDENT TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%UPDATING CHANGE TOPDESK%' - OR UPPER (fac_tracking_oms) LIKE - '%UPDATING INCIDENT TOPDESK%')) - WHERE response >= 400 - AND TRUNC(SYSDATE) = TRUNC(tracking_datum) -UNION ALL -SELECT 'imp_log', - l.imp_log_key, - '', - '', - '', - l.imp_log_datum tracking_datum, - l.imp_log_omschrijving, - l.imp_log_hint, - 0 - FROM imp_log l - WHERE imp_log_applicatie = 'TOPDESK' - AND TRUNC(SYSDATE) = TRUNC(l.imp_log_datum); + SELECT tracking_key, + meldingnr, + opdr_nr, + tracking_datum, + tracking_oms, + response, + RANK () OVER (PARTITION BY meldingnr ORDER BY tracking_key) aantal_x + FROM (SELECT m.mld_melding_externnr + topdesknr, + TO_CHAR (m.mld_melding_key) + meldingnr, + m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr + opdr_nr, + t.fac_tracking_key + tracking_key, + t.fac_tracking_datum + tracking_datum, + t.fac_tracking_oms + tracking_oms, + CASE + WHEN UPPER (t.fac_tracking_oms) LIKE + '%CREATING CHANGE TOPDESK%' + THEN + fac.safe_to_number ( + SUBSTR (t.fac_tracking_oms, 34)) + WHEN UPPER (t.fac_tracking_oms) LIKE + '%CREATING INCIDENT TOPDESK%' + THEN + fac.safe_to_number ( + SUBSTR (t.fac_tracking_oms, 36)) + WHEN UPPER (t.fac_tracking_oms) LIKE + '%UPDATING CHANGE TOPDESK%' + THEN + fac.safe_to_number ( + SUBSTR (t.fac_tracking_oms, 34)) + WHEN UPPER (t.fac_tracking_oms) LIKE + '%UPDATING INCIDENT TOPDESK%' + THEN + fac.safe_to_number ( + SUBSTR (t.fac_tracking_oms, 36)) + END + response + FROM fac_tracking t, mld_opdr o, mld_melding m + WHERE t.fac_tracking_refkey = o.mld_opdr_key + AND o.mld_melding_key = m.mld_melding_key + AND ( UPPER (fac_tracking_oms) LIKE + '%CREATING CHANGE TOPDESK%' + OR UPPER (fac_tracking_oms) LIKE + '%CREATING INCIDENT TOPDESK%' + OR UPPER (fac_tracking_oms) LIKE + '%UPDATING CHANGE TOPDESK%' + OR UPPER (fac_tracking_oms) LIKE + '%UPDATING INCIDENT TOPDESK%') + UNION ALL + SELECT m.mld_melding_externnr + topdesknr, + TO_CHAR (m.mld_melding_key) + meldingnr, + m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr + opdr_nr, + t.fac_tracking_key + tracking_key, + t.fac_tracking_datum + tracking_datum, + t.fac_tracking_oms + tracking_oms, + 999 + response + FROM fac_tracking t, mld_opdr o, mld_melding m + WHERE t.fac_tracking_refkey = o.mld_opdr_key + AND o.mld_melding_key = m.mld_melding_key + AND UPPER (fac_tracking_oms) LIKE '%TOPDESK%' + AND t.fac_srtnotificatie_key IN (655, 658)) + WHERE response >= 400 AND TRUNC (SYSDATE) = TRUNC (tracking_datum) + GROUP BY tracking_key, + meldingnr, + opdr_nr, + tracking_datum, + tracking_oms, + response + ORDER BY meldingnr, tracking_datum DESC; +--- Monitoring Topdesk koppeling Als de afgelopen 5 minuten een fout in het +--- verwerken van berichten is geconstateerd moet er genotificeerd worden +--- We notificeren alleen de 1e keer per dag +CREATE OR REPLACE VIEW PNBR_V_NOTI_OGD +AS + SELECT * + FROM pnbr_v_rap_topdesk_log + WHERE ROUND ((SYSDATE - tracking_datum) * 1440) <= 5 AND aantal_x < 2; + --- als er iets in de tracking of logging staat notificeren we zsm OGD CREATE OR REPLACE PROCEDURE pnbr_export_noti_ogd (p_applname IN VARCHAR2, p_applrun IN VARCHAR2,