MAAS#61281 Valuemation Maasdelta, verbeterde logging en automatische updates versturen

svn path=/Customer/trunk/; revision=51144
This commit is contained in:
Sander Schepers
2021-04-29 08:19:39 +00:00
parent 14f93d98ee
commit 53712c53d0

View File

@@ -390,8 +390,7 @@ BEGIN
THEN
v_actie := 'ORDGOE';
v_kenmstatusoms :=
'Oplossing is aangereikt, bij akkoord kan de opdracht door u afgemeld worden via de link in Facilitor. Bij geen akkoord, dit graag aangeven via de portal van Valuemation.'
;
'Oplossing is aangereikt, bij akkoord kan de opdracht door u afgemeld worden via de link in Facilitor. Bij geen akkoord, dit graag aangeven via de portal van Valuemation.';
WHEN UPPER (SUBSTR (psubject, LENGTH (psubject) - 12, 13)) LIKE
'%ACCORDERING%'
THEN
@@ -421,12 +420,12 @@ BEGIN
--Als de actie niet bepaald kan worden obv het onderwerp van de mail uit Valuemation, dan doen we niets met de mail.
IF v_actie = NULL
THEN
v_errormsg := '(0x360)' || v_mldkey || psubject;
v_errormsg := '(0x361)' || v_mldkey || psubject;
fac.writelog (
'PROCESSEMAIL',
'E',
'Mail kon niet ingelezen worden afzender:'
'Onbekende actie, mail van: '
|| pfrom
|| '['
|| v_errormsg
@@ -807,20 +806,21 @@ BEGIN
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
END IF;
ELSE
fac.writelog (
'PROCESSEMAIL',
'E',
'Melding kan niet bijgewerkt worden, onbekende opdrachtkey'
|| pfrom
|| '['
|| v_errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
-- ELSE
-- HIER TOCH GEEN LOGGING, ACTIE MAG ANDERS ZIJN DAN ORDUPD. DIT CREEERT TEVEEL ONNODIGE LOGGING.
-- fac.writelog (
-- 'PROCESSEMAIL',
-- 'E',
-- 'Melding kan niet bijgewerkt worden, onbekende opdrachtkey'
-- || pfrom
-- || '['
-- || v_errormsg
-- || ']',
-- 'OTHERS (error '
-- || SQLCODE
-- || '/'
-- || SUBSTR (SQLERRM, 1, 100)
-- || ')');
END IF;
--Hieronder de afhandeling van het bericht wanneer de melding vanuit Valuemation ter goedkeuring in Facilitor wordt aangeboden.
@@ -1037,20 +1037,21 @@ BEGIN
NULL,
'Oplossing is aangereikt');
END IF;
ELSE
fac.writelog (
'PROCESSEMAIL',
'E',
'Melding kan niet bijgewerkt worden, onbekende opdrachtkey'
|| pfrom
|| '['
|| v_errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
-- ELSE
-- HIER TOCH GEEN LOGGING, ACTIE MAG ANDERS ZIJN DAN ORDGOE. DIT CREEERT TEVEEL ONNODIGE LOGGING.
-- fac.writelog (
-- 'PROCESSEMAIL',
-- 'E',
-- 'Melding kan niet bijgewerkt worden, onbekende opdrachtkey'
-- || pfrom
-- || '['
-- || v_errormsg
-- || ']',
-- 'OTHERS (error '
-- || SQLCODE
-- || '/'
-- || SUBSTR (SQLERRM, 1, 100)
-- || ')');
END IF;
--Hieronder de afhandeling van het bericht wanneer de melding vanuit Valuemation ter goedkeuring in Facilitor wordt aangeboden. Er wordt een kenmerk gevuld met een url naar VM om de oplossing te accorderen
@@ -1141,20 +1142,21 @@ BEGIN
END IF;
END IF;
END IF;
ELSE
fac.writelog (
'PROCESSEMAIL',
'E',
'Melding kan niet bijgewerkt worden met de aangeboden oplossing'
|| pfrom
|| '['
|| v_errormsg
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
-- ELSE
-- HIER TOCH GEEN LOGGING, ACTIE MAG ANDERS ZIJN DAN ORDOPL. DIT CREEERT TEVEEL ONNODIGE LOGGING.
-- fac.writelog (
-- 'PROCESSEMAIL',
-- 'E',
-- 'Melding kan niet bijgewerkt worden met de aangeboden oplossing'
-- || pfrom
-- || '['
-- || v_errormsg
-- || ']',
-- 'OTHERS (error '
-- || SQLCODE
-- || '/'
-- || SUBSTR (SQLERRM, 1, 100)
-- || ')');
END IF;
--Hieronder de afhandeling van het bericht wanneer de melding is opgelost in Valuemation.
@@ -1305,6 +1307,7 @@ EXCEPTION
END;
/
/* Formatted on 28-4-2021 16:01:59 (QP5 v5.136.908.31019) */
CREATE OR REPLACE PROCEDURE maas_export_valuemation (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
@@ -1318,38 +1321,50 @@ AS
-- Dit haalt het externnummer op van een opdrachtkenmerk indien externnr bij de melding nog leeg is
CURSOR sendagain
IS
SELECT DISTINCT
m.mld_melding_key,
to_char(m.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr) as opdrachtnummer,
o.mld_opdr_key,
o.mld_opdr_externnr AS externnr
FROM mld_melding m,
mld_opdr o,
mld_kenmerkopdr ko,
mld_kenmerk km,
mld_srtkenmerk skm
WHERE m.mld_melding_key = o.mld_melding_key
AND o.mld_typeopdr_key = 481 --Opdrachttype Aareon.
--AND o.mld_opdr_externnr IS NOT NULL --Bij nader inzien is het niet raar om een email die niet is aangekomen in VM (externnr leeg) nogmaals te verzenden
AND o.mld_opdr_key = ko.mld_opdr_key
AND km.mld_kenmerk_key = ko.mld_kenmerk_key
AND skm.mld_srtkenmerk_key = km.mld_srtkenmerk_key
AND skm.mld_srtkenmerk_key = 383 --Kenmerksoort 'Opnieuw versturen' (checkbox) (421 in ACCP)
AND o.mld_statusopdr_key NOT IN (1, 6, 7, 9) --Afgewezen, afgemeld, verwerkt, afgerond
AND ko.mld_kenmerkopdr_verwijder IS NULL;
SELECT DISTINCT (mld_opdr_key) --Zelfde opdracht niet 2 maal
FROM (SELECT DISTINCT (opdr.mld_opdr_key) --, opdr.mld_melding_key, opdr.mld_opdr_externsyncdate
FROM mld_opdr opdr, mld_opdr_note note
WHERE note.mld_opdr_key = opdr.mld_opdr_key
AND opdr.mld_typeopdr_key = 481
AND mld_statusopdr_key IN (5, 8) -- Toegekend, geaccepteerd
AND (opdr.mld_opdr_externsyncdate IS NULL
OR opdr.mld_opdr_externsyncdate <
note.mld_opdr_note_aanmaak)
UNION ALL
SELECT DISTINCT (opdr.mld_opdr_key)
FROM mld_opdr opdr, fac_bijlagen att
WHERE opdr.mld_opdr_key = att.fac_bijlagen_refkey
AND att.fac_bijlagen_module = 'MLD'
AND opdr.mld_typeopdr_key = 481
AND opdr.mld_statusopdr_key IN (5, 8) -- Toegekend, geaccepteerd
AND fac_bijlagen_kenmerk_key = 601 -- Opdrachtkenmerk Bijlagen bij opdrachttype Aareon
AND (opdr.mld_opdr_externsyncdate IS NULL
OR opdr.mld_opdr_externsyncdate <
att.fac_bijlagen_aanmaak)
UNION ALL
SELECT opdr.mld_opdr_key
FROM mld_opdr opdr, fac_tracking t
WHERE opdr.mld_opdr_key = 128
AND opdr.mld_opdr_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 75
AND (t.fac_tracking_oms LIKE '%Impact: %'
OR t.fac_tracking_oms LIKE '%Urgentie: %')
AND opdr.mld_typeopdr_key = 481
AND opdr.mld_statusopdr_key IN (5, 8) -- Toegekend, geaccepteerd
AND (opdr.mld_opdr_externsyncdate IS NULL
OR opdr.mld_opdr_externsyncdate <
t.fac_tracking_datum));
CURSOR kenmerken (c_opdr_key NUMBER)
CURSOR kenmerken (
c_opdr_key NUMBER)
IS
SELECT ko.mld_kenmerkopdr_key AS kmkey
FROM mld_kenmerkopdr ko,
mld_kenmerk k,
mld_srtkenmerk skm
FROM mld_kenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk skm
WHERE ko.mld_opdr_key = c_opdr_key
AND k.mld_kenmerk_key = ko.mld_kenmerk_key
AND skm.mld_srtkenmerk_key = k.mld_srtkenmerk_key
AND ko.mld_kenmerkopdr_verwijder IS NULL
AND skm.mld_srtkenmerk_key IN (381, 382, 383); --Kenmerksoorten Status Valuemation, Status per en Opnieuw versturen' (resp. 381, 401, 421 in ACCP)
AND ko.mld_kenmerkopdr_verwijder IS NULL
AND skm.mld_srtkenmerk_key IN (381, 382, 383); --Kenmerksoorten Status Valuemation, Status per en Opnieuw versturen'
BEGIN
v_errorhint := 'init';
@@ -1367,9 +1382,11 @@ BEGIN
SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL
WHERE mld_opdr_key = rec.mld_opdr_key;
v_errorhint :=
'Kenmerken opdracht legen bij opnieuw verzenden '
|| rec.mld_opdr_key;
--Daarna legen we de kenmerken bij de opdracht die we opnieuw klaar zetten om te verzenden
FOR rec1 IN kenmerken (rec.mld_opdr_key)
LOOP
BEGIN
@@ -1378,16 +1395,41 @@ BEGIN
UPDATE mld_kenmerkopdr
SET mld_kenmerkopdr_verwijder = SYSDATE
WHERE mld_kenmerkopdr_key = rec1.kmkey;
EXCEPTION
WHEN OTHERS
THEN
fac.writelog (
'EXP_VALUEMATION',
'E',
'Export tbv opnieuw klaarzetten opdrachten'
|| '['
|| v_errorhint
|| ']',
'OTHERS (error '
|| SQLCODE
|| '/'
|| SUBSTR (SQLERRM, 1, 100)
|| ')');
END;
END LOOP;
v_errorhint :=
'Syncdatum instellen na opnieuw klaar zetten voor verzenden '
|| rec.mld_opdr_key;
--We updaten de syncdatum zodat de wijziging eenmalig wordt verstuurd.
UPDATE mld_opdr
SET mld_opdr_externsyncdate = SYSDATE
WHERE mld_opdr_key = rec.mld_opdr_key;
fac.trackaction (
'ORDUPD',
rec.mld_opdr_key,
NULL,
NULL,
'Opdracht opnieuw klaarzetten voor verzending '
|| rec.opdrachtnummer);
|| rec.mld_opdr_key);
END;
END LOOP;
EXCEPTION
@@ -1408,7 +1450,6 @@ EXCEPTION
END;
/
CREATE OR REPLACE FORCE VIEW maas_v_mldopdr
(
melding_key,
@@ -1773,6 +1814,56 @@ AS
AND UPPER (t.fac_tracking_oms) LIKE
'%NOTIFICATIE CUST05 VERSTUURD%');
CREATE OR REPLACE VIEW maas_v_noti_noresponsevm
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile
)
AS
SELECT DISTINCT
'CUST06' AS code,
NULL,
NULL,
'Opdracht '
|| mld_melding_key
|| '/'
|| mld_opdr_bedrijfopdr_volgnr
|| ' heeft nog geen ticketnummer van Valuemation ontvangen',
mld_opdr_key,
NULL,
'gerard.mensink@aareon.nl;c.stok@maasdelta.nl;s.schepers@facilitor.nl',
NULL,
NULL
FROM mld_opdr
WHERE mld_opdr_externnr IS NULL
AND mld_opdr_verzonden < SYSDATE - (30 / 1440) -- Enkel opdrachten van meer dan 30 minuten geleden
AND mld_opdr_key NOT IN
(SELECT t.fac_tracking_refkey
FROM fac_tracking t
WHERE t.fac_tracking_refkey = mld_opdr_key
AND UPPER (t.fac_tracking_oms) LIKE
'%NOTIFICATIE CUST06 VERSTUURD%');
CREATE OR REPLACE VIEW maas_v_maillog
(
key,
datum,
status,
omschrijving,
hinthint
)
AS
SELECT imp_log_key, imp_log_datum, imp_log_status, imp_log_omschrijving, imp_log_hint
FROM imp_log
WHERE imp_log_applicatie = 'PROCESSEMAIL'
ORDER BY imp_log_datum DESC;
------ payload end ------