HCAS#88613 Dubbele verzending opdrachten naar Servicenow via email koppeling

Nu betere controle in de update dat een opdracht niet direct opnieuw verzonden wordt als deze nog in de wachtrij staat. Bovendien een betere bepaling op unieke opdracht (mocht er eens een melding zijn met meerdere opdrachten).

svn path=/Customer/trunk/; revision=70993
This commit is contained in:
Sander Schepers
2025-11-18 22:56:20 +00:00
parent ce5cf0b602
commit 3a6e9ae88c

View File

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