UBRH#61272 -- Mail to melding - Paar verbeterpunt doorgevoerd incl. mldnot en mldnob
svn path=/Customer/trunk/; revision=46591
This commit is contained in:
102
UBRH/ubrh.sql
102
UBRH/ubrh.sql
@@ -50,30 +50,40 @@ AS
|
||||
v_melding_key NUMBER (10);
|
||||
v_folder_kkey NUMBER (10);
|
||||
v_count NUMBER (10);
|
||||
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||||
v_mldprefix VARCHAR2 (10);
|
||||
|
||||
BEGIN
|
||||
CASE
|
||||
WHEN UPPER (pto) LIKE 'CONTACTUBRHIS@%'
|
||||
THEN
|
||||
|
||||
v_errormsg := 'Fout bepalen afzenderadres in geval doorsturen';
|
||||
-- Bepaal de afgesproken soortmelding met key=321=Melding via mail - Nog te rubriceren
|
||||
v_errormsg := 'Fout bepalen soortmelding';
|
||||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||||
INTO v_discipline_key, v_stdmelding_key
|
||||
FROM mld_stdmelding
|
||||
WHERE mld_stdmelding_key = 321;
|
||||
|
||||
-- Twee varianten waarop MAIL bij UBR op hmail-server terecht kan komen:
|
||||
-- 1. HANDMATIG doorgestuurd: die bij handmatig doorsturen kunnen voorkomen:
|
||||
--- Bij HANDMATIG via outlook doorsturen van de mail naar contactubrhis@ubrh.facilitor-test.nl met mode SMTP worden de pfrom en pfromadrr gevuld met algemene postbus UBR van waaruit doorgestuurd wordt.
|
||||
--- Deze zijn dus niet bruikbaar om oorspronkelijke pfrom eruit te halen. Daarom onderstaande procedure om deze uit pbody te halen.
|
||||
--- 1.1. Van: Jos Migo <j.migo1973@gmail.com>
|
||||
--- 1.2. Van: j.migo1973@gmail.com
|
||||
-- 2. AUTOMATISCH via ingestelde OUTLOOK-regels doorsturen
|
||||
--- Bij automatisch via outlook doorsturen van de mail naar contactubrhis@ubrh.facilitor-test.nl met mode SMTP wordt het oorspronkelijk afzenderadres in de pfrom meegegeven.
|
||||
--- From: <j.migo1973@gmail.com>
|
||||
v_errormsg := 'Fout bepalen afzenderadres in geval doorsturen';
|
||||
|
||||
-- Twee varianten waarop MAIL bij UBR op hmail-server terecht kan komen:
|
||||
-- 1. HANDMATIG doorgestuurd: die bij handmatig doorsturen kunnen voorkomen:
|
||||
--- Bij HANDMATIG via outlook doorsturen van de mail naar contactubrhis@ubrh.facilitor-test.nl met mode SMTP worden de pfrom en pfromadrr gevuld met algemene postbus UBR van waaruit doorgestuurd wordt.
|
||||
--- Deze zijn dus niet bruikbaar om oorspronkelijke pfrom eruit te halen. Daarom onderstaande procedure om deze uit pbody te halen.
|
||||
--- 1.1. Van: Jos Migo <j.migo1973@gmail.com>
|
||||
--- 1.2. Van: j.migo1973@gmail.com
|
||||
-- 2. AUTOMATISCH via ingestelde OUTLOOK-regels doorsturen
|
||||
--- Bij automatisch via outlook doorsturen van de mail naar contactubrhis@ubrh.facilitor-test.nl met mode SMTP wordt het oorspronkelijk afzenderadres in de pfrom meegegeven.
|
||||
--- From: <j.migo1973@gmail.com>
|
||||
|
||||
-- 1. HANDMATIG doorgestuurd - gaan eerst de van-regel eruit halen
|
||||
IF INSTR (pbody, '@',1,1)>0 AND REGEXP_INSTR(pbody,'Van:|From:',1,1)>0 AND (INSTR (pbody, '@',1,1)-REGEXP_INSTR(pbody,'Van:|From:',1,1)) >0 -- Er moet een Van-regel inclusief een @ in staan
|
||||
IF INSTR (pbody, '@',1,1)>0 AND REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1)>0 AND (INSTR (pbody, '@',1,1)-REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1)) >0 -- Er moet een Van-regel inclusief een @ in staan
|
||||
THEN
|
||||
v_from_string :=
|
||||
SUBSTR(pbody,
|
||||
REGEXP_INSTR(pbody,'Van:|From:',1,1),
|
||||
INSTR(pbody,CHR(10),REGEXP_INSTR(pbody,'Van:|From:',1,1),1)-REGEXP_INSTR(pbody,'Van:|From:',1,1)) ;
|
||||
REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1),
|
||||
INSTR(pbody,CHR(10),REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1),1)-REGEXP_INSTR(pbody,'Van:|From:|E-mail:',1,1)) ;
|
||||
|
||||
IF INSTR(v_from_string, '>',1,1)>0
|
||||
THEN
|
||||
@@ -171,8 +181,8 @@ END IF;
|
||||
-- toevoegen van Notities, dit alleen doen voor nummers > 16000!
|
||||
IF v_count = 1 AND fac.safe_to_number (v_exist_ticket) > 16000 -- Bij aanvang mail-to-melding staat voor UBRH de meldingsteller op 78635
|
||||
THEN -- Notitie bij bestaande melding!
|
||||
SELECT mld_stdmelding_key, mld_melding_key
|
||||
INTO v_stdmelding_key, v_melding_key
|
||||
SELECT mld_stdmelding_key, mld_melding_key, COALESCE(mld_melding_behandelaar2_key,mld_melding_behandelaar_key,NULL)
|
||||
INTO v_stdmelding_key, v_melding_key, v_behandelaar_key
|
||||
FROM mld_melding
|
||||
WHERE mld_melding_key = fac.safe_to_number (v_exist_ticket);
|
||||
|
||||
@@ -183,7 +193,7 @@ END IF;
|
||||
mld_melding_note_flag)
|
||||
VALUES (v_melding_key,
|
||||
v_perslid_key,
|
||||
pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
||||
v_fw_from || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
||||
0);
|
||||
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
@@ -196,14 +206,50 @@ END IF;
|
||||
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
|
||||
WHERE mld_melding_key = v_melding_key;
|
||||
END IF;
|
||||
ELSE -- Geen notitie, dus gaan een Nieuwe melding aanmaken!
|
||||
|
||||
-- Bepaal de afgesproken soortmelding met key=321=Melding via mail - Nog te rubriceren
|
||||
v_errormsg := 'Fout bepalen soortmelding';
|
||||
SELECT mld_ins_discipline_key, mld_stdmelding_key
|
||||
INTO v_discipline_key, v_stdmelding_key
|
||||
FROM mld_stdmelding
|
||||
WHERE mld_stdmelding_key = 321;
|
||||
-- Default tracking dat aanvrager iets gemdeld heeft
|
||||
fac.trackaction ('MLDNOT',
|
||||
v_melding_key,
|
||||
NULL,
|
||||
NULL,
|
||||
'#Notitie toegevoegd vanuit e-mail'); -- met een # ervoor voorkomt de notificatie
|
||||
|
||||
-- Indien behandelaar bekend is, deze wel een notificatie MLDNOB sturen...
|
||||
IF v_behandelaar_key IS NOT NULL
|
||||
THEN
|
||||
-- Bestaande melding en behandelaar is bekend.
|
||||
|
||||
-- bepalen vakgroeptype prefix
|
||||
SELECT srt.ins_srtdiscipline_prefix
|
||||
INTO v_mldprefix
|
||||
FROM mld_melding m,
|
||||
mld_stdmelding std,
|
||||
mld_discipline d,
|
||||
ins_srtdiscipline srt
|
||||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||||
AND m.mld_melding_key = v_melding_key;
|
||||
|
||||
-- Notificatie naar behandelaar
|
||||
fac.putnotificationsrtprio (
|
||||
NULL,
|
||||
v_behandelaar_key,
|
||||
'MLDNOB',
|
||||
v_melding_key,
|
||||
'Melding '
|
||||
|| v_mldprefix
|
||||
|| v_melding_key
|
||||
|| ' is door de klant aangepast.',
|
||||
2,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
2,
|
||||
NULL);
|
||||
END IF;
|
||||
|
||||
ELSE -- Geen notitie, dus gaan een Nieuwe melding aanmaken!
|
||||
|
||||
-- Suggested extensions:
|
||||
-- - Check for MLDUSE-write autorisations
|
||||
@@ -251,7 +297,11 @@ END IF;
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||||
|
||||
END IF;
|
||||
|
||||
-- Voor zowel nieuwe meldingen als notities kijken of er bijlagen toegevoegd moeten worden
|
||||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||||
|
||||
SELECT MIN (k1.mld_kenmerk_key)
|
||||
INTO v_folder_kkey
|
||||
FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
|
||||
@@ -263,7 +313,7 @@ END IF;
|
||||
AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
||||
OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
||||
OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T')
|
||||
OR (k1.mld_kenmerk_niveau = 'A')
|
||||
OR (k1.mld_kenmerk_niveau = 'A')
|
||||
)
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
@@ -276,7 +326,7 @@ END IF;
|
||||
AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
|
||||
OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
|
||||
OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T')
|
||||
OR (k1.mld_kenmerk_niveau = 'A')
|
||||
OR (k1.mld_kenmerk_niveau = 'A')
|
||||
)
|
||||
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||||
|
||||
@@ -286,8 +336,6 @@ END IF;
|
||||
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
ELSE
|
||||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||||
VALUES (psessionid, 'errormsg', 'Ontvanger ongeldig - Neem contact op met uw systeembeheerder ');
|
||||
|
||||
Reference in New Issue
Block a user