PNBR#74635 Berichten naar Topdesk met > 4000 karakters
svn path=/Customer/trunk/; revision=57623
This commit is contained in:
324
PNBR/pnbr.sql
324
PNBR/pnbr.sql
@@ -8579,111 +8579,211 @@ AS
|
||||
-- Onderstaande cursor verzamelt de gegevens om te bepalen welke meldingen nieuwe opmerkingen heeft en die verzonden kunnen worden naar Topdesk
|
||||
-- Alle notities bij een melding die niet al eerder zijn verstuurd en niet door OGD zijn gemaakt mogen verstuurd worden
|
||||
CURSOR sync IS
|
||||
SELECT mld_melding_key,
|
||||
mld_opdr_key,
|
||||
mld_ins_discipline_key,
|
||||
notitie,
|
||||
mld_melding_note_aanmaak,
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss'))
|
||||
AS note,
|
||||
sync,
|
||||
sync_key
|
||||
FROM ( SELECT mld.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
sm.mld_ins_discipline_key,
|
||||
LISTAGG (
|
||||
prs.prs_perslid_naam_friendly
|
||||
|| '/'
|
||||
|| mn.mld_melding_note_aanmaak
|
||||
|| ' '
|
||||
|| mn.mld_melding_note_omschrijving,
|
||||
'; ')
|
||||
WITHIN GROUP (ORDER BY mld.mld_melding_key)
|
||||
notitie,
|
||||
MAX (mn.mld_melding_note_aanmaak)
|
||||
mld_melding_note_aanmaak,
|
||||
(SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
AS sync,
|
||||
(SELECT sync.mld_kenmerkmelding_key
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
AS sync_key
|
||||
FROM mld_melding mld,
|
||||
mld_melding_note mn,
|
||||
mld_stdmelding sm,
|
||||
mld_opdr o,
|
||||
prs_v_perslid_fullnames_all prs
|
||||
WHERE mn.mld_melding_key = mld.mld_melding_key
|
||||
AND sm.mld_stdmelding_key = mld.mld_stdmelding_key
|
||||
AND mn.prs_perslid_key = prs.prs_perslid_key
|
||||
AND mn.prs_perslid_key <> 60449 --- we gaan de notities van API user OGD niet naar hen terug sturen
|
||||
AND mld.mld_melding_key = o.mld_melding_key -- Enkel Sync_OGD bijwerken indien er ook een opdracht is.
|
||||
AND o.mld_uitvoerende_keys = 59728 -- We doen dit alleen voor opdrachten die bij OGD liggen
|
||||
AND o.mld_statusopdr_key IN (5, 8)
|
||||
AND fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak,
|
||||
'yyyymmddhh24miss')) >
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (o.mld_opdr_datumbegin,
|
||||
'yyyymmddhh24miss'))
|
||||
AND ( (SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key =
|
||||
sync.mld_melding_key
|
||||
AND m.mld_melding_key =
|
||||
mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key =
|
||||
sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083) <
|
||||
fac.safe_to_number (
|
||||
SELECT n.mld_melding_key,
|
||||
n.mld_opdr_key,
|
||||
n.mld_ins_discipline_key,
|
||||
n.notitie,
|
||||
n.mld_melding_note_aanmaak,
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (n.mld_melding_note_aanmaak, 'yyyymmddhh24miss'))
|
||||
AS note,
|
||||
n.sync,
|
||||
n.sync_key
|
||||
FROM ( SELECT mld.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
sm.mld_ins_discipline_key,
|
||||
LISTAGG (
|
||||
prs.prs_perslid_naam_friendly
|
||||
|| '/'
|
||||
|| mn.mld_melding_note_aanmaak
|
||||
|| ' '
|
||||
|| mn.mld_melding_note_omschrijving,
|
||||
'; ')
|
||||
WITHIN GROUP (ORDER BY mld.mld_melding_key)
|
||||
notitie,
|
||||
MAX (mn.mld_melding_note_aanmaak)
|
||||
mld_melding_note_aanmaak,
|
||||
(SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
AS sync,
|
||||
(SELECT sync.mld_kenmerkmelding_key
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
AS sync_key
|
||||
FROM mld_melding mld,
|
||||
mld_melding_note mn,
|
||||
mld_stdmelding sm,
|
||||
mld_opdr o,
|
||||
prs_v_perslid_fullnames_all prs
|
||||
WHERE mn.mld_melding_key = mld.mld_melding_key
|
||||
AND sm.mld_stdmelding_key = mld.mld_stdmelding_key
|
||||
AND mn.prs_perslid_key = prs.prs_perslid_key
|
||||
AND mn.prs_perslid_key <> 60449 --- we gaan de notities van API user OGD niet naar hen terug sturen
|
||||
AND mld.mld_melding_key = o.mld_melding_key -- Enkel Sync_OGD bijwerken indien er ook een opdracht is.
|
||||
AND o.mld_uitvoerende_keys = 59728 -- We doen dit alleen voor opdrachten die bij OGD liggen
|
||||
AND o.mld_statusopdr_key IN (5, 8)
|
||||
AND fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak,
|
||||
'yyyymmddhh24miss')) >
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (o.mld_opdr_datumbegin,
|
||||
'yyyymmddhh24miss'))
|
||||
OR ((SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key =
|
||||
sync.mld_melding_key
|
||||
AND m.mld_melding_key =
|
||||
mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key =
|
||||
sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
IS NULL))
|
||||
GROUP BY mld.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
sm.mld_ins_discipline_key
|
||||
ORDER BY mld_melding_key, mld_melding_note_aanmaak DESC);
|
||||
AND ( (SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key =
|
||||
sync.mld_melding_key
|
||||
AND m.mld_melding_key =
|
||||
mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key =
|
||||
sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083) <
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak,
|
||||
'yyyymmddhh24miss'))
|
||||
OR ((SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key =
|
||||
sync.mld_melding_key
|
||||
AND m.mld_melding_key =
|
||||
mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key =
|
||||
sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
IS NULL))
|
||||
GROUP BY mld.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
sm.mld_ins_discipline_key
|
||||
ORDER BY mld_melding_key, mld_melding_note_aanmaak DESC) n,
|
||||
(SELECT mld_melding_key, aant_char FROM (SELECT mld.mld_melding_key,
|
||||
SUM (LENGTH (mn.mld_melding_note_omschrijving)) aant_char
|
||||
FROM mld_melding mld,
|
||||
mld_melding_note mn,
|
||||
mld_stdmelding sm,
|
||||
mld_opdr o,
|
||||
prs_v_perslid_fullnames_all prs
|
||||
WHERE mn.mld_melding_key = mld.mld_melding_key
|
||||
AND sm.mld_stdmelding_key = mld.mld_stdmelding_key
|
||||
AND mn.prs_perslid_key = prs.prs_perslid_key
|
||||
AND mn.prs_perslid_key <> 60449 --- we gaan de notities van API user OGD niet naar hen terug sturen
|
||||
AND mld.mld_melding_key = o.mld_melding_key -- Enkel Sync_OGD bijwerken indien er ook een opdracht is.
|
||||
AND o.mld_uitvoerende_keys = 59728 -- We doen dit alleen voor opdrachten die bij OGD liggen
|
||||
AND o.mld_statusopdr_key IN (5, 8)
|
||||
AND fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss')) >
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyymmddhh24miss'))
|
||||
AND ( (SELECT fac.safe_to_number (sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083) <
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss'))
|
||||
OR ((SELECT fac.safe_to_number (sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
IS NULL))
|
||||
GROUP BY mld.mld_melding_key)
|
||||
WHERE aant_char < 4000) t
|
||||
where t.mld_melding_key = n.mld_melding_key;
|
||||
|
||||
--- meldingen waarbij het totaal te versturen notities de 4000 karakters overschrijdt
|
||||
--- deze zetten we in de tracking zodat functioneel beheer genotificeerd wordt
|
||||
--- en zo waarschuwen dat de notitie velden opgeschoond moeten worden
|
||||
CURSOR large IS
|
||||
SELECT mld_melding_key, mld_opdr_key, aant_char
|
||||
FROM ( SELECT mld.mld_melding_key,
|
||||
o.mld_opdr_key,
|
||||
SUM (LENGTH (mn.mld_melding_note_omschrijving)) aant_char
|
||||
FROM mld_melding mld,
|
||||
mld_melding_note mn,
|
||||
mld_stdmelding sm,
|
||||
mld_opdr o,
|
||||
prs_v_perslid_fullnames_all prs
|
||||
WHERE mn.mld_melding_key = mld.mld_melding_key
|
||||
AND sm.mld_stdmelding_key = mld.mld_stdmelding_key
|
||||
AND mn.prs_perslid_key = prs.prs_perslid_key
|
||||
AND mn.prs_perslid_key <> 60449 --- we gaan de notities van API user OGD niet naar hen terug sturen
|
||||
AND mld.mld_melding_key = o.mld_melding_key -- Enkel Sync_OGD bijwerken indien er ook een opdracht is.
|
||||
AND o.mld_uitvoerende_keys = 59728 -- We doen dit alleen voor opdrachten die bij OGD liggen
|
||||
AND o.mld_statusopdr_key IN (5, 8)
|
||||
AND fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak, 'yyyymmddhh24miss')) >
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (o.mld_opdr_datumbegin, 'yyyymmddhh24miss'))
|
||||
AND ( (SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083) <
|
||||
fac.safe_to_number (
|
||||
TO_CHAR (mld_melding_note_aanmaak,
|
||||
'yyyymmddhh24miss'))
|
||||
OR ((SELECT fac.safe_to_number (
|
||||
sync.mld_kenmerkmelding_waarde)
|
||||
FROM mld_kenmerkmelding sync,
|
||||
mld_kenmerk km,
|
||||
mld_srtkenmerk skm,
|
||||
mld_melding m
|
||||
WHERE m.mld_melding_key = sync.mld_melding_key
|
||||
AND m.mld_melding_key = mld.mld_melding_key
|
||||
AND km.mld_kenmerk_key = sync.mld_kenmerk_key
|
||||
AND skm.mld_srtkenmerk_key =
|
||||
km.mld_srtkenmerk_key
|
||||
AND skm.mld_srtkenmerk_key = 9083)
|
||||
IS NULL))
|
||||
GROUP BY mld.mld_melding_key, o.mld_opdr_key)
|
||||
WHERE aant_char > 4000;
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'init';
|
||||
v_lengte := 0;
|
||||
@@ -9027,6 +9127,24 @@ BEGIN
|
||||
|| oracle_err_mes);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
FOR rec IN large
|
||||
LOOP
|
||||
BEGIN
|
||||
--
|
||||
v_aanduiding :=
|
||||
'Notities bij melding ' || rec.mld_melding_key || ' te groot voor export naar Topdesk.';
|
||||
|
||||
-- aanmaken mldtrk in fac_tracking
|
||||
INSERT INTO fac_tracking (fac_srtnotificatie_key,
|
||||
fac_tracking_refkey,
|
||||
fac_tracking_oms)
|
||||
VALUES (
|
||||
658,
|
||||
rec.mld_opdr_key,
|
||||
v_aanduiding);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
|
||||
Reference in New Issue
Block a user