diff --git a/HCAS/HCAS.sql b/HCAS/HCAS.sql index f93a00aac..36319506f 100644 --- a/HCAS/HCAS.sql +++ b/HCAS/HCAS.sql @@ -298,20 +298,23 @@ AS --Onderstaande cursor verzamelt de gegevens om te bepalen welke meldingen nieuwe opmerkingen hebben en die verzonden kunnen worden naar Servicenow CURSOR sync IS - SELECT mld_melding_key, + SELECT mld_melding_key, + mld_opdr_key, mld_ins_discipline_key, mld_melding_note_aanmaak, fac.safe_to_number ( - TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss')) + TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss')) AS note, sync, sync_key FROM ( SELECT mld_melding_key, + mld_opdr_key, mld_ins_discipline_key, MAX (mld_melding_note_aanmaak) AS mld_melding_note_aanmaak, sync, sync_key FROM (SELECT mld.mld_melding_key, + o.mld_opdr_key, sm.mld_ins_discipline_key, fac_bijlagen_aanmaak AS mld_melding_note_aanmaak, (SELECT fac.safe_to_number ( @@ -333,17 +336,20 @@ AS AND km.mld_kenmerk_key = sync.mld_kenmerk_key AND km.mld_srtkenmerk_key = 541) -- Kenmerksoort 'Sync_'Servicenow' (tbv synchronisatie van opmerkingen naar Servicenow) AS sync_key - FROM mld_melding mld, mld_stdmelding sm, fac_bijlagen att + FROM mld_melding mld, mld_stdmelding sm, fac_bijlagen att, mld_opdr o WHERE sm.mld_stdmelding_key = mld.mld_stdmelding_key AND sm.mld_ins_discipline_key IN (321, 341, 401) -- Enkel voor de vakgroepen die met servicenow gekoppeld worden. AND mld.mld_melding_status IN (2, 3, 4, 7) AND att.fac_bijlagen_refkey = mld.mld_melding_key AND att.fac_bijlagen_module = 'MLD' --Enkel bijlage-kenmerken van meldingen (niet opdrachten) - AND att.fac_bijlagen_kenmerk_key NOT IN + AND att.fac_bijlagen_kenmerk_key NOT IN (SELECT mld_kenmerk_key FROM mld_kenmerk WHERE mld_kenmerk_niveau IN ('O', 'P')) --Kenmerk gekoppeld aan Opdrachtype (O) of alle Opdrachttypen (P) AND att.fac_bijlagen_verwijder IS NULL + AND o.mld_melding_key = mld.mld_melding_key + AND o.mld_uitvoerende_keys = 4623 + AND o.mld_opdr_verzonden IS NOT NULL AND ( (SELECT fac.safe_to_date ( sync.mld_kenmerkmelding_waarde, 'yyyymmddhh24miss') FROM mld_kenmerkmelding sync, @@ -358,6 +364,7 @@ AS fac_bijlagen_aanmaak) UNION ALL SELECT mld.mld_melding_key, + o.mld_opdr_key, sm.mld_ins_discipline_key, mn.mld_melding_note_aanmaak, (SELECT fac.safe_to_number ( @@ -391,6 +398,7 @@ AS AND mld.mld_melding_key = o.mld_melding_key -- Enkel SyncServicenow bijwerken indien er ook een opdracht is. AND sm.mld_ins_discipline_key IN (321, 341, 401) -- Enkel voor de vakgroepen die met servicenow gekoppeld worden. AND mld.mld_melding_status IN (2, 3, 4, 7) + AND o.mld_uitvoerende_keys = 4623 AND o.mld_opdr_verzonden IS NOT NULL AND ( (SELECT fac.safe_to_date ( sync.mld_kenmerkmelding_waarde, 'yyyymmddhh24miss') @@ -415,9 +423,9 @@ AS mld.mld_melding_key AND km.mld_kenmerk_key = sync.mld_kenmerk_key - AND km.mld_srtkenmerk_key = 541) IS NULL)) - ORDER BY mld_melding_key, mld_melding_note_aanmaak ASC) + AND km.mld_srtkenmerk_key = 541) IS NULL))) GROUP BY mld_melding_key, + mld_opdr_key, mld_ins_discipline_key, sync, sync_key); @@ -527,8 +535,9 @@ BEGIN -- Eerst zetten we de opdracht opnieuw klaar om te verzenden UPDATE mld_opdr SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL - WHERE mld_melding_key = rec.mld_melding_key - AND mld_opdr.mld_uitvoerende_keys = 4623; -- Alle opdrachten aan KPN die gekoppeld zijn aan deze melding (doorgaans maar 1 per melding) + WHERE mld_opdr.mld_opdr_key = rec.mld_opdr_key + AND mld_opdr.mld_uitvoerende_keys = 4623 -- Alle opdrachten aan KPN die gekoppeld zijn aan deze melding (doorgaans maar 1 per melding) + AND mld_opdr.mld_opdr_verzonden IS NOT NULL; v_errorhint := 'Syncdatum bijwerken voor melding ' || rec.mld_melding_key;