WELK#66143 Notificatie naar kerngebruikers bij notitie vanuit Valuemation

svn path=/Customer/trunk/; revision=56563
This commit is contained in:
Sander Schepers
2022-07-12 20:11:26 +00:00
parent f8c519117c
commit e642188e6f

View File

@@ -341,47 +341,50 @@ AS
nj.fac_notificatie_job_nextrun
- (nj.fac_notificatie_job_interval / 24);
CREATE OR REPLACE PROCEDURE welk_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
/* Formatted on 12/7/2022 22:01:33 (QP5 v5.371) */
CREATE OR REPLACE PROCEDURE WELK.welk_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
sender prs_perslid.prs_perslid_key%TYPE;
mldkey mld_melding.mld_melding_key%TYPE;
mldstat mld_melding.mld_melding_status%TYPE;
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
v_errormsg fac_result.fac_result_waarde%TYPE;
v_from VARCHAR2 (4000);
v_body VARCHAR2 (4000);
m_body VARCHAR2 (4000);
v_actie VARCHAR2 (4000);
v_vmnr mld_melding.mld_melding_externnr%TYPE; --Ticketnr Valuemation
v_opdrextnr mld_melding.mld_melding_externnr%TYPE; --Huidig externnr
v_mldkey mld_melding.mld_melding_key%TYPE; --bestaande mld_melding_key
v_opdrkey mld_opdr.mld_opdr_key%TYPE; --bestaande mld_opdr_key
v_opdrvolgnr mld_opdr.mld_opdr_bedrijfopdr_volgnr%TYPE; --bestaande volgnr
v_status mld_opdr.mld_statusopdr_key%TYPE; -- status opdracht
v_kenmerk_key NUMBER (10);
v_kenmstatusoms VARCHAR2 (4000);
v_kenmstatusper VARCHAR2 (4000);
v_kenmstatusoms_cur VARCHAR2 (4000);
v_kenmstatusper_cur VARCHAR2 (4000);
v_vm_oplossing VARCHAR2 (4000);
v_vm_oplossing_cur VARCHAR2 (4000);
v_vm_niet_akkoord VARCHAR2 (4000);
v_vm_niet_akkoord_cur VARCHAR2 (4000);
v_manager_email VARCHAR2 (4000);
v_manager_key prs_perslid.prs_perslid_key%TYPE;
v_lgkenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_mailorigin mld_kenmerk.mld_kenmerk_key%TYPE;
v_attachorigin mld_kenmerk.mld_kenmerk_key%TYPE;
sender prs_perslid.prs_perslid_key%TYPE;
mldkey mld_melding.mld_melding_key%TYPE;
mldstat mld_melding.mld_melding_status%TYPE;
stdmelding mld_stdmelding.mld_stdmelding_key%TYPE;
v_errormsg fac_result.fac_result_waarde%TYPE;
v_from VARCHAR2 (4000);
v_body VARCHAR2 (4000);
m_body VARCHAR2 (4000);
v_actie VARCHAR2 (4000);
v_vmnr mld_melding.mld_melding_externnr%TYPE; --Ticketnr Valuemation
v_opdrextnr mld_melding.mld_melding_externnr%TYPE; --Huidig externnr
v_mldkey mld_melding.mld_melding_key%TYPE; --bestaande mld_melding_key
v_opdrkey mld_opdr.mld_opdr_key%TYPE; --bestaande mld_opdr_key
v_opdrvolgnr mld_opdr.mld_opdr_bedrijfopdr_volgnr%TYPE; --bestaande volgnr
v_status mld_opdr.mld_statusopdr_key%TYPE; -- status opdracht
v_kenmerk_key NUMBER (10);
v_kenmstatusoms VARCHAR2 (4000);
v_kenmstatusper VARCHAR2 (4000);
v_kenmstatusoms_cur VARCHAR2 (4000);
v_kenmstatusper_cur VARCHAR2 (4000);
v_vm_oplossing VARCHAR2 (4000);
v_vm_oplossing_cur VARCHAR2 (4000);
v_vm_niet_akkoord VARCHAR2 (4000);
v_vm_niet_akkoord_cur VARCHAR2 (4000);
v_manager_email VARCHAR2 (4000);
v_kerngebruikers_email VARCHAR2 (4000);
v_manager_key prs_perslid.prs_perslid_key%TYPE;
v_lgkenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_mailorigin mld_kenmerk.mld_kenmerk_key%TYPE;
v_attachorigin mld_kenmerk.mld_kenmerk_key%TYPE;
BEGIN
v_errormsg := '(0x143)' || v_mldkey || psubject || v_actie;
sender := 4; --Standaard de persoon Facilitor
v_mailorigin := 410; --Kenmerk_key originele mail-bijlage
v_attachorigin := 411; --Kenmerk_key bijlage
v_kerngebruikers_email := NULL;
-- Verwijder de Bounce Address Tag Validation
IF pfrom LIKE 'prvs=%'
@@ -498,7 +501,7 @@ BEGIN
THEN
v_actie := 'ORDUPD';
v_kenmstatusoms :=
'Wacht inmiddels een week op uw reactie';
'Wacht inmiddels een week op uw reactie';
WHEN UPPER (SUBSTR (psubject, LENGTH (psubject) - 11, 12)) LIKE
'%IS OPGELOST%'
THEN
@@ -524,6 +527,34 @@ BEGIN
v_actie := NULL;
END CASE;
-- Bepalen van emailadres(sen) van kerngebruikers bij de melding (in kenmerken) tbv notificatie.
v_errormsg :=
'(0x250)'
|| 'Kan kerngebruikers niet bepalen: '
|| v_mldkey
|| psubject;
SELECT (SELECT LISTAGG (email, '; ')
WITHIN GROUP (ORDER BY email) AS email
FROM (SELECT p.prs_perslid_email AS email
FROM mld_kenmerkmelding kmm,
mld_kenmerk km,
prs_perslid p
WHERE kmm.mld_melding_key =
m.mld_melding_key
AND kmm.mld_kenmerk_key =
km.mld_kenmerk_key
AND km.mld_srtkenmerk_key = 363 -- Kenmerksoort Kerngebruikers
AND kmm.mld_kenmerkmelding_verwijder
IS NULL
AND p.prs_perslid_email IS NOT NULL
AND p.prs_perslid_verwijder IS NULL
AND fac.safe_to_number (
kmm.mld_kenmerkmelding_waarde) =
p.prs_perslid_key))
INTO v_kerngebruikers_email
FROM mld_melding m
WHERE m.mld_melding_key = v_mldkey;
BEGIN
--Hieronder de acties die gedaan moeten worden.
@@ -697,6 +728,26 @@ BEGIN
sender,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
IF v_kerngebruikers_email IS NOT NULL
THEN
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit)
VALUES (
442, --MLDNOB
2,
v_kerngebruikers_email,
'Bij de opdracht bij melding '
|| v_mldkey
|| ' is een notitie binnengekomen vanuit Valuemation',
v_mldkey,
2);
END IF;
ELSE
fac.writelog (
'PROCESSEMAIL',
@@ -967,6 +1018,26 @@ BEGIN
sender,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
IF v_kerngebruikers_email IS NOT NULL
THEN
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit)
VALUES (
442, --MLDNOB
2,
v_kerngebruikers_email,
'Bij de opdracht bij melding '
|| v_mldkey
|| ' is een notitie binnengekomen vanuit Valuemation',
v_mldkey,
2);
END IF;
END IF;
END IF;
@@ -1558,6 +1629,26 @@ BEGIN
sender,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
IF v_kerngebruikers_email IS NOT NULL
THEN
INSERT INTO fac_notificatie (
fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_receiver_email,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_prioriteit)
VALUES (
442, --MLDNOB
2,
v_kerngebruikers_email,
'Bij de opdracht bij melding '
|| v_mldkey
|| ' is een notitie binnengekomen vanuit Valuemation',
v_mldkey,
2);
END IF;
ELSE
fac.writelog (
'PROCESSEMAIL',
@@ -1619,59 +1710,65 @@ BEGIN
-- AND k1.mld_kenmerk_verwijder IS NULL
-- AND k1.mld_kenmerk_volgnummer >
-- k.mld_kenmerk_volgnummer);
IF v_opdrkey IS NOT NULL
THEN
-- Bijlagen toevoegen uit email
v_errormsg :=
'(0x601)' || v_mldkey || psubject || v_actie;
-- Bijlagen toevoegen uit email
v_errormsg :=
'(0x601)' || v_mldkey || psubject || v_actie;
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
psessionid,
'kenmerkpath',
'MLD\O'
|| TO_CHAR (TRUNC (v_opdrkey / 1000),
'FM0000')
|| '___\O'
|| v_opdrkey
|| '\'
|| v_attachorigin
|| '\');
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
psessionid,
'kenmerkpath',
'MLD\O'
|| TO_CHAR (
TRUNC (v_opdrkey / 1000),
'FM0000')
|| '___\O'
|| v_opdrkey
|| '\'
|| v_attachorigin
|| '\');
-- Originele email wordt opgeslagen bij de opdracht
v_errormsg :=
'(0x602`)' || v_mldkey || psubject || v_actie;
-- Originele email wordt opgeslagen bij de opdracht
v_errormsg :=
'(0x602`)' || v_mldkey || psubject || v_actie;
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
psessionid,
'kenmerkorgmailpath',
'MLD\O'
|| TO_CHAR (TRUNC (v_opdrkey / 1000),
'FM0000')
|| '___\O'
|| v_opdrkey
|| '\'
|| v_mailorigin
|| '\');
END IF;
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (
psessionid,
'kenmerkorgmailpath',
'MLD\O'
|| TO_CHAR (
TRUNC (v_opdrkey / 1000),
'FM0000')
|| '___\O'
|| v_opdrkey
|| '\'
|| v_mailorigin
|| '\');
END IF;
END IF;
END;
ELSE
v_errormsg := '(0x900)' || v_mldkey || psubject || v_actie || ' - geen pto herkend';
v_errormsg :=
'(0x900)'
|| v_mldkey
|| psubject
|| v_actie
|| ' - geen pto herkend';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
v_errormsg);
VALUES (psessionid, 'maillog', v_errormsg);
END CASE;
EXCEPTION
WHEN OTHERS