Files
Customer/UBRH/ubrh.sql
Jos Migo 877d8f4090 UBRH#66065 -- Evaluatieproces opnemen binnen CN-meldingen
svn path=/Customer/trunk/; revision=50799
2021-04-13 20:39:19 +00:00

3220 lines
146 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for UBRH.
DEFINE thisfile = 'UBRH.SQL'
DEFINE dbuser = '^UBRH'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile ('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE FUNCTION ubrh_get_kenmerkwaarde (
p_kenmerk_type VARCHAR2,
p_kenmerkdomein_key NUMBER,
p_kenmerk_waarde VARCHAR2)
RETURN VARCHAR2
AS
v_result VARCHAR2(4000);
BEGIN
IF p_kenmerk_type = 'R' OR p_kenmerk_type = 'S' THEN
v_result := fac.getdomeinwaarde (p_kenmerkdomein_key,
p_kenmerk_waarde);
ELSIF p_kenmerk_type = 'D' THEN
v_result := TO_CHAR (fac.safe_to_date (p_kenmerk_waarde, 'dd-mm-yyyy'), 'yyyy-mm-dd');
ELSE
v_result := p_kenmerk_waarde;
END IF;
return v_result;
END;
/
CREATE OR REPLACE FUNCTION ubrh_get_kenmerk (p_module IN VARCHAR2,
p_kenmerk_key IN NUMBER,
p_link_key IN NUMBER)
RETURN VARCHAR2
AS
v_kenmerk_type mld_srtkenmerk.mld_srtkenmerk_kenmerktype%TYPE;
v_kenmerk_waarde mld_kenmerkmelding.mld_kenmerkmelding_waarde%TYPE;
v_kenmerkdomein_key fac_kenmerkdomein.fac_kenmerkdomein_key%TYPE;
v_kenmerk_niveau ins_kenmerk.ins_kenmerk_niveau%TYPE;
BEGIN
CASE p_module
WHEN 'MLD'
THEN
SELECT mld_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
km.mld_kenmerkmelding_waarde
INTO v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk
WHERE km.mld_melding_key = p_link_key
AND km.mld_kenmerk_key = p_kenmerk_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key;
ELSE
SELECT sk.ins_srtkenmerk_kenmerktype,
sk.fac_kenmerkdomein_key,
ikd.ins_kenmerkdeel_waarde
INTO v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde
FROM ins_kenmerkdeel ikd, ins_kenmerk k, ins_srtkenmerk sk
WHERE ikd.ins_deel_key = p_link_key
AND ikd.ins_kenmerkdeel_verwijder IS NULL
AND ikd.ins_kenmerk_key = p_kenmerk_key
AND ikd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
END CASE;
RETURN ubrh_get_kenmerkwaarde (v_kenmerk_type,
v_kenmerkdomein_key,
v_kenmerk_waarde);
END;
/
-- Mail2Melding - Basis uit SVRZ overgenomen:
-- - UBR CONTACT HIS -: key=321=Melding via mail - Nog te rubriceren (contactubrhis@ubrh.facilitor.nl)
CREATE OR REPLACE PROCEDURE UBRH_processemail (
pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
c_onbekend_key NUMBER (10) := 56101; -- Melder onbekend
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_exist_ticket VARCHAR2 (255) := '';
v_fw_from VARCHAR2 (1000) := '';
v_from_string VARCHAR2 (1000) := '';
v_voor_at VARCHAR2 (1000) := '';
v_na_at VARCHAR2 (1000) := '';
v_fac_result_fromaddr VARCHAR2 (1000) := '';
v_fac_result_from VARCHAR2 (1000) := '';
v_perslid_key NUMBER (10);
v_kostenplaats_key NUMBER (10);
v_locatie_key NUMBER (10);
v_discipline_key NUMBER (10);
v_stdmelding_key NUMBER (10);
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
-- 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;
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:|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:|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
v_na_at :=
SUBSTR(v_from_string,
INSTR(v_from_string,'@',1,1)+1,
REGEXP_INSTR(v_from_string,'$')-1-INSTR(v_from_string,'@',1,1)-1) ;
v_voor_at :=
SUBSTR (v_from_string,
INSTR (v_from_string, '<',1,1) + 1,
INSTR (v_from_string, '@',1,1) - INSTR (v_from_string, '<',1,1) -1);
v_fw_from := v_voor_at || '@' || v_na_at;
ELSE
v_na_at :=
SUBSTR(v_from_string,
INSTR(v_from_string,'@',1,1)+1,
REGEXP_INSTR(v_from_string,'$')-INSTR(v_from_string,'@',1,1)-1) ;
v_voor_at :=
SUBSTR (v_from_string,
INSTR (v_from_string, ':',1,1) + 2,
INSTR (v_from_string, '@',1,1) - INSTR (v_from_string, ':',1,1) -2);
v_fw_from := v_voor_at || '@' || v_na_at;
END IF;
ELSE
-- 2. AUTOMATISCH doorgestuurde mail OF geen "Van: met email-adres" in de body. Dan dus maar terugvallen op de v_from...
SELECT fac_result_waarde
INTO v_fac_result_from
FROM fac_result WHERE fac_result_sessionid = psessionid AND fac_result_naam = 'from' ;
v_fac_result_from := REPLACE(REPLACE(v_fac_result_from,'>',''),'<','') ;
v_fw_from := v_fac_result_from;
END IF;
v_fw_from := SUBSTR (TRIM(v_fw_from), 1, 50);
SELECT fac_result_waarde
INTO v_fac_result_fromaddr
FROM fac_result WHERE fac_result_sessionid = psessionid AND fac_result_naam = 'fromaddr' ;
SELECT fac_result_waarde
INTO v_fac_result_from
FROM fac_result WHERE fac_result_sessionid = psessionid AND fac_result_naam = 'from' ;
-- Bepaal de melder/noteur op basis van e-mail adres zoals in pfrom?
v_errormsg := 'Fout bepalen melder ' || COALESCE (v_fw_from, '???');
SELECT COUNT (*)
INTO v_count
FROM prs_v_aanwezigperslid
WHERE UPPER (prs_perslid_email) LIKE UPPER (v_fw_from) || '%';
IF v_count = 1
THEN
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, NULL -- MIN (wpg.alg_locatie_key)
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
FROM prs_v_aanwezigperslid p, prs_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND UPPER (p.prs_perslid_email) LIKE UPPER (v_fw_from) || '%'
GROUP BY p.prs_perslid_key, a.prs_kostenplaats_key;
ELSE -- Melder kan niet 1-duidig worden bepaald, dus Onbekend - 51981 voor UBRH-acceptatie - IN PRODUCTIE NOG AANMAKEN!
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, NULL
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
FROM prs_v_aanwezigperslid p, prs_afdeling a
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = c_onbekend_key;
END IF;
-- Gaan eerst kijken of de doorgezette mail een opvolging/notitie is op een bestaand ticket.
---- Zo ja, dan gaan we die notitie toevoegen aan die melding.
---- Zo niet, dan gaan we een nieuwe melding aanmaken.
v_errormsg := 'Fout bepalen bestaande melding';
v_exist_ticket := psubject;
IF REGEXP_INSTR (v_exist_ticket, '\d') > 0
THEN
v_exist_ticket := SUBSTR (v_exist_ticket, REGEXP_INSTR (v_exist_ticket, '\d')) || 'x'; -- Gedeelte vanaf eerste cijfer in v_exist_ticket plus 'x'!
v_exist_ticket := SUBSTR (v_exist_ticket, 1, REGEXP_INSTR (v_exist_ticket, '\D') - 1); -- Gedeelte tot eerste niet-cijfer in v_exist_ticket!
ELSE
v_exist_ticket := 'x';
END IF;
SELECT COUNT (*)
INTO v_count
FROM mld_melding
WHERE mld_melding_key = fac.safe_to_number (v_exist_ticket);
-- Om te voorkomen dat huisnummers in het Onderwerp resulteren in het
-- 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, 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);
v_errormsg := 'Fout toevoegen notitie';
INSERT INTO mld_melding_note (mld_melding_key,
prs_perslid_key,
mld_melding_note_omschrijving,
mld_melding_note_flag)
VALUES (v_melding_key,
v_perslid_key,
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)
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet!
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- BO + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
-- 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
-- - Parse the subject to find the appropriate stdmelding, if uniquely possible
-- - Append (as a note?) to an existing melding if #key is found in the subject
v_errormsg := 'Fout toevoegen melding';
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_datum,
mld_melding_omschrijving,
mld_stdmelding_key,
mld_melding_t_uitvoertijd,
prs_kostenplaats_key,
prs_perslid_key,
prs_perslid_key_voor,
mld_melding_status,
mld_melding_spoed,
mld_melding_onderwerp,
mld_melding_behandelaar2_key,
mld_ins_discipline_key)
VALUES ('MLD',
4, -- email
v_locatie_key,
NULL, --v_onrgoed_keys,
SYSDATE,
-- psessionid || ' - FromAddr: ' || v_fac_result_fromaddr || ' - From: ' || v_fac_result_from|| CHR (13) || CHR (10) ||
v_fw_from || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
v_stdmelding_key,
NULL,
v_kostenplaats_key,
v_perslid_key,
v_perslid_key,
NULL,
3, -- prio normaal
SUBSTR (psubject, 1, 80),
NULL,
NULL) -- BT Helpdesk I+A
RETURNING mld_melding_key
INTO v_melding_key;
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
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
WHERE sm1.mld_stdmelding_key = v_stdmelding_key
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
AND k1.mld_kenmerk_verwijder IS NULL
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
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')
)
AND NOT EXISTS
(SELECT 1
FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
WHERE sm2.mld_stdmelding_key = v_stdmelding_key
AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
AND k2.mld_kenmerk_verwijder IS NULL
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
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')
)
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
IF v_folder_kkey IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
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 ');
END CASE;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('PROCESSEMAIL', 'E', 'UBRH_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg);
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ');
COMMIT;
END;
/
-- Basisrapport voor behandelteam-meldingen Inkoopaanvragen en Informatieaanvragen
CREATE OR REPLACE VIEW ubrh_v_rap_basis_aanvragen
(
mld_melding_key,
meldingnummer,
kostenplaats_key,
kostenplaats,
kostenplaats_oms,
melder,
prs_perslid_key, -- aanvrager-key
afdeling, -- afdelingscode van aanvrager
afdeling_omschrijving, -- afdelingomschrijving van aanvrager
afdeling_key, -- afdeling-key van aanvrager
prs_afdeling_key1, -- key van de business-unit = departement
prs_afdeling_naam1, -- naam van de business-unit
prs_bedrijf_key,
invoerder,
soortmelding, -- vakgroeptype
FCLT_3D_DISCIPLINE_KEY, -- vakgroep_key
productgroep, -- vakgroep
subproductgroep, -- std_melding
mld_stdmelding_key, -- std_melding_key
behandelaar, -- hoofdbehandelaar
behandelaar_key, -- hoofdbehandelaar_key
FCLT_3D_DISCIPLINE2_KEY, -- vakgroep_key van actieve behandelteam
actieve_behandelgroep, -- vakgroep van actieve behandelteam
actieve_behandelaar_key, -- actieve behandelaar_key
actieve_behandelaar, -- actieve behandelaar
status,
datum,
prioriteit,
einddatum, -- einddatum op melding
acceptdatum_std, -- acceptattiedatum vanuit SLA-inrichting
einddatum_std, -- einddatum vanuit SLA-inrichting
accepted, -- datum melding geaccepteerd
afgemeld, -- datum melding afgemeld
doorlooptijd_werkdgn,
sla_werkdgn,
sla_respijtdgn,
toegewezen_1e, -- Datum 1e keer naar behandelteam doorgezet...
toegewezen_laatste, -- Datum laatste keer naar behandelteam doorgezet...
te_laat_klantcontact,
onderwerp,
omschrijving,
opmerking, -- afhandeling
actiecode, -- 1 = standaard 2 = actie bij aanvrager 129 = actie terug bo
actiecode_omschrijving,
teamcontact_statusintern, -- vanaf hier Kenmerken -- Team Contact -- Specifiek en Intake en Controle
wf_komtvoortuit,
wf_komtvoortuit_behandelaar,
bestemd_voor,
datum_klantcontact_uiterste,
trajectinfo,
controle_cb,
controle_rvb,
controle_rivg,
controle_digiink,
controle_contractman,
controle_cb_tekst,
controle_rvb_tekst,
controle_rivg_tekst,
controle_digiink_tekst,
afdeling_voorwieaangevraagd, -- vanaf hier Kenmerken Complementeren informatie
soort_binnenkomst,
bijzonderheden,
nummer_inkoopaanvraagform,
contractnr_synergie,
onderhandelingsnr_digiink,
ordernummer_digiink,
klantcontact_gehad, -- vanaf hier Kenmerken Uitvoering en Afhandeling
klantcontact_gehad_datum,
status_offerteteam,
datum_intake,
opdrachtwaarde_geraamd,
actie,
aantal_uren_besteed,
soort_traject_herzien,
contractdatum_verstuurd,
contractdatum_ondertekend,
/*status_ea, -- Alle specifieke EA-velden
status_ea_opm,
status_ea_stop_reden,
status_ea_marktconsult,
status_ea_marktconsult_opm,
projectsecretaris,
datum_gunning,
absoluut_beoordelen,
absoluut_beoordelen_meth,
absoluut_beoordelen_toel,
reviewer,
risicoprofiel,
risicoprofiel_maatregel,
ea_overig_specificatie, */ -- tbv evaluatie
evaluatie_beoordeling_vragen,
beoordeling,
beoordeling_opm
)
AS
SELECT
x.mld_melding_key,
meldingnummer,
prs_kostenplaats_key,
kostenplaats,
kostenplaats_oms,
melder,
prs_perslid_key,
afdeling,
afdeling_omschrijving,
afdeling_key,
prs_afdeling_key1, -- van de business-unit = departement
prs_afdeling_naam, -- naam bij key1
prs_bedrijf_key,
invoerder,
soortmelding,
stdm_ins_discipline_key,
productgroep,
subproductgroep,
mld_stdmelding_key,
behandelaar,
behandelaar_key,
mld_ins_discipline_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
status,
datum,
DECODE (mld_melding_spoed,
3, lcl.l ('lcl_mld_urg_normaal'),
1, lcl.l ('lcl_mld_urg_kritiek'),
2, lcl.l ('lcl_mld_urg_hoog'),
4, lcl.l ('lcl_mld_urg_laag'))
prioriteit,
einddatum,
acceptdatum
acceptdatum_std,
einddatum_std,
accepted,
afgemeld,
DECODE (x.t_doorlooptijd.eenheid,
'D', x.t_doorlooptijd.tijdsduur,
NULL)
doorlooptijd_werkdgn,
sla_werkdgn,
sla_respijtdgn,
(SELECT MIN (fac_tracking_datum)
FROM fac_tracking ft
WHERE fac_tracking_refkey = x.mld_melding_key
AND INSTR (fac_tracking_oms, 'Behandelteam: (leeg)') > 0
AND fac_srtnotificatie_key = 52) toegwezen_1e,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking ft
WHERE fac_tracking_refkey = x.mld_melding_key
AND INSTR (fac_tracking_oms, 'Behandelteam: (leeg)') > 0
AND fac_srtnotificatie_key = 52) toegwezen_laatste,
CASE
WHEN v.klantcontact_gehad IS NULL
AND fac.safe_to_date (COALESCE(ubrh_get_kenmerk('MLD',1158,x.mld_melding_key),ubrh_get_kenmerk('MLD',1237,x.mld_melding_key)), 'yyyy-mm-dd')
< trunc(sysdate) THEN 'te laat!'
WHEN v.klantcontact_gehad IS NOT NULL AND v.datum_klantcontact_uiterste >= v.klantcontact_gehad_datum THEN 'op tijd'
WHEN v.klantcontact_gehad IS NOT NULL AND v.datum_klantcontact_uiterste < v.klantcontact_gehad_datum THEN 'te laat'
ELSE ''
END
te_laat_klantcontact,
onderwerp,
omschrijving,
opmerking,
mld_melding_actiecode,
CASE WHEN mld_melding_actiecode = 2 THEN 'Actie bij aanvrager'
WHEN mld_melding_actiecode = 129 THEN 'Attentie (actie bo)'
ELSE 'Standaard'
END actiecode_omschrijving,
v.teamcontact_statusintern, -- Vanaf hier kenmerken Team Contact - specifiek en tabblad Intake en Controle
v.wf_komtvoortuit,
SUBSTR(v.wf_komtvoortuit_info,
REGEXP_INSTR(v.wf_komtvoortuit_info,'Actieve behandelaar:',1,1),
INSTR(v.wf_komtvoortuit_info,CHR(10),REGEXP_INSTR(v.wf_komtvoortuit_info,'Actieve behandelaar:',1,1),1)-REGEXP_INSTR(v.wf_komtvoortuit_info,'Actieve behandelaar:',1,1))
wf_komtvoortuit_behandelaar,
v.bestemd_voor,
v.datum_klantcontact_uiterste,
v.trajectinfo,
v.controle_cb,
v.controle_rvb,
v.controle_rivg,
v.controle_digiink,
v.controle_contractman,
v.controle_cb_tekst,
v.controle_rvb_tekst,
v.controle_rivg_tekst,
v.controle_digiink_tekst,
v.afdeling_voorwieaangevraagd, -- vanaf hier kenmerken tabblad Complementeren informatie
v.soort_binnenkomst,
v.bijzonderheden,
v.nummer_inkoopaanvraagform,
v.contractnr_synergie,
v.onderhandelingsnr_digiink,
v.ordernummer_digiink,
v.klantcontact_gehad, -- vanf hier kenmerken tabblad Utivoering en Afhandeling
v.klantcontact_gehad_datum,
v.status_offerteteam,
v.datum_intake,
v.opdrachtwaarde_geraamd,
v.actie,
v.aantal_uren_besteed,
v.soort_traject_herzien,
v.contractdatum_verstuurd,
v.contractdatum_ondertekend,
/* v.status_ea, -- Alle specifieke EA-velden
v.status_ea_opm,
v.status_ea_stop_reden,
v.status_ea_marktconsult,
v.status_ea_marktconsult_opm,
v.projectsecretaris,
v.datum_gunning,
v.absoluut_beoordelen,
v.absoluut_beoordelen_meth,
v.absoluut_beoordelen_toel,
v.reviewer,
v.risicoprofiel,
v.risicoprofiel_maatregel,
v.ea_overig_specificatie, */
v.evaluatie_beoordeling_vragen,
mld_melding_satisfaction,
mld_melding_satisfaction_op
FROM (SELECT m.mld_melding_key,
m.mld_melding_start_key,
m.mld_melding_externnr,
m.prs_perslid_key,
sd.ins_srtdiscipline_prefix || m.mld_melding_key
meldingnummer,
m.mld_melding_ordernr
melding_ordernr,
(SELECT k.prs_kostenplaats_nr
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats,
(SELECT k.prs_kostenplaats_omschrijving
FROM prs_kostenplaats k
WHERE k.prs_kostenplaats_key = m.prs_kostenplaats_key)
kostenplaats_oms,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.prs_perslid_key)
melder,
COALESCE (
(SELECT prs_afdeling_naam
FROM prs_afdeling afd
WHERE afd.prs_afdeling_key = m.prs_afdeling_key),
(SELECT prs_afdeling_naam
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key))
afdeling,
COALESCE (
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling afd
WHERE afd.prs_afdeling_key = m.prs_afdeling_key),
(SELECT prs_afdeling_omschrijving
FROM prs_afdeling afd, prs_perslid pp
WHERE afd.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key))
afdeling_omschrijving,
COALESCE ((m.prs_afdeling_key),
(SELECT prs_afdeling_key
FROM prs_perslid pp
WHERE pp.prs_perslid_key = m.prs_perslid_key))
afdeling_key,
(SELECT prs_bedrijf_key
FROM prs_v_afdeling pva, prs_perslid pp
WHERE pva.prs_afdeling_key = pp.prs_afdeling_key
AND pp.prs_perslid_key = m.prs_perslid_key)
prs_bedrijf_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
mld.getmeldinguser (m.mld_melding_key))
invoerder,
(SELECT mb.mld_meldbron_omschrijving
FROM mld_meldbron mb
WHERE mb.mld_meldbron_key = m.mld_meldbron_key)
meldbron,
m.mld_meldbron_key,
sd.ins_srtdiscipline_key
ins_srtdiscipline_key,
sd.ins_srtdiscipline_omschrijving
soortmelding,
md.ins_discipline_key
stdm_ins_discipline_key,
md.ins_discipline_omschrijving
productgroep,
s.mld_stdmelding_omschrijving
subproductgroep,
s.mld_stdmelding_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = m.mld_melding_behandelaar_key)
behandelaar,
m.mld_melding_behandelaar_key
behandelaar_key,
m.mld_ins_discipline_key
mld_ins_discipline_key,
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key)
actieve_behandelgroep,
m.mld_melding_behandelaar2_key
actieve_behandelaar_key,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key =
m.mld_melding_behandelaar2_key)
actieve_behandelaar,
(SELECT mld_statuses_omschrijving
FROM mld_statuses sta
WHERE sta.mld_statuses_key = m.mld_melding_status)
status,
CASE
WHEN m.mld_melding_einddatum >
COALESCE (
fac.gettrackingdate ('MLDAFM',
m.mld_melding_key),
fac.gettrackingdate ('MLDREJ',
m.mld_melding_key),
SYSDATE)
THEN
1
ELSE
0
END
plan_uitvoertijd_sla,
CASE
WHEN m.mld_melding_indult = 1
OR s.mld_stdmelding_slabewaken = 0
THEN
1
ELSE
0
END
sla_nvt,
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
'D', m.mld_melding_t_uitvoertijd.tijdsduur,
NULL)
sla_werkdgn,
DECODE (m.mld_melding_t_uitvoertijd.eenheid,
'U', m.mld_melding_t_uitvoertijd.tijdsduur,
NULL)
sla_werkuren,
DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL)
sla_respijtdgn,
DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL)
sla_respijturen,
DECODE (m.mld_melding_t_accepttijd.eenheid,
'D', m.mld_melding_t_accepttijd.tijdsduur,
NULL)
sla_accptdgn,
DECODE (m.mld_melding_t_accepttijd.eenheid,
'U', m.mld_melding_t_accepttijd.tijdsduur,
NULL)
sla_accpturen,
m.mld_melding_datum
datum,
CASE
WHEN s.mld_stdmelding_planbaar = 2 THEN TO_DATE (NULL)
ELSE m.mld_melding_einddatum
END
einddatum,
mld_melding_einddatum_std
einddatum_std,
mld_melding_acceptdatum_std
acceptdatum,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
afgemeld,
COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 4),
mld.getmeldingstatusdate (m.mld_melding_key, 1))
accepted,
mld.getactualuitvoer (m.mld_melding_key)
t_doorlooptijd,
m.mld_melding_onderwerp
onderwerp,
m.mld_melding_omschrijving
omschrijving,
m.mld_melding_opmerking
opmerking,
m.mld_melding_spoed,
m.mld_melding_satisfaction,
m.mld_melding_satisfaction_op,
m.mld_melding_flag,
mld_melding_actiecode,
m.prs_kostenplaats_key,
ab.prs_afdeling_key1,
a.prs_afdeling_naam
FROM mld_melding m,
prs_perslid p,
prs_v_afdeling_boom ab,
prs_afdeling a,
mld_stdmelding s,
mld_discipline md,
mld_disc_params mdp,
ins_srtdiscipline sd
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_afdeling_key1 = a.prs_afdeling_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND md.ins_discipline_key = mdp.mld_ins_discipline_key
AND m.fac_activiteit_key IS NULL
AND m.mld_melding_datum >=
TO_DATE ('01-01-2010', 'DD-MM-YYYY')) x,
(SELECT mld_melding_key,
ubrh_get_kenmerk('MLD',1264 , mld_melding_key) -- Vanaf hier kenmerken Team Contact - specifiek en tabblad Intake en Controle
teamcontact_statusintern,
ubrh_get_kenmerk('MLD',1261 , mld_melding_key)
wf_komtvoortuit,
ubrh_get_kenmerk('MLD',1262 , mld_melding_key)
wf_komtvoortuit_info,
COALESCE(ubrh_get_kenmerk('MLD', 1124, mld_melding_key), ubrh_get_kenmerk('MLD', 1224, mld_melding_key))
bestemd_voor,
COALESCE(ubrh_get_kenmerk('MLD', 1158, mld_melding_key), ubrh_get_kenmerk('MLD', 1237, mld_melding_key))
datum_klantcontact_uiterste,
COALESCE(ubrh_get_kenmerk('MLD', 1154, mld_melding_key), ubrh_get_kenmerk('MLD', 1236, mld_melding_key))
trajectinfo,
ubrh_get_kenmerk('MLD', 1135, mld_melding_key)
controle_cb,
ubrh_get_kenmerk('MLD', 1142, mld_melding_key)
controle_rvb,
ubrh_get_kenmerk('MLD', 1140, mld_melding_key)
controle_rivg,
ubrh_get_kenmerk('MLD', 1138, mld_melding_key)
controle_digiink,
ubrh_get_kenmerk('MLD', 1132, mld_melding_key)
controle_contractman,
ubrh_get_kenmerk('MLD', 1136, mld_melding_key)
controle_cb_tekst,
ubrh_get_kenmerk('MLD', 1141, mld_melding_key)
controle_rvb_tekst,
ubrh_get_kenmerk('MLD', 1139, mld_melding_key)
controle_rivg_tekst,
ubrh_get_kenmerk('MLD', 1137, mld_melding_key)
controle_digiink_tekst,
COALESCE(ubrh_get_kenmerk('MLD', 1123, mld_melding_key), ubrh_get_kenmerk('MLD', 1223, mld_melding_key)) -- Vanaf hier kenmerken tabblad Complementeren informatie
afdeling_voorwieaangevraagd, -- 1123 , 1223
COALESCE(ubrh_get_kenmerk('MLD', 1150, mld_melding_key), ubrh_get_kenmerk('MLD', 1234, mld_melding_key))
soort_binnenkomst, -- 1150, 1234
COALESCE(ubrh_get_kenmerk('MLD', 1125, mld_melding_key), ubrh_get_kenmerk('MLD', 1225, mld_melding_key))
bijzonderheden, -- 1125,1225
ubrh_get_kenmerk('MLD', 1147, mld_melding_key)
nummer_inkoopaanvraagform, -- 1147
COALESCE(ubrh_get_kenmerk('MLD', 1133, mld_melding_key), ubrh_get_kenmerk('MLD', 1230, mld_melding_key))
contractnr_synergie, -- 1133 , 1230
ubrh_get_kenmerk('MLD', 1148, mld_melding_key)
onderhandelingsnr_digiink, -- 1148
ubrh_get_kenmerk('MLD', 1149, mld_melding_key)
ordernummer_digiink, -- 1149
COALESCE(ubrh_get_kenmerk('MLD', 1146, mld_melding_key), ubrh_get_kenmerk('MLD', 1233, mld_melding_key)) -- Vanaf hier kenmerken tabblad Utivoering en Afhandeling
klantcontact_gehad, -- 1146 , 1233
COALESCE(ubrh_get_kenmerk('MLD', 1145, mld_melding_key), ubrh_get_kenmerk('MLD', 1232, mld_melding_key))
klantcontact_gehad_datum, -- 1145 , 1232
ubrh_get_kenmerk('MLD', 1152, mld_melding_key)
status_offerteteam, -- 1152
ubrh_get_kenmerk('MLD', 1143, mld_melding_key)
datum_intake, -- 1143
ubrh_get_kenmerk('MLD', 1121, mld_melding_key)
opdrachtwaarde_geraamd, -- 1121
COALESCE(ubrh_get_kenmerk('MLD', 1122, mld_melding_key), ubrh_get_kenmerk('MLD', 1222, mld_melding_key))
actie, -- 1122 , 1222
ubrh_get_kenmerk('MLD', 1221, mld_melding_key)
aantal_uren_besteed, -- 1221
COALESCE(ubrh_get_kenmerk('MLD', 1151, mld_melding_key), ubrh_get_kenmerk('MLD', 1235, mld_melding_key))
soort_traject_herzien, -- 1151, 1235
ubrh_get_kenmerk('MLD', 1131, mld_melding_key)
contractdatum_verstuurd, -- 1131
ubrh_get_kenmerk('MLD', 1130, mld_melding_key)
contractdatum_ondertekend, -- 1130
ubrh_get_kenmerk('MLD', 1381, mld_melding_key) -- Alle specifieke EA-velden
status_ea,
ubrh_get_kenmerk('MLD', 1382, mld_melding_key)
status_ea_opm,
ubrh_get_kenmerk('MLD', 1385, mld_melding_key)
status_ea_stop_reden,
ubrh_get_kenmerk('MLD', 1383, mld_melding_key)
status_ea_marktconsult,
ubrh_get_kenmerk('MLD', 1384, mld_melding_key)
status_ea_marktconsult_opm,
ubrh_get_kenmerk('MLD', 1301, mld_melding_key)
projectsecretaris, -- 1301
ubrh_get_kenmerk('MLD', 1403, mld_melding_key)
datum_gunning,
ubrh_get_kenmerk('MLD', 1405, mld_melding_key)
absoluut_beoordelen,
ubrh_get_kenmerk('MLD', 1406, mld_melding_key)
absoluut_beoordelen_meth,
ubrh_get_kenmerk('MLD', 1407, mld_melding_key)
absoluut_beoordelen_toel,
ubrh_get_kenmerk('MLD', 1408, mld_melding_key)
reviewer,
ubrh_get_kenmerk('MLD', 1421, mld_melding_key)
risicoprofiel,
ubrh_get_kenmerk('MLD', 1422, mld_melding_key)
risicoprofiel_maatregel,
ubrh_get_kenmerk('MLD', 1401, mld_melding_key)
ea_overig_specificatie,
CASE WHEN ubrh_get_kenmerk('MLD', 1381, m.mld_melding_key) IS NULL THEN 'Ja'
ELSE 'Nee'
END
evaluatie_beoordeling_vragen
FROM mld_melding m,
mld_stdmelding s,
mld_discipline md,
ins_srtdiscipline sd
WHERE s.mld_stdmelding_key = m.mld_stdmelding_key
AND md.ins_discipline_key = s.mld_ins_discipline_key
AND sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
AND md.ins_discipline_module = 'MLD' AND md.ins_discipline_key in (261, 262)
) v
WHERE
x.mld_melding_key = v.mld_melding_key
AND x.stdm_ins_discipline_key in (261, 262);
-- Hieronder de views voor de definitieve rapportage voor Contactcentrum - bewaking Flows
-- Twee hulpviews
-- Twee basisviews - Hoofd + Detail
-- Hulpview 1 workflows - Route weergave
CREATE OR REPLACE VIEW UBRH_V_WORKFLOW_1
(
MLD_MELDING_START_KEY,
TRAJECT_ROUTE
)
AS
SELECT m.mld_melding_start_key,
LISTAGG (
md.ins_discipline_omschrijving
|| '('
|| TO_CHAR (m.mld_melding_key)
|| ' - '
|| TO_CHAR (m.mld_melding_status)
|| ')',
' / ')
WITHIN GROUP (ORDER BY m.mld_melding_key)
AS Route
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_start_key IS NOT NULL
AND md.ins_srtdiscipline_key IN (21, 22) -- 21, 22 is info en inkoopaanvraag. 23 is ADR (nog even erbuiten laten...)
GROUP BY m.mld_melding_start_key;
-- Hulpview 2 workflows - Alle informatievelden / kenmerkvelden die in flow gevuld worden
CREATE OR REPLACE VIEW UBRH_V_WORKFLOW_2
(
MLD_MELDING_START_KEY,
TRAJECT_TYPE,
MLD_MELDING_KEY,
MLD_STDMELINDG_KEY,
MLD_STDMELDING_OMSCHRIJVING,
MLD_MELDING_STATUS,
MLD_MELDING_ACTIEVEBEHANDELAAR,
BESTEMD_VOORTEAM,
SOORT_TRAJECT,
SOORT_TRAJECT_HERZIEN,
CONTROLESTAPPEN,
WORKFLOW_AFBREKEN,
AANGEVRAAGD_VOOR,
UITERSTE_DATUM_CONT,
KLANTCONTACT_GEHAD,
KLANTCONTACT_DATUM,
NUMMER_INKOOPAANVRAAGFORM,
CONTRACTNR_SYNERGY,
ONDERHANDELINGSNR_DIGIINK,
ORDERNR_DIGIINK,
DATUM_CONTRACTVERSTUURD,
DATUM_CONTRACTRETOUR,
PRS_PERSLID_KEY,
AANVRAGER,
DEPARTEMENT_KP,
DEPARTEMENT_CODE,
VAKGROEP_KEY,
VAKGROEP_NAAM,
WF_AANTAL_MLD_LOPEND,
BESTEMD_VOOR_KEY,
SOORT_TRAJECT_KEY,
BIJZONDERHEDEN,
CONTROLE_CB_TEKST,
CONTROLE_RVB_TEKST,
CONTROLE_RIVG_TEKST,
CONTROLE_DIGIINK_TEKST,
AFDELINGAANVRAAGVOOR,
SOORTBINNENKOMST,
ACTIE,
OPDRACHTWAARDE,
AANTALUREN
)
AS
SELECT m.mld_melding_start_key,
(CASE
WHEN md.ins_srtdiscipline_key = 21 THEN 'Inkooptraject'
WHEN md.ins_srtdiscipline_key = 22 THEN 'Informatietraject'
ELSE ''
END)
AS TrajectType,
m.mld_melding_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
m.mld_melding_status,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')' as ActieveBehandelaar,
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) =
fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 85)
WHEN md.ins_srtdiscipline_key = 22
THEN
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) =
fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 66)
ELSE
'nvt'
END)
AS BestemdVoorTeam, -- 'Bestemd voor uitvoeringsteam (INK / INF)'
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) =
fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 86)
WHEN md.ins_srtdiscipline_key = 22
THEN
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) =
fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 67)
ELSE
'nvt'
END)
AS SoortTrajectOfVraag, -- 'Soort inkooptraject / Soort informatievraag'
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 161)
WHEN md.ins_srtdiscipline_key = 22
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 74)
ELSE
'nvt'
END)
AS SoortTraject_Herzien, -- 'Soort inkoop/informatietraject (herzien)'
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) =
fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 87)
ELSE
'nvt'
END)
AS ControleStappen, -- 'Controlestappen Workflow'
(SELECT fu.fac_usrdata_omschr
FROM mld_kenmerkmelding mkm, mld_kenmerk k, fac_usrdata fu
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND fac.safe_to_number(mkm.mld_kenmerkmelding_waarde) = fu.fac_usrdata_key
AND k.mld_srtkenmerk_key = 62)
AS WorkflowAfbreken, -- 'Workflow stoppen'
(SELECT afd.prs_afdeling_keuzelijst
FROM mld_kenmerkmelding mkm,
mld_kenmerk k,
UBRH_V_AFDELINGKIEZEN afd
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 68
AND fac.safe_to_number (mkm.mld_kenmerkmelding_waarde) =
afd.prs_afdeling_key)
AS VoorWieAangevraagd, -- 'Voor wie aangevraagd'
(SELECT TO_DATE (mkm.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 69)
AS UitersteDatumContactKlant,
(CASE
WHEN (SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 100) =
1
THEN
'Ja'
ELSE
'Nee'
END)
AS KlantcontactGehad,
(SELECT TO_DATE (mkm.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 101)
AS Klantcontact_Datum,
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 88)
ELSE
'nvt'
END)
AS NummerInkoopaanvraagformulier,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 65)
AS Contractnr_Synergynr,
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 90)
ELSE
'nvt'
END)
AS Onderhandelingsnr_DigiInk,
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 181)
ELSE
'nvt'
END)
AS Ordernr_DigiInk,
(SELECT TO_DATE (mkm.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 104)
AS Datum_ContractVerstuurd,
(SELECT TO_DATE (mkm.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 105)
AS Datum_ContractRetour,
m.prs_perslid_key,
(SELECT pp.prs_perslid_naam
FROM prs_perslid pp
WHERE pp.prs_perslid_key = m.prs_perslid_key)
AS aanvrager,
(SELECT pk.prs_kostenplaats_omschrijving
FROM prs_kostenplaats pk
WHERE m.prs_kostenplaats_key = pk.prs_kostenplaats_key)
AS departement_KP,
(SELECT pk.prs_kostenplaats_upper
FROM prs_kostenplaats pk
WHERE m.prs_kostenplaats_key = pk.prs_kostenplaats_key)
AS Departement_code,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
(SELECT COUNT (*) -1
FROM mld_melding mm
WHERE mm.mld_melding_start_key = m.mld_melding_start_key AND mm.mld_melding_status in (2,4)
)
wf_aantal_mld_lopend,
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm,
mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 85)
WHEN md.ins_srtdiscipline_key = 22
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm,
mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 66)
ELSE
NULL
END)
AS bestemd_voor_key, -- 'Bestemd voor uitvoeringsteam (INK / INF)'
(CASE
WHEN md.ins_srtdiscipline_key = 21
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm,
mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 86)
WHEN md.ins_srtdiscipline_key = 22
THEN
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm,
mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 67)
ELSE
NULL
END)
AS soort_traject_key, -- 'Soort inkooptraject / Soort informatievraag'
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 64)
AS bijzonderheden,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 96)
AS controle_cb_tekst,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 94)
AS controle_rvb_tekst,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 95)
AS controle_rivg_tekst,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 303)
AS controle_digiink_tekst,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 68)
AS afdelingaanvraagvoor,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 23)
AS soortbinnenkomst,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 71)
AS actie,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 261)
AS opdrachtwaarde,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm, mld_kenmerk k
WHERE mkm.mld_melding_key = m.mld_melding_key
AND mkm.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 76)
AS aantaluren
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
( SELECT MAX (mm.mld_melding_key) max_key, mm.mld_melding_start_key
FROM mld_melding mm
GROUP BY mm.mld_melding_start_key) sub,
prs_perslid p
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_start_key IS NOT NULL
AND md.ins_srtdiscipline_key IN (21, 22)
-- AND sm.mld_stdmelding_key NOT IN (124) -- Uitsluiten DigiInkoop ivm parallel
AND m.mld_melding_start_key = sub.mld_melding_start_key
AND m.mld_melding_key = sub.max_key
AND m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
AND m.mld_melding_start_key > 54051
ORDER BY m.mld_melding_start_key;
-- Basisview Workflows - De hoofdview met per traject 1 totaalregel
CREATE OR REPLACE VIEW UBRH_V_WORKFLOW_HOOFD
(
TRAJECT_NR,
TRAJECT_NR2,
TRAJECT_TYPE,
DATUM_INVOER,
INGEVOERD_DOOR,
AANVRAGER,
DEPARTEMENT_KP,
DEPARTEMENT_CODE,
AANGEVRAAGD_VOOR,
ONDERWERP,
OMSCHRIJVING,
BESTEMD_VOORTEAM,
SOORT_TRAJECT,
CONTROLESTAPPEN,
KLANTCONT_UITERLIJK,
KLANTCONT_GEHAD,
KLANTCONT_DATUM,
CONTROLE_1,
CONTROLE_2,
TRAJECT_STATUS,
ACTIEVE_BEHANDELAAR,
TRAJECT_ROUTE,
TRAJECT_STREEDATUMGEREED,
TRAJECT_DATUMGEREED,
DOORLOOPTIJD_WERKDAGEN
)
AS
SELECT m.mld_melding_key
AS Traject_Nummer,
sd.ins_srtdiscipline_prefix || m.mld_melding_key
AS Traject_Nummer2,
sd.ins_srtdiscipline_omschrijving
AS Type_aanvraag,
m.mld_melding_datum
AS Datum_Invoer,
(SELECT pp.prs_perslid_naam
FROM fac_tracking ft, prs_perslid pp
WHERE m.mld_melding_key = ft.fac_tracking_refkey
AND ft.fac_srtnotificatie_key = 49 -- MLDNEW
AND ft.prs_perslid_key = pp.prs_perslid_key)
AS IngevoerdDoor,
(SELECT pp.prs_perslid_naam
FROM prs_perslid pp
WHERE pp.prs_perslid_key = m.prs_perslid_key)
AS Aanvrager,
(SELECT pk.prs_kostenplaats_omschrijving
FROM prs_kostenplaats pk
WHERE m.prs_kostenplaats_key = pk.prs_kostenplaats_key)
AS Departement_KP,
(SELECT pk.prs_kostenplaats_upper
FROM prs_kostenplaats pk
WHERE m.prs_kostenplaats_key = pk.prs_kostenplaats_key)
AS Departement_code,
w2.aangevraagd_voor
AS AangevraagdVoor,
m.mld_melding_onderwerp
AS Onderwerp,
m.mld_melding_omschrijving
AS Omschrijving,
w2.bestemd_voorteam
AS BestemdVoorTeam,
w2.soort_traject
AS SoortTrajectVraag,
w2.controlestappen
AS ControleStappen,
w2.uiterste_datum_cont
AS UiterlijkeDatumKlantcontact,
w2.klantcontact_gehad
AS KlantcontactGehad,
w2.klantcontact_datum
AS KlantcontactDatum,
(CASE
WHEN w2.klantcontact_gehad = 'Nee'
AND w2.uiterste_datum_cont IS NOT NULL
AND (w2.uiterste_datum_cont) > TRUNC (SYSDATE)
THEN
'Nog binnen termijn'
WHEN w2.klantcontact_gehad = 'Nee'
AND w2.uiterste_datum_cont IS NOT NULL
AND (w2.uiterste_datum_cont) = TRUNC (SYSDATE)
THEN
'Vandaag doen'
WHEN w2.klantcontact_gehad = 'Nee'
AND w2.uiterste_datum_cont IS NOT NULL
AND (w2.uiterste_datum_cont) < TRUNC (SYSDATE)
THEN
'Te laat'
ELSE
''
END)
AS Controle_Doorlooptijd_1,
(CASE
WHEN w2.klantcontact_gehad = 'Ja'
AND (w2.uiterste_datum_cont) >= (w2.klantcontact_datum)
THEN
'Doel gehaald'
WHEN w2.klantcontact_gehad = 'Ja'
AND (w2.uiterste_datum_cont) < (w2.klantcontact_datum)
THEN
'Doel NIET gehaald'
ELSE
''
END)
AS Controle_Doorlooptijd_2,
(CASE
WHEN m.mld_melding_status = 4
AND w2.workflow_afbreken = 'Nee'
THEN
'Loopt'
WHEN m.mld_melding_status = 4
AND w2.workflow_afbreken = 'Ja - Afgebroken'
THEN
'Loopt! - Workflow stoppen staat op Afgebroken. Laatste melding in route nog gereed melden om traject ook echt af te breken'
WHEN m.mld_melding_status = 5
AND w2.workflow_afbreken = 'Nee'
THEN
'Gereed'
WHEN m.mld_melding_status = 5
AND w2.workflow_afbreken = 'Ja - Afgebroken'
THEN
'Afgebroken'
ELSE
'Check veld Workflow stoppen!'
END)
AS Status,
w2.mld_melding_actievebehandelaar,
w1.traject_route
AS RouteTraject,
(m.mld_melding_einddatum)
AS StreefdatumGereed,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_start_key
AND ft.fac_srtnotificatie_key = 44 -- MLDAFM
)
AS Afmelddatum,
(CASE
WHEN m.mld_melding_status = 4
THEN
fac.count_Work_Days (m.mld_melding_datum, SYSDATE)
WHEN m.mld_melding_status = 5
THEN
fac.count_Work_Days (
m.mld_melding_datum,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey =
m.mld_melding_start_key
AND ft.fac_srtnotificatie_key = 44)) -- MLDAFM
ELSE
0
END)
AS Doorlooptijd_Werkdagen_TRAJECT
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
UBRH_V_WORKFLOW_1 w1,
UBRH_V_WORKFLOW_2 w2
WHERE m.mld_melding_key = m.mld_melding_start_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_start_key = w1.mld_melding_start_key(+)
AND m.mld_melding_start_key = w2.mld_melding_start_key(+)
AND m.mld_melding_start_key > 54051
AND m.mld_melding_start_key IS NOT NULL
AND md.ins_srtdiscipline_key IN (21, 22) -- 21, 22 is info en inkoopaanvraag. 23 is ADR
;
-- Basisview Workflows - De detailview met per traject alle aangemaakte meldingen
CREATE OR REPLACE VIEW UBRH_V_WORKFLOW_DETAIL
(
TRAJECT_NR,
TRAJECT_TYPE,
ONDERWERP,
MELDING_NR,
MELDING_OMS,
MELDING_AANMAAKDATUM,
STATUS,
DATUM_ACCEPTATIE,
BEHANDELAAR,
BEHANDELAAR_DATUM,
DATUM_GEREED,
DOORLOOPTIJD_WERKDAGEN,
MLD_STDMELDING_KEY
)
AS
SELECT m.mld_melding_start_key,
md.ins_discipline_omschrijving,
m.mld_melding_onderwerp
AS Onderwerp,
m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
m.mld_melding_datum
AS Aanmaakdatum,
(CASE
WHEN m.mld_melding_status < 4 THEN 'Nog accepteren'
WHEN m.mld_melding_status = 4 THEN 'Loopt'
WHEN m.mld_melding_status > 4 THEN 'Gereed'
ELSE 'Onbekend'
END)
AS Status,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_key
AND ft.fac_srtnotificatie_key = 43 -- MLDACP
)
AS Acceptatiedatum,
(SELECT pp.prs_perslid_naam
FROM prs_perslid pp
WHERE m.mld_melding_behandelaar_key = pp.prs_perslid_key)
AS Behandelaar,
(SELECT MAX (ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_key
AND ft.fac_srtnotificatie_key = 57 -- MLDBEH
)
AS Behandelaar_Datum, -- LAATSTE EBHANDELAARSDATUM
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_key
AND ft.fac_srtnotificatie_key = 44 -- MLDAFM
)
AS Afmelddatum,
(CASE
WHEN m.mld_melding_status = 4
THEN
fac.count_Work_Days (m.mld_melding_datum, SYSDATE)
WHEN m.mld_melding_status = 5
THEN
fac.count_Work_Days (
m.mld_melding_datum,
(SELECT ft.fac_tracking_datum
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey =
m.mld_melding_key
AND ft.fac_srtnotificatie_key = 44)) -- MLDAFM
ELSE
0
END)
AS Doorlooptijd_Werkdagen_ACTIE,
sm.mld_stdmelding_key
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND m.mld_melding_start_key > 54051
AND m.mld_melding_start_key IS NOT NULL
AND md.ins_srtdiscipline_key IN (21, 22) -- 21, 22 is info en inkoopaanvraag. 23 is ADR (nog even erbuiten laten...)
ORDER BY m.mld_melding_start_key, m.mld_melding_key ASC;
-- View om bij de meldingen de Afdeling te kunnen kiezen vanuit 1e niveau Ministerie en daaronder de echte afdeling (laagste niveau)
CREATE OR REPLACE VIEW UBRH_V_AFDELINGKIEZEN
(
PRS_AFDELING_KEY,
PRS_AFDELING_OMSCHRIJVING,
PRS_DEPARTEMENT_KEY,
PRS_DEPARTEMENT_OMSCHRIJVING,
PRS_DEPARTEMENT_CODE,
PRS_AFDELING_KEUZELIJST,
PRS_AFDELING_VERWIJDER
)
AS
SELECT b.prs_afdeling_key
AS Key_EigenAfdeling,
(SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS EigenAfdelingsNaam,
b.prs_afdeling_key1
AS Key_Departement,
a.prs_afdeling_omschrijving
AS Naam_Departement,
a.prs_afdeling_naam
AS Code_Departement,
a.prs_afdeling_naam
|| ' / '
|| (SELECT a.prs_afdeling_omschrijving
FROM prs_afdeling a
WHERE a.prs_afdeling_key = b.prs_afdeling_key)
AS Naam_Keuzelijst,
aa.prs_afdeling_verwijder
FROM prs_v_afdeling_boom b, prs_afdeling a, prs_afdeling aa
WHERE b.prs_afdeling_key1 = a.prs_afdeling_key
AND b.prs_afdeling_key = aa.prs_afdeling_key
AND a.prs_afdeling_verwijder IS NULL
AND aa.prs_afdeling_verwijder IS NULL
ORDER BY Naam_Keuzelijst ASC;
-- View voor kennisbank, de verantwoordelijke mensen voor vastlegging en onderhoud.
-- LET OP - ID autorisatiegroep nog in PROD goedzetten
CREATE OR REPLACE VIEW ubrh_v_mdw_kennisbank
(
PRS_PERSLID_KEY,
NAAM
)
AS
SELECT DISTINCT p.prs_perslid_key, N.PRS_PERSLID_NAAM_FRIENDLY
FROM fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_groep gr,
fac_groeprechten grr,
prs_v_perslid_fullnames n
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = gr.fac_groep_key
AND gr.FAC_GROEP_KEY = grr.fac_groep_key
AND n.prs_perslid_key = p.prs_perslid_key
AND gr.FAC_GROEP_KEY = 42;
-- View voor vullen keuzelijst/kenmerkdomein Projectsecretaris
CREATE OR REPLACE VIEW UBRH_V_PROJECTSECRETARIS
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')',
p.prs_perslid_verwijder
FROM prs_perslid p, prs_srtperslid sp
WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_perslid_verwijder IS NULL
AND lower(sp.prs_srtperslid_omschrijving) = 'projectsecretaris';
-- View voor vullen keuzelijst/kenmerkdomein Reviewer
CREATE OR REPLACE VIEW UBRH_V_REVIEWER
(
PRS_PERSLID_KEY,
PRS_PERSLID_NAAM,
PRS_PERSLID_VERWIJDER
)
AS
SELECT p.prs_perslid_key,
p.prs_perslid_naam || ' (' || p.prs_perslid_voornaam || ')',
p.prs_perslid_verwijder
FROM prs_perslid p, fac_gebruikersgroep gg, fac_groep g
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = 48 -- EA-Team
AND p.prs_perslid_verwijder IS NULL ;
-- NOTIFICATIEJOBS ----
-- View tbv notificatiejob - Melding toegewezen aan behandelteam zonder behandelaar dan notificatie sturen naar team
-- Notificatie gaat dan naar emailadres bij vakgroep-behandelteam
CREATE OR REPLACE VIEW UBRH_V_NOTI_BEHANDELTEAM
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
NULL
receiver,
'De melding '
|| m.mld_melding_key
|| ' is toegewezen aan jouw/jullie '
|| m.actieve_behandelgroep
text,
'CUST03'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST03')
fac_srtnotificatie_key,
m.mld_melding_key
key,
NULL
xkey,
m.vakgroep_email
xemail,
NULL
xmobile
FROM (SELECT m.mld_melding_key,
sm.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving, -- primaire vakgroep
COALESCE (
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE INSTR (fac_tracking_oms, 'CUST03') > 0),
SYSDATE
- (SELECT COALESCE (fac_notificatie_job_interval, 1)
/ 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'UBRH_V_NOTI_BEHANDELTEAM'))
job_datum_vanaf,
m.mld_ins_discipline_key, -- Discipline_key Actieve behandelgroep
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key)
actieve_behandelgroep,
m.mld_melding_behandelaar2_key,
dp2.mld_disc_params_emailnw3
vakgroep_email,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking ft
WHERE fac_tracking_refkey = m.mld_melding_key
AND (
(INSTR (fac_tracking_oms, 'Behandelteam: ') > 0 AND fac_srtnotificatie_key = 52)
OR
(INSTR (fac_tracking_oms, 'Behandelteam is gewijzigd naar') > 0 AND fac_srtnotificatie_key = 183))
)
mld_toegewezen_laatste,
(SELECT COALESCE (
MAX (fac_tracking_datum),
TO_DATE ('2020-01-01 00:00',
'yyyy-mm-dd hh24:mi'))
FROM fac_tracking ft
WHERE fac_tracking_refkey = m.mld_melding_key
AND INSTR (fac_tracking_oms, 'CUST03') > 0
AND fac_srtnotificatie_key = 255) -- In MLD_track
mld_cust03_verstuurd
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
mld_disc_params dp, -- Primaire vakgroep -- Deze zou eruit kunnen...
mld_disc_params dp2 -- Behandelteam vakgroep
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = dp.mld_ins_discipline_key
AND m.mld_ins_discipline_key = dp2.mld_ins_discipline_key -- Is de key van Behandelteam in mld_melding
AND m.mld_melding_behandelaar2_key IS NULL
AND dp2.mld_disc_params_emailnw3 IS NOT NULL) m
WHERE m.mld_toegewezen_laatste > m.mld_cust03_verstuurd
AND m.mld_toegewezen_laatste > m.job_datum_vanaf;
-- Notificatie voor beoordeling Inkooptrajecten
CREATE OR REPLACE VIEW UBRH_V_NOTI_BEOORDELEN
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE,
PRS_BEDRIJFADRES_KEY,
ATTACHMENTS
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
m.prs_perslid_key
receiver,
'Graag uw beoordeling op uw inkoopaanvraag '
|| m.ins_srtdiscipline_prefix || m.mld_melding_key
text,
'CUST04'
code,
NULL
fac_srtnotificatie_key,
m.mld_melding_key
key,
NULL
xkey,
m.afzendadres_team_contact
xsender,
NULL
xemail,
NULL
xmobile,
NULL
prs_bedrijfadres_key,
CASE WHEN m.fac_bijlagen_disk_directory IS NOT NULL THEN
'/' || m.fac_bijlagen_disk_directory || '/' || m.fac_bijlagen_filename
ELSE
''
END
attachments
FROM (SELECT m.mld_melding_key,
ubrh_get_kenmerk('MLD', 1131, m.mld_melding_key)
contractdatum_verstuurd,
ubrh_get_kenmerk('MLD', 1130, m.mld_melding_key)
contractdatum_ondertekend,
CASE WHEN ubrh_get_kenmerk('MLD', 1381, m.mld_melding_key) IS NULL THEN 'Ja'
ELSE 'Nee'
END
evaluatie_versturen,
bm.fac_bookmark_aanmaak,
bm.fac_bookmark_expire,
(SELECT fac_bijlagen_disk_directory
FROM fac_bijlagen
WHERE
fac_bijlagen_refkey = 219 AND fac_bijlagen_module ='PRS' AND fac_bijlagen_kenmerk_key = 1040 AND fac_bijlagen_verwijder IS NULL
)
fac_bijlagen_disk_directory,
(SELECT fac_bijlagen_filename
FROM fac_bijlagen
WHERE
fac_bijlagen_refkey = 219 AND fac_bijlagen_module ='PRS' AND fac_bijlagen_kenmerk_key = 1040 AND fac_bijlagen_verwijder IS NULL
)
fac_bijlagen_filename,
sm.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving, -- primaire vakgroep
sd.ins_srtdiscipline_prefix,
m.prs_perslid_key, -- aanvrager
COALESCE (
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE INSTR (fac_tracking_oms, 'CUST04') > 0),
SYSDATE
- (SELECT COALESCE (fac_notificatie_job_interval, 1)
/ 24
FROM fac_notificatie_job
WHERE fac_notificatie_job_view =
'UBRH_V_NOTI_BEOORDELEN'))
job_datum_vanaf,
COALESCE(d.ins_discipline_email,'contactUBR.HIS@rijksoverheid.nl') -- afzenderadres van vakgroep INKOOPAANVRAAG
afzendadres_team_contact,
m.mld_ins_discipline_key, -- discipline_key actieve behandelgroep
(SELECT COALESCE(dd.ins_discipline_email, d.ins_discipline_email) FROM ins_tab_discipline dd WHERE dd.ins_discipline_key = m.mld_ins_discipline_key)
afzendadres_behandelteam,
(SELECT md2.ins_discipline_omschrijving
FROM mld_discipline md2
WHERE md2.ins_discipline_key = m.mld_ins_discipline_key)
actieve_behandelgroep,
m.mld_melding_behandelaar2_key,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking ft
WHERE fac_tracking_refkey = m.mld_melding_key
AND INSTR (fac_tracking_oms, 'CUST04') > 0
AND fac_srtnotificatie_key = 255) -- In MLD_track
mld_cust04_verstuurd
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
ins_srtdiscipline sd,
fac_bookmark bm
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_discipline_key = 261 -- alleen inkoopaanvragen
AND m.mld_melding_status = 5 -- status afgemeld
AND m.mld_melding_key = fac_bookmark_refkey
AND fac_bookmark_xmlnode = 'melding'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
) m
WHERE
m.contractdatum_ondertekend IS NOT NULL AND m.evaluatie_versturen = 'Ja'
AND m.mld_cust04_verstuurd IS NULL
AND m.fac_bookmark_expire > sysdate ;
-- Notificatie voor beoordeling Inkooptrajecten - In geval negatieve beoordeling een notificatie naar Coordinatoren behandelteams
CREATE OR REPLACE VIEW UBRH_V_NOTI_BEOORDELEN_CO
(
SENDER,
RECEIVER,
TEXT,
CODE,
FAC_SRTNOTIFICATIE_KEY,
KEY,
XKEY,
XSENDER,
XEMAIL,
XMOBILE
)
AS
SELECT (SELECT prs_perslid_key
FROM prs_perslid
WHERE prs_perslid_upper = 'FACILITOR')
sender,
p.prs_perslid_key
receiver,
'Negatieve beoordeling op inkoopaanvraag '
|| sd.ins_srtdiscipline_prefix || m.mld_melding_key
|| ' door aanvrager ' || pa.prs_perslid_naam_full
text,
'CUST05'
code,
(SELECT fac_srtnotificatie_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST05')
fac_srtnotificatie_key,
m.mld_melding_key
key,
NULL
xkey,
NULL
xsender,
NULL
xemail,
NULL
xmobile
FROM mld_melding m,
prs_v_perslid_fullnames pa,
mld_stdmelding sm,
ins_tab_discipline d,
ins_srtdiscipline sd,
(SELECT p.prs_perslid_key
FROM prs_perslid p, fac_gebruikersgroep gg, fac_groep g
WHERE p.prs_perslid_key = gg.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = 221) p
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND d.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND mld_melding_satisfaction in (2,4)
AND m.prs_perslid_key = pa.prs_perslid_key
AND TRUNC(m.mld_melding_datum) >= TO_DATE('01-11-2019','dd-mm-yyyy') -- beoordeling via fac_like ingeschakeld vanaf 2021-april echter oudste CN-melding die nog openstaat 26-11-2019
AND NOT EXISTS
(SELECT ft.fac_tracking_key
FROM fac_tracking ft, fac_srtnotificatie sn
WHERE ft.fac_tracking_refkey = m.mld_melding_key AND ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_code = 'CUST05')
;
CREATE OR REPLACE VIEW ubrh_v_traject_gekoppeld
(
mld_melding_key,
mld_melding_omschrijving -- meldingsnr met prefix
)
AS
SELECT m.mld_melding_key,
v.traject_nr2
FROM mld_melding m, ubrh_v_workflow_hoofd v
WHERE m.mld_melding_start_key = v.traject_nr
AND m.mld_melding_status = 4;
-- OMZETTEN WF-MELDINGEN => BT-MELDINGEN
---- 1. Bronview
CREATE OR REPLACE VIEW ubrh_conversie_wf_bron
(
mld_melding_start_key,
wf_conversie, -- Keuzelijst (autom, op verzoek) - Bij eerste converie op autom. zetten. Daarna op verzoek
omgezet_aantalkeer,
wf_conversie_datum,
traject_type,
traject_doorlopen,
mld_melding_key_laatste,
wf_aantal_mld_lopend,
mld_onderwerp,
mld_omschrijving,
prs_perslid_key,
prs_kostenplaats_key,
mld_stdmelding_key,
soort_traject_herzien,
mld_behandelaar_key,
mld_behandelteam_key,
mld_behandelaar2_key,
mld_melding_datum,
mld_melding_einddatum,
mld_melding_status,
beschrijving_trajectmelding, -- Vullen in de nieuwe BT-melding, is concat van soort inkoop + Controle WF + Onderwerp
-- Kenmerkvelden tabblad Intake en Complementeren
komtvoortuittraject_key,
bestemdvoor_key,
klantcontactuiterst_key,
bijzonderheden_key,
nummerinkoopformulier_key,
contractnrsynergie_key,
onderhandelnrdigiink_key,
ordernrdigiink_key,
afdelingaanvraagvoor_key,
soortbinnenkomst_key,
-- Kenmerkvelden tabblad Controle
controlecb_key,
controlervb_key,
controlerivg_key,
controledigiink_key,
controlecontract_key,
controlecbtekst_key,
controlervbtekst_key,
controlerivgtekst_key,
controledigiinktekst_key,
-- Kenmerkvelden tabblad Uitvoering en Afhandeling
klantcontactgehad_key,
klantcontactdatum_key,
contractdatumverst_key,
contractdatumondert_key,
statusofferteteam_key,
offerteteam_intake_key,
opdrachtwaarde_key,
actie_key,
aantaluren_key
)
AS
SELECT
m.mld_melding_start_key,
COALESCE(ubrh_get_kenmerk('MLD',1241,m.mld_melding_start_key),ubrh_get_kenmerk('MLD',1242,m.mld_melding_start_key)) -- Inkoop/Inform-aanvraag ACP: 1361/1362 PROD: 1241/1242
WF_conversie,
(SELECT COUNT (*)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_start_key
AND ft.fac_tracking_oms =
'Conversie naar Behandelteam-melding ivm nieuwe meldingsstructuur')
omgezet_aantalkeer,
(SELECT max(ft.fac_tracking_datum)
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_start_key
AND ft.fac_tracking_oms =
'Conversie naar Behandelteam-melding ivm nieuwe meldingsstructuur')
WF_conversie_datum,
v.traject_type,
(SELECT 'Route in WF reeds doorlopen:' || chr(13) || vv.traject_route
FROM ubrh_v_workflow_1 vv
WHERE vv.mld_melding_start_key = m.mld_melding_start_key
)
traject_doorlopen,
v.mld_melding_key
mld_melding_key_laatste,
v.wf_aantal_mld_lopend,
m.mld_melding_onderwerp,
m.mld_melding_omschrijving,
m.prs_perslid_key,
m.prs_kostenplaats_key,
CASE -- INKOOPAANVRAGEN
WHEN v.soort_traject_key = 175 THEN 342
WHEN v.soort_traject_key = 177 THEN 353
WHEN v.soort_traject_key = 178 THEN 347
WHEN v.soort_traject_key = 179 THEN 348
WHEN v.soort_traject_key = 180 THEN 352
WHEN v.soort_traject_key = 184 THEN 421
WHEN v.soort_traject_key = 181 THEN 357
WHEN v.soort_traject_key = 182 THEN 356
WHEN v.soort_traject_key = 183 THEN 359
WHEN v.soort_traject_key = 281 THEN 341
WHEN v.soort_traject_key = 164 THEN 343
WHEN v.soort_traject_key = 166 THEN 345
WHEN v.soort_traject_key = 167 THEN 346
WHEN v.soort_traject_key = 221 THEN 346
WHEN v.soort_traject_key = 165 THEN 344
WHEN v.soort_traject_key = 381 THEN 350
WHEN v.soort_traject_key = 168 THEN 348
WHEN v.soort_traject_key = 169 THEN 351
WHEN v.soort_traject_key = 170 THEN 354
WHEN v.soort_traject_key = 171 THEN 355
WHEN v.soort_traject_key = 172 THEN 355
WHEN v.soort_traject_key = 174 THEN 358
WHEN v.soort_traject_key = 173 THEN 356
-- INFORMATIEAANVRAGEN
WHEN v.soort_traject_key in (111,115,120,122,125,133,141,144,147,322,302) THEN 361 -- Adviesvraag
WHEN v.soort_traject_key in (112,114,119,123,126,132,135,140,143,146,321,301) THEN 360 -- Informatieverzoek
WHEN v.soort_traject_key in (113,118,131) THEN 381 -- Vragen over lopend traject
WHEN v.soort_traject_key in (116,117,121,124,127,128,129,130,134,136,137,138,139,142,145,148,323,303,261) THEN 382 -- Divers
ELSE NULL -- Fallback-melding voor INK en INF vullen we in conversie-procedure
END
mld_stdmelding_key,
v.soort_traject_herzien, -- indien herzien dan in procedure van de conversie terugvallen op FALLBACK-MLD
COALESCE( (SELECT prs_perslid_key
FROM fac_tracking ft
WHERE ft.fac_tracking_refkey = m.mld_melding_start_key
AND ft.fac_srtnotificatie_key = 49 -- vullen vanuit MLDNEW
AND prs_perslid_key IN
(SELECT gg.prs_perslid_key
FROM fac_gebruikersgroep gg, fac_groep g
WHERE gg.fac_groep_key = g.fac_groep_key
AND g.fac_groep_key = 141) -- Persoon uit 'Team Contact UBR|HIS - NIEUW'
), 3451) -- en anders terugvallen op Harriette Arsasemita
mld_behandelaar_key,
-- Bij welk behandelteam ligt de Aanvraag?
----- Vakgroepnaam van laatste Actie_Melding matchen met naam vakgroep uit Behandelteam-structuur
CASE WHEN v.vakgroep_naam = 'Offerteteam' THEN 263 -- 263 Offerteteam
WHEN v.vakgroep_naam = 'EA-team' THEN 264 -- 264 EA-team
WHEN v.vakgroep_naam = 'Controle RVB' THEN 265 -- 265 Controle RvB
WHEN v.vakgroep_naam = 'Controle RvIG' THEN 266 -- 266 Controle RvIG
WHEN v.vakgroep_naam = 'Controle DigiInkoop' THEN 267 -- 267 Controle DigiInkoop
WHEN v.vakgroep_naam = 'Controle CB' THEN 268 -- 268 Controle CB
WHEN v.vakgroep_naam = 'Contractmanagement' THEN 269 -- 269 Contractmanagement
WHEN v.vakgroep_naam = 'Categoriemanagement ICT' THEN 270 -- 270 Categoriemanagement ICT
WHEN v.vakgroep_naam = 'Inhuurdesk' THEN 271 -- 271 Inhuurdesk
WHEN v.vakgroep_naam = 'Contractbeheer' THEN 281 -- 281 Contractbebeer
WHEN v.vakgroep_naam = 'Contractcentrum' THEN 282 -- 282 Team Contact - PROD-KEY = 282 ACP_KEY = 301
ELSE 282 -- Team Contact - PROD-KEY = 282 ACP_KEY = 301
END
mld_behandelteam_key, -- gevuld met juiste discipline_key
NULL
mld_behandelaar2_key, -- Deze laten we op NULL zodat men zelf in team achteraf deze gaat vullen (eerst opschoning en MLDBE2 afdwingen
m.mld_melding_datum,
m.mld_melding_einddatum,
m.mld_melding_status,
'Type traject: ' || v.traject_type || chr(13) || chr(10) ||
'Soort: ' || v.soort_traject || chr(13) || chr(10) ||
'Controle: ' || v.controlestappen || chr(13) || chr(10) ||
'Departement: ' || v.departement_code || chr(13) || chr(10) ||
'Actieve behandelaar: ' || v.mld_melding_actievebehandelaar || chr(13) || chr(10) ||
'Onderwerp: ' || m.mld_melding_onderwerp
beschrijving_trajectmelding,
-- Kenmerkvelden tabblad Intake en Complementeren
m.mld_melding_start_key
komtvoortuittraject_key,
v.bestemd_voor_key
bestemdvoor_key,
TO_CHAR(v.uiterste_datum_cont,'dd-mm-yyyy')
klantcontactuiterst_key,
v.bijzonderheden
bijzonderheden_key,
v.nummer_inkoopaanvraagform
nummerinkoopformulier_key,
v.contractnr_synergy
contractnrsynergie_key,
v.onderhandelingsnr_digiink
onderhandelnrdigiink_key,
v.ordernr_digiink
ordernrdigiink_key,
v.afdelingaanvraagvoor
afdelingaanvraagvoor_key,
v.soortbinnenkomst
soortbinnenkomst_key,
-- Kenmerkvelden tabblad Controle
CASE WHEN v.soort_traject_key in (167, 171) THEN 402 -- CB bij 'trajectsoort verlengingen'
ELSE 401
END
controlecb_key,
CASE WHEN v.controlestappen='Toetsen door RVB' THEN 402
ELSE 401
END
controlervb_key,
CASE WHEN v.controlestappen='Toetsen door RvIG' THEN 402
ELSE 401
END
controlerivg_key,
CASE WHEN v.controlestappen='Opdracht in DigiInkoop plaatsen' THEN 402
ELSE 401
END
controledigiink_key,
401 -- Niet uit de oude workflow te bepalen dus maar gewoon standaard op NEE
controlecontract_key,
v.controle_cb_tekst
controlecbtekst_key,
v.controle_rvb_tekst
controlervbtekst_key,
v.controle_rivg_tekst
controlerivgtekst_key,
v.controle_digiink_tekst
controledigiinktekst_key,
-- Kenmerkvelden tabblad Uitvoering en Afhandeling
DECODE( lower(v.klantcontact_gehad), 'ja', 1, NULL)
klantcontactgehad_key,
TO_CHAR(v.klantcontact_datum,'dd-mm-yyyy')
klantcontactdatum_key,
TO_CHAR(v.datum_contractverstuurd,'dd-mm-yyyy')
contractdatumverst_key,
TO_CHAR(v.datum_contractretour,'dd-mm-yyyy')
contractdatumondert_key,
o.offerteteam_status
statusofferteteam_key,
TO_CHAR(o.offerteteam_intake,'dd-mm-yyyy')
offerteteam_intake_key,
v.opdrachtwaarde
opdrachtwaarde_key,
v.actie
actie_key,
v.aantaluren
aantaluren_key
FROM mld_melding m,
ubrh_v_workflow_2 v,
(SELECT wd.traject_nr
mld_melding_start_key,
wd.melding_nr
mld_melding_key,
(SELECT mkm.mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = wd.melding_nr
AND mkm.mld_kenmerk_key = 137)
offerteteam_status,
(SELECT TO_DATE (mkm.mld_kenmerkmelding_waarde, 'dd-mm-yyyy')
FROM mld_kenmerkmelding mkm
WHERE mkm.mld_melding_key = wd.melding_nr
AND mkm.mld_kenmerk_key = 138)
offerteteam_intake
FROM ubrh_v_workflow_detail wd
WHERE wd.mld_stdmelding_key in (44, 122) )o -- Offerteteam - Tweetal eigen kenmerken ophalen uit WF-inkoop
WHERE m.mld_melding_key = v.mld_melding_start_key
AND m.mld_melding_status = 4 -- v.traject_status = 'Loopt'
AND m.mld_melding_start_key IS NOT NULL
AND m.mld_melding_start_key = o.mld_melding_start_key (+)
ORDER BY m.mld_melding_key ASC
;
CREATE OR REPLACE VIEW ubrh_v_export_conversie_wf (
result,
result_order
)
AS
SELECT imp_log_hint, 'conversie-run'
FROM imp_log
WHERE upper(imp_log_applicatie) = 'CONVERSIE_WF'
AND imp_log_datum = (SELECT max(v.imp_log_datum) FROM imp_log v WHERE upper(v.imp_log_applicatie) = 'CONVERSIE_WF')
;
CREATE OR REPLACE PROCEDURE ubrh_select_conversie_wf (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
v_aanduiding VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
-- variabelen kenmerkkeys en waarden in nieuwe BT-melding
v_komtvoortuittraj_km_key NUMBER(10) := 1261 ; -- LOK-KEY 1241 ACP-KEY 1321 PROD-KEY 1261
v_komtvoortuittraj_inf_km_key NUMBER(10) := 1262 ; -- LOK-KEY 1263 ACP-KEY 1381 PROD-KEY 1262
v_bijlagen_uit_wf_km_key NUMBER(10) := 1281 ; -- LOK-KEY 1281 ACP-KEY 1401 PROD-KEY 1281
v_bijlagen_uit_wf VARCHAR2 (1000) ;
v_bijlagen_folder_km_key NUMBER(10) := 1181 ;
v_bijlagen_key NUMBER(10);
v_count_bijlage NUMBER(10) ;
-- variabelen kenmerkkeys en waarden in oorspronkelijke trajectmelding
v_ink_wfmld_omgezet_km_key NUMBER(10) := 1241 ; -- Keuzelijst bij wf-trajectmelding (automatisch, op verzoek). LOK: 1261, ACP: 1361 PROD: 1241.
v_inf_wfmld_omgezet_km_key NUMBER(10) := 1242 ; -- Idem. LOK: 1262, ACP: 1362 PROD: 1242.
v_wfmld_omgezet_key NUMBER(10) := 482 ; -- Waarde die hoort bij deze keuzelijst. Na conversie op GEREED zetten LOK: 442, ACP: 482 PROD: 482
---- Tabblad Intake en Controle bij BT-melding
v_ink_bestemdvoor_km_key NUMBER(10) := 1124 ;
v_inf_bestemdvoor_km_key NUMBER(10) := 1224 ;
v_ink_klantcontactuit_km_key NUMBER(10) := 1158 ;
v_inf_klantcontactuit_km_key NUMBER(10) := 1237 ;
v_ink_trajectinfo_km_key NUMBER(10) := 1154 ;
v_inf_trajectinfo_km_key NUMBER(10) := 1236 ;
v_controlecb_km_key NUMBER(10) := 1135 ;
v_controlervb_km_key NUMBER(10) := 1142 ;
v_controlerivg_km_key NUMBER(10) := 1140 ;
v_controledigiink_km_key NUMBER(10) := 1138 ;
v_controlecontract_km_key NUMBER(10) := 1132 ;
v_controlecbtekst_km_key NUMBER(10) := 1136 ;
v_controlervbtekst_km_key NUMBER(10) := 1141 ;
v_controlerivgtekst_km_key NUMBER(10) := 1139 ;
v_controledigiinktekst_km_key NUMBER(10) := 1137 ;
---- Tabblad Complementeren informatie
v_ink_afd_aanvraagvoor_km_key NUMBER(10) := 1123 ;
v_inf_afd_aanvraagvoor_km_key NUMBER(10) := 1223 ;
v_ink_soortbinnenkomst_km_key NUMBER(10) := 1150 ;
v_inf_soortbinnenkomst_km_key NUMBER(10) := 1234 ;
v_ink_bijzonderheden_km_key NUMBER(10) := 1125 ;
v_inf_bijzonderheden_km_key NUMBER(10) := 1225 ;
v_nummerinkoopformulier_km_key NUMBER(10) := 1147 ;
v_ink_contractnrsynerg_km_key NUMBER(10) := 1133 ;
v_inf_contractnrsynerg_km_key NUMBER(10) := 1230 ;
v_onderhandelnrdigiink_km_key NUMBER(10) := 1148 ;
v_ordernrdigiink_km_key NUMBER(10) := 1149 ;
---- tabblad Uitvoering en Afhandeling
v_ink_klantcontactgehad_km_key NUMBER(10) := 1146 ;
v_inf_klantcontactgehad_km_key NUMBER(10) := 1233 ;
v_ink_klantcontactdatum_km_key NUMBER(10) := 1145 ;
v_inf_klantcontactdatum_km_key NUMBER(10) := 1232 ;
v_ink_contr_datumverst_km_key NUMBER(10) := 1131 ;
v_ink_contr_datumondert_km_key NUMBER(10) := 1130 ;
v_ink_statusofferteteam_km_key NUMBER(10) := 1152 ;
v_ink_offerteteam_int_km_key NUMBER(10) := 1143 ;
v_ink_opdrachtwaarde_km_key NUMBER(10) := 1121 ;
v_ink_actie_km_key NUMBER(10) := 1122 ;
v_inf_actie_km_key NUMBER(10) := 1222 ;
v_inf_aantaluren_km_key NUMBER(10) := 1221 ;
v_ink_trajectherzien_km_key NUMBER(10) := 1151 ;
v_inf_trajectherzien_km_key NUMBER(10) := 1235 ;
--- overige BT
v_mld_melding_start_key NUMBER (10);
v_mld_melding_key NUMBER(10);
v_mld_onderwerp VARCHAR(80);
v_mld_omschrijving VARCHAR(4000);
v_prs_perslid_key NUMBER(10);
v_prs_kostenplaats_key NUMBER(10);
v_mld_stdmelding_key NUMBER(10);
v_mld_behandelaar_key NUMBER(10);
v_mld_behandelteam_key NUMBER(10);
v_mld_behandelaar2_key NUMBER(10);
v_mld_melding_datum DATE ; -- format TO_DATE ('19-01-2021 14:37', 'DD-MM-YYYY HH24:MI'),
v_mld_melding_einddatum DATE ;
v_mld_melding_status NUMBER(10);
v_count_totaal NUMBER(10);
v_count_omgezet NUMBER(10);
CURSOR m
IS
SELECT v.*
FROM ubrh_conversie_wf_bron v
WHERE v.wf_conversie = 'omzetten'
AND v.omgezet_aantalkeer = 0
;
CURSOR b (
p_melding_start_key NUMBER)
IS
SELECT b.fac_bijlagen_key, b.fac_bijlagen_refkey, b.fac_bijlagen_disk_directory, b.fac_bijlagen_filename, b.fac_bijlagen_digest, b.fac_bijlagen_file_size
FROM fac_bijlagen b
WHERE
b.fac_bijlagen_refkey = p_melding_start_key
AND b.fac_bijlagen_module = 'MLD'
AND b.fac_bijlagen_verwijder IS NULL
AND b.fac_bijlagen_root_key = b.fac_bijlagen_key ;
BEGIN
v_count_omgezet := 0 ;
-- totaal in cursor = totaal wf-meldingen om te zetten
SELECT count(*)
INTO v_count_totaal
FROM ubrh_conversie_wf_bron v
WHERE v.wf_conversie = 'omzetten'
AND v.omgezet_aantalkeer = 0 ;
-- cursor starten
FOR rec IN m
LOOP
v_mld_melding_start_key := rec.mld_melding_start_key;
v_mld_stdmelding_key := rec.mld_stdmelding_key;
-- STAP 1: Gaan eerst op basis van de WF-melding de BT-melding toevoegen
v_aanduiding := 'BT-melding toevoegen op basis van WF-melding: ' || v_mld_melding_start_key;
-- Fallback-melding goed vullen: Geen match met WF-soort_traject OF indien in WF veld _herzientraject is gevuld
v_errorhint := 'Start fallback-melding goed vullen';
IF (rec.mld_stdmelding_key IS NULL OR rec.soort_traject_herzien IS NOT NULL) AND rec.traject_type = 'Inkooptraject'
THEN
v_mld_stdmelding_key := 441 ; -- Fallback-melding voor INK - ACP 422 en PROD 441
END IF;
IF (rec.mld_stdmelding_key IS NULL OR rec.soort_traject_herzien IS NOT NULL) AND rec.traject_type = 'Informatietraject'
THEN
v_mld_stdmelding_key := 382 ; -- Fallback-melding voor INF
END IF;
v_errorhint := 'Toevoegen melding';
INSERT INTO mld_melding (mld_melding_module,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_kosten_klant,
prs_perslid_key,
prs_perslid_key_voor, -- Gelijk prs_perslid_key
prs_kostenplaats_key,
mld_stdmelding_key,
mld_melding_behandelaar_key, -- Behandelaar uit team Contact
mld_ins_discipline_key, -- Gekoppelde behandelteam
mld_melding_behandelaar2_key,
mld_melding_flag,
mld_melding_datum,
mld_melding_einddatum,
mld_meldbron_key, -- 5
mld_melding_spoed, -- 3
mld_melding_status,
mld_melding_kto -- 0
)
VALUES (
'MLD',
rec.mld_onderwerp,
rec.mld_omschrijving,
1,
rec.prs_perslid_key,
rec.prs_perslid_key,
rec.prs_kostenplaats_key,
v_mld_stdmelding_key,
rec.mld_behandelaar_key, -- Hier al vullen. Wordt namelijk niet bij mld.setmeldingsstatus geregeld
rec.mld_behandelteam_key,
rec.mld_behandelaar2_key,
0,
rec.mld_melding_datum, -- format TO_DATE ('19-01-2021 14:37', 'DD-MM-YYYY HH24:MI'),
rec.mld_melding_einddatum,
5,
3,
NULL, -- In behandeling - via setmeldingstatus vullen
0)
RETURNING mld_melding_key
INTO v_mld_melding_key;
-- 2 = nieuw
mld.setmeldingstatus(v_mld_melding_key, 2, 3, 0); -- 3 = Facilitor
-- 4 = in behandeling...
mld.setmeldingstatus(v_mld_melding_key, 4, rec.mld_behandelaar_key, 0);
-- Door de voorgaande setmeldingstatus wordt de MLDACP richting aanvrager ook weer doorgezet. Dit moet niet, dus teniet doen
fac.clrnotifications ('MLDACP', v_mld_melding_key, NULL, NULL);
-- STAP 2: Allemaal kenmerkvelden nog extra vullen op de nieuw aangemaakt melding
-- PROCEDURE upsertmeldingkenmerk (p_kenmerk_key IN NUMBER, p_mld_key IN NUMBER, p_waarde IN VARCHAR2)
v_aanduiding := 'Nieuwe BT-melding ' || v_mld_melding_key || ' aanvullen met alle informatie uit WF-melding ' || v_mld_melding_start_key;
v_errorhint := 'Toevoegen v_komtvoortuittraj_km_key';
mld.upsertmeldingkenmerk (v_komtvoortuittraj_km_key,
v_mld_melding_key,
v_mld_melding_start_key);
v_errorhint := 'Toevoegen v_komtvoortuittraj_inf_km_key';
mld.upsertmeldingkenmerk (v_komtvoortuittraj_inf_km_key,
v_mld_melding_key,
rec.beschrijving_trajectmelding);
-- INKOOPTRAJECT - kenmerkvelden vullen
IF rec.traject_type = 'Inkooptraject' THEN
-- Tabblad Team Contact en Controles
v_errorhint := 'Toevoegen v_ink_bestemdvoor_km_key';
mld.upsertmeldingkenmerk (v_ink_bestemdvoor_km_key,
v_mld_melding_key,
rec.bestemdvoor_key);
v_errorhint := 'Toevoegen v_ink_klantcontactuit_km_key';
mld.upsertmeldingkenmerk (v_ink_klantcontactuit_km_key,
v_mld_melding_key,
rec.klantcontactuiterst_key);
v_errorhint := 'Toevoegen v_ink_trajectinfo_km_key';
mld.upsertmeldingkenmerk (v_ink_trajectinfo_km_key,
v_mld_melding_key,
rec.traject_doorlopen);
v_errorhint := 'Toevoegen v_controlecb_km_key';
mld.upsertmeldingkenmerk (v_controlecb_km_key,
v_mld_melding_key,
rec.controlecb_key);
v_errorhint := 'Toevoegen v_controlervb_km_key';
mld.upsertmeldingkenmerk (v_controlervb_km_key,
v_mld_melding_key,
rec.controlervb_key);
v_errorhint := 'Toevoegen v_controlerivg_km_key';
mld.upsertmeldingkenmerk (v_controlerivg_km_key,
v_mld_melding_key,
rec.controlerivg_key);
v_errorhint := 'Toevoegen v_controledigiink_km_key';
mld.upsertmeldingkenmerk (v_controledigiink_km_key,
v_mld_melding_key,
rec.controledigiink_key);
v_errorhint := 'Toevoegen v_controlecontract_km_key';
mld.upsertmeldingkenmerk (v_controlecontract_km_key,
v_mld_melding_key,
rec.controlecontract_key);
v_errorhint := 'Toevoegen v_controlecbtekst_km_key';
mld.upsertmeldingkenmerk (v_controlecbtekst_km_key,
v_mld_melding_key,
rec.controlecbtekst_key);
v_errorhint := 'Toevoegen v_controlervbtekst_km_key';
mld.upsertmeldingkenmerk (v_controlervbtekst_km_key,
v_mld_melding_key,
rec.controlervbtekst_key);
v_errorhint := 'Toevoegen v_controlerivgtekst_km_key';
mld.upsertmeldingkenmerk (v_controlerivgtekst_km_key,
v_mld_melding_key,
rec.controlerivgtekst_key);
v_errorhint := 'Toevoegen v_controledigiinktekst_km_key';
mld.upsertmeldingkenmerk (v_controledigiinktekst_km_key,
v_mld_melding_key,
rec.controledigiinktekst_key);
-- Tabblad aanvullende info
v_errorhint := 'Toevoegen v_ink_bijzonderheden_km_key';
mld.upsertmeldingkenmerk (v_ink_bijzonderheden_km_key,
v_mld_melding_key,
rec.bijzonderheden_key);
v_errorhint := 'Toevoegen v_nummerinkoopformulier_km_key';
mld.upsertmeldingkenmerk (v_nummerinkoopformulier_km_key,
v_mld_melding_key,
rec.nummerinkoopformulier_key);
v_errorhint := 'Toevoegen v_ink_contractnrsynerg_km_key';
mld.upsertmeldingkenmerk (v_ink_contractnrsynerg_km_key,
v_mld_melding_key,
rec.contractnrsynergie_key);
v_errorhint := 'Toevoegen v_onderhandelnrdigiink_km_key';
mld.upsertmeldingkenmerk (v_onderhandelnrdigiink_km_key,
v_mld_melding_key,
rec.onderhandelnrdigiink_key);
v_errorhint := 'Toevoegen v_ordernrdigiink_km_key';
mld.upsertmeldingkenmerk (v_ordernrdigiink_km_key,
v_mld_melding_key,
rec.ordernrdigiink_key);
v_errorhint := 'Toevoegen v_ink_afd_aanvraagvoor_km_key';
mld.upsertmeldingkenmerk (v_ink_afd_aanvraagvoor_km_key,
v_mld_melding_key,
rec.afdelingaanvraagvoor_key);
v_errorhint := 'Toevoegen v_ink_soortbinnenkomst_km_key';
mld.upsertmeldingkenmerk (v_ink_soortbinnenkomst_km_key,
v_mld_melding_key,
rec.soortbinnenkomst_key);
-- Tabblad Uitvoering en Afhandeling
v_errorhint := 'Toevoegen v_ink_klantcontactgehad_km_key';
mld.upsertmeldingkenmerk (v_ink_klantcontactgehad_km_key,
v_mld_melding_key,
rec.klantcontactgehad_key);
v_errorhint := 'Toevoegen v_ink_klantcontactdatum_km_key';
mld.upsertmeldingkenmerk (v_ink_klantcontactdatum_km_key,
v_mld_melding_key,
rec.klantcontactdatum_key);
v_errorhint := 'Toevoegen v_ink_contr_datumverst_km_key';
mld.upsertmeldingkenmerk (v_ink_contr_datumverst_km_key,
v_mld_melding_key,
rec.contractdatumverst_key);
v_errorhint := 'Toevoegen v_ink_contr_datumondert_km_key';
mld.upsertmeldingkenmerk (v_ink_contr_datumondert_km_key,
v_mld_melding_key,
rec.contractdatumondert_key);
v_errorhint := 'Toevoegen v_ink_statusofferteteam_km_key';
mld.upsertmeldingkenmerk (v_ink_statusofferteteam_km_key,
v_mld_melding_key,
rec.statusofferteteam_key);
v_errorhint := 'Toevoegen v_ink_offerteteam_int_km_key';
mld.upsertmeldingkenmerk (v_ink_offerteteam_int_km_key,
v_mld_melding_key,
rec.offerteteam_intake_key);
v_errorhint := 'Toevoegen v_ink_opdrachtwaarde_km_key';
mld.upsertmeldingkenmerk (v_ink_opdrachtwaarde_km_key,
v_mld_melding_key,
rec.opdrachtwaarde_key);
v_errorhint := 'Toevoegen v_ink_actie_km_key';
mld.upsertmeldingkenmerk (v_ink_actie_km_key,
v_mld_melding_key,
rec.actie_key);
v_errorhint := 'Toevoegen v_ink_trajectherzien_km_key';
mld.upsertmeldingkenmerk (v_ink_trajectherzien_km_key,
v_mld_melding_key,
rec.soort_traject_herzien);
END IF;
-- INFORMATIETRAJECT - kenmerkvelden vullen
IF rec.traject_type = 'Informatietraject' THEN
v_errorhint := 'Toevoegen v_inf_bestemdvoor_km_key';
mld.upsertmeldingkenmerk (v_inf_bestemdvoor_km_key,
v_mld_melding_key,
rec.bestemdvoor_key);
v_errorhint := 'Toevoegen v_inf_klantcontactuit_km_key';
mld.upsertmeldingkenmerk (v_inf_klantcontactuit_km_key,
v_mld_melding_key,
rec.klantcontactuiterst_key);
v_errorhint := 'Toevoegen v_inf_trajectinfo_km_key';
mld.upsertmeldingkenmerk (v_inf_trajectinfo_km_key,
v_mld_melding_key,
rec.traject_doorlopen);
v_errorhint := 'Toevoegen v_inf_bijzonderheden_km_key';
mld.upsertmeldingkenmerk (v_inf_bijzonderheden_km_key,
v_mld_melding_key,
rec.bijzonderheden_key);
v_errorhint := 'Toevoegen v_inf_contractnrsynerg_km_key';
mld.upsertmeldingkenmerk (v_inf_contractnrsynerg_km_key,
v_mld_melding_key,
rec.contractnrsynergie_key);
v_errorhint := 'Toevoegen v_inf_afd_aanvraagvoor_km_key';
mld.upsertmeldingkenmerk (v_inf_afd_aanvraagvoor_km_key,
v_mld_melding_key,
rec.afdelingaanvraagvoor_key);
v_errorhint := 'Toevoegen v_inf_soortbinnenkomst_km_key';
mld.upsertmeldingkenmerk (v_inf_soortbinnenkomst_km_key,
v_mld_melding_key,
rec.soortbinnenkomst_key);
-- Tabblad Uitvoering en Afhandeling
v_errorhint := 'Toevoegen v_inf_klantcontactgehad_km_key';
mld.upsertmeldingkenmerk (v_inf_klantcontactgehad_km_key,
v_mld_melding_key,
rec.klantcontactgehad_key);
v_errorhint := 'Toevoegen v_inf_klantcontactdatum_km_key';
mld.upsertmeldingkenmerk (v_inf_klantcontactdatum_km_key,
v_mld_melding_key,
rec.klantcontactdatum_key);
v_errorhint := 'Toevoegen v_inf_actie_km_key';
mld.upsertmeldingkenmerk (v_inf_actie_km_key,
v_mld_melding_key,
rec.actie_key);
v_errorhint := 'Toevoegen v_inf_aantaluren_km_key';
mld.upsertmeldingkenmerk (v_inf_aantaluren_km_key,
v_mld_melding_key,
rec.aantaluren_key);
v_errorhint := 'Toevoegen v_inf_trajectherzien_km_key';
mld.upsertmeldingkenmerk (v_inf_trajectherzien_km_key,
v_mld_melding_key,
rec.soort_traject_herzien);
END IF;
-- STAP 3: Bijlagen-mapping aanpassen..
v_bijlagen_uit_wf := 'Bestanden:' || CHR (13) || CHR (10) ;
v_count_bijlage := 0 ;
FOR rec IN b (v_mld_melding_start_key)
LOOP
v_count_bijlage := v_count_bijlage + 1 ;
v_bijlagen_uit_wf:=v_bijlagen_uit_wf || TO_CHAR(v_count_bijlage) || '. ' || rec.fac_bijlagen_filename || CHR (13) || CHR (10) ;
v_errorhint := 'Toevoegen v_bijlagen_uit_wf_km_key';
mld.upsertmeldingkenmerk (v_bijlagen_uit_wf_km_key,
v_mld_melding_key,
v_bijlagen_uit_wf);
v_errorhint := 'INSERTEN van een bijlage-record';
-- PROCEDURE copyflexbijlage ( p_module IN VARCHAR2 -- MLD
-- , p_refkey IN NUMBER -- nieuw aangemaakte melding
-- , p_kenmerk_key IN NUMBER -- folder_key bij deze nieuwe melding
-- , p_from_bijlagen_key IN NUMBER ) -- fac_bijlagen_key va de root
BEGIN flx.copyflexbijlage('MLD', v_mld_melding_key, v_bijlagen_folder_km_key, rec.fac_bijlagen_key); END;
END LOOP;
-- STAP 4: Updaten van de omgezette WF-meldingen.
---- Tekstmatig in afhandelingstekst + koppeling/verwijzing naar BT-key + Trackingsinfo
v_errorhint := 'Updaten opmerkingsveld in WF-melding';
UPDATE mld_melding
SET mld_melding_opmerking = mld_melding_opmerking || CHR (13) || CHR(13) || CHR (10) || to_char(sysdate,'DD-MM-YYYY') || ': omgezet naar Behandelteam-melding ' || v_mld_melding_key
WHERE mld_melding_key = v_mld_melding_start_key ;
v_errorhint := 'Toevoegen tracking aan WF-melding ' || v_mld_melding_start_key ;
fac.trackaction ('MLDUPD', v_mld_melding_start_key, 3, NULL, 'Conversie naar Behandelteam-melding ivm nieuwe meldingsstructuur');
IF rec.traject_type = 'Inkooptraject' THEN
v_errorhint := 'Toevoegen aan inkoop-trajectmelding keuzelijst WF_conversie met indicatie omzetting gereed';
mld.upsertmeldingkenmerk (v_ink_wfmld_omgezet_km_key,
v_mld_melding_start_key,
v_wfmld_omgezet_key);
END IF;
IF rec.traject_type = 'Informatietraject' THEN
v_errorhint := 'Toevoegen aan informatie-trajectmelding keuzelijst WF_conversie met indicatie omzetting gereed';
mld.upsertmeldingkenmerk (v_inf_wfmld_omgezet_km_key,
v_mld_melding_start_key,
v_wfmld_omgezet_key);
END IF;
COMMIT;
v_count_omgezet := v_count_omgezet + 1;
END LOOP;
fac.writelog (p_applname,
'S',
'',
'Aantal WF-meldingen succesvol omgezet naar BT-melding: ' || TO_CHAR(v_count_omgezet) || ' van de ' || TO_CHAR(v_count_totaal) );
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes;
fac.writelog (p_applname,
'E',
v_errormsg,
v_errorhint || ' Goed omgezet: ' || TO_CHAR(v_count_omgezet) || 'Fout bij: ' || v_aanduiding);
END ubrh_select_conversie_wf;
/
CREATE OR REPLACE PROCEDURE ubrh_import_topdesk (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT *
FROM fac_imp_file
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
v_newline VARCHAR2 (1000); -- Import line
v_field VARCHAR2 (100); -- Import field
v_fielddelimitor VARCHAR2 (1) := ';'; -- Field seperator
v_count_import NUMBER (10);
v_count NUMBER;
v_errormsg VARCHAR2 (2000);
v_errorhint VARCHAR2 (2000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (2000);
-- De importvelden vanuit Topdesk
v_meldingnummer VARCHAR2 (100);
v_naam_aanmelder VARCHAR2 (100);
v_extern_nummer VARCHAR2 (100);
v_aanmaker_kaart VARCHAR2 (100);
v_naam_behandelaar VARCHAR2 (100);
v_datumtijd_van_aanmaak VARCHAR2 (100);
v_afgemeld VARCHAR2 (100);
v_korte_omschrijving VARCHAR2 (100);
v_soort_binnenkomst VARCHAR2 (100);
v_soort_melding VARCHAR2 (100);
v_status VARCHAR2 (100);
v_streefdatum VARCHAR2 (100);
v_categorie VARCHAR2 (100);
v_subcategorie VARCHAR2 (100);
v_urgentie VARCHAR2 (100);
header_found BOOLEAN := FALSE;
BEGIN
-- Eerder ge<67>mporteerde regels verwijderen
DELETE FROM ubrh_imp_topdesk;
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
fac.imp_getfield (v_newline, v_fielddelimitor, v_meldingnummer);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_aanmelder);
fac.imp_getfield (v_newline, v_fielddelimitor, v_extern_nummer);
fac.imp_getfield (v_newline, v_fielddelimitor, v_aanmaker_kaart);
fac.imp_getfield (v_newline, v_fielddelimitor, v_naam_behandelaar);
fac.imp_getfield (v_newline, v_fielddelimitor, v_categorie);
fac.imp_getfield (v_newline,
v_fielddelimitor,
v_datumtijd_van_aanmaak);
fac.imp_getfield (v_newline, v_fielddelimitor, v_afgemeld);
fac.imp_getfield (v_newline, v_fielddelimitor, v_korte_omschrijving);
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_binnenkomst);
fac.imp_getfield (v_newline, v_fielddelimitor, v_soort_melding);
fac.imp_getfield (v_newline, v_fielddelimitor, v_status);
fac.imp_getfield (v_newline, v_fielddelimitor, v_streefdatum);
fac.imp_getfield (v_newline, v_fielddelimitor, v_subcategorie);
fac.imp_getfield (v_newline, v_fielddelimitor, v_urgentie);
-- Skip until the header is found
IF (header_found = FALSE)
THEN
IF UPPER (v_meldingnummer) = 'MELDINGNUMMER'
AND UPPER (v_naam_aanmelder) = 'NAAM AANMELDER'
AND UPPER (v_extern_nummer) = 'EXTERN NUMMER'
AND UPPER (v_aanmaker_kaart) = 'AANMAKER VAN DE KAART'
AND UPPER (v_naam_behandelaar) = 'BEHANDELAAR'
AND UPPER (v_categorie) = 'CATEGORIE'
AND UPPER (v_datumtijd_van_aanmaak) =
'DATUM / TIJD VAN AANMAAK'
AND UPPER (v_afgemeld) = 'DATUM AFGEMELD'
AND UPPER (v_korte_omschrijving) =
'KORTE OMSCHRIJVING (DETAILS)'
AND UPPER (v_soort_binnenkomst) = 'SOORT BINNENKOMST'
AND UPPER (v_soort_melding) = 'SOORT MELDING'
AND UPPER (v_status) = 'STATUS'
AND UPPER (v_streefdatum) = 'STREEFDATUM'
AND UPPER (v_subcategorie) = 'SUBCATEGORIE'
AND UPPER (v_urgentie) = 'URGENTIE'
THEN
header_found := TRUE;
END IF;
ELSE
INSERT INTO ubrh_imp_topdesk (meldingnummer,
naam_aanmelder,
extern_nummer,
aanmaker_kaart,
behandelaar,
datum_aanmaak,
datum_afgemeld,
korte_omschrijving,
soort_binnenkomst,
soort_melding,
status,
streefdatum,
categorie,
subcategorie,
urgentie)
VALUES (v_meldingnummer,
v_naam_aanmelder,
SUBSTR (v_extern_nummer, 1, 30),
v_aanmaker_kaart,
v_naam_behandelaar,
fac.safe_to_date (v_datumtijd_van_aanmaak,
'YYYY-MM-DD HH24:MI'),
fac.safe_to_date (v_afgemeld,
'YYYY-MM-DD HH24:MI'),
v_korte_omschrijving,
v_soort_binnenkomst,
v_soort_melding,
v_status,
fac.safe_to_date (v_streefdatum,
'YYYY-MM-DD HH24:MI'),
v_categorie,
v_subcategorie,
v_urgentie);
v_count_import := v_count_import + 1;
END IF;
END;
END LOOP ;
--- MELDING KEY ERBIJ HALEN
UPDATE ubrh_imp_topdesk u
SET u.subcategorie_key =
(SELECT DISTINCT mld_stdmelding_key
FROM mld_stdmelding m, ins_tab_discipline d
WHERE m.mld_ins_discipline_key = d.ins_discipline_key
AND d.ins_discipline_module = 'MLD'
AND UPPER (d.ins_discipline_omschrijving) =
UPPER (u.categorie)
AND m.mld_stdmelding_upper =
UPPER (u.subcategorie)) ;
--- INDIEN GEEN MELDINGKEY ACHTERHAALD KAN WORDEN TERUGVALLEN OP DUMMY MELDING
--- MLD KEY ACCEPT = 321, PROD = 61, dus voor het gemak op de omschrijving van de stdmelding
UPDATE ubrh_imp_topdesk
SET subcategorie_key =
(SELECT mld_stdmelding_key
FROM mld_stdmelding
WHERE mld_stdmelding_upper = 'REST TD')
WHERE subcategorie_key IS NULL;
--- STATUS KEY
UPDATE ubrh_imp_topdesk
SET status_key =
DECODE (UPPER (status),
'NIEUW', 2,
'DIGIINKOOP - LOGIUS', 7,
'IN BEHANDELING', 4,
'WACHT OP GEBRUIKER', 4,
'AFGEMELD', 5,
'INGEPLAND', 4,
'WACHT OP LEVERANCIER', 4);
--- PRIO KEY
UPDATE ubrh_imp_topdesk
SET urgentie_key =
DECODE (UPPER (urgentie),
'LAAG', 4,
'NORMAAL', 3,
'HOOG', 2,
'URGENT',1
);
--- PERSLID KEY AANMELDER
UPDATE ubrh_imp_topdesk u
SET u.melderkey =
(SELECT MAX (p.prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) = UPPER (u.naam_aanmelder))
WHERE EXISTS
(SELECT 1
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) = UPPER (u.naam_aanmelder)) ;
--- PERSLID KEY AANMAKER VD KAART
UPDATE ubrh_imp_topdesk u
SET aanmaker_kaartkey =
(SELECT MAX (p.prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (u.aanmaker_kaart))
WHERE EXISTS
(SELECT 1
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) = UPPER (u.aanmaker_kaart)) ;
-- PERSLID KEY BEHANDELAAR
UPDATE ubrh_imp_topdesk u
SET behandelaar_key =
(SELECT MAX (p.prs_perslid_key)
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) =
UPPER (u.behandelaar))
WHERE EXISTS
(SELECT 1
FROM prs_perslid p
WHERE UPPER (p.prs_perslid_naam) = UPPER (u.behandelaar)) ;
-- KEY SOORT BINNENKOMST ERBIJ HALEN
UPDATE ubrh_imp_topdesk u
SET soort_binnenkomstkey =
(SELECT udata.fac_usrdata_key
FROM fac_usrtab utab, fac_usrdata udata
WHERE UPPER (fac_usrtab_omschrijving) =
'SOORT BINNENKOMST'
AND UPPER (u.soort_binnenkomst) =
fac_usrdata_upper
AND udata.fac_usrtab_key = utab.fac_usrtab_key) ;
IF (header_found = FALSE)
THEN
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_import_key,
'S',
'Aantal ingelezen regels: ' || TO_CHAR (v_count_import),
'');
END IF;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS_I (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'');
END;
/
CREATE OR REPLACE PROCEDURE ubrh_update_topdesk (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT * FROM ubrh_imp_topdesk;
v_count_import NUMBER (10);
v_errormsg VARCHAR2 (2000);
v_errorhint VARCHAR2 (2000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (2000);
v_melding_key NUMBER (10);
v_kenmerk_key NUMBER (10);
v_lange_oms VARCHAR2 (4000);
BEGIN
v_count_import := 0;
FOR rec1 IN c1
LOOP
BEGIN
v_errorhint :=
'Aanmaken melding extern nummer: ' || rec1.meldingnummer;
INSERT INTO mld_melding (mld_melding_externnr,
mld_melding_module,
mld_melding_onderwerp,
mld_meldbron_key,
mld_melding_datum,
-- mld_melding_omschrijving,
mld_melding_behandelaar_key,
mld_stdmelding_key,
prs_perslid_key,
mld_melding_status,
mld_melding_einddatum,
mld_melding_spoed)
VALUES (rec1.meldingnummer,
'MLD',
SUBSTR (rec1.korte_omschrijving, 1, 80), --lang genoeg?
6,
rec1.datum_aanmaak,
COALESCE (rec1.behandelaar_key, 3),
rec1.subcategorie_key,
COALESCE (rec1.melderkey,
rec1.aanmaker_kaartkey,
rec1.behandelaar_key,
3),
rec1.status_key,
rec1.streefdatum,
rec1.urgentie_key)
RETURNING mld_melding_key
INTO v_melding_key;
v_errorhint :=
'Zoek kenmerk (extern nummer (logius) extern nummer: '
|| rec1.meldingnummer;
SELECT MAX (km.mld_kenmerk_key)
INTO v_kenmerk_key
FROM mld_srtkenmerk sk,
mld_kenmerk km,
mld_stdmelding sm,
ins_tab_discipline d
WHERE sk.mld_srtkenmerk_upper = 'EXTERN NUMMER (LOGIUS)'
AND sk.mld_srtkenmerk_key = km.mld_srtkenmerk_key
AND km.mld_kenmerk_niveau = 'T'
AND km.mld_stdmelding_key = d.ins_srtdiscipline_key
AND d.ins_discipline_key = sm.mld_ins_discipline_key
AND km.mld_kenmerk_verwijder IS NULL
AND sm.mld_stdmelding_key = rec1.subcategorie_key;
v_errorhint :=
'Aanmaak kenmerk (extern nummer (logius) extern nummer: '
|| rec1.meldingnummer;
IF v_kenmerk_key IS NOT NULL AND rec1.extern_nummer IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key,
v_kenmerk_key,
rec1.extern_nummer);
END IF;
v_errorhint :=
'Zoek kenmerk (soort binnenkomst) extern nummer: '
|| rec1.meldingnummer;
SELECT MAX (km.mld_kenmerk_key)
INTO v_kenmerk_key
FROM mld_srtkenmerk sk,
mld_kenmerk km,
mld_stdmelding sm,
ins_tab_discipline d
WHERE sk.mld_srtkenmerk_upper = 'SOORT BINNENKOMST'
AND sk.mld_srtkenmerk_key = km.mld_srtkenmerk_key
AND km.mld_kenmerk_niveau = 'T'
AND km.mld_stdmelding_key = d.ins_srtdiscipline_key
AND d.ins_discipline_key = sm.mld_ins_discipline_key
AND km.mld_kenmerk_verwijder IS NULL
AND sm.mld_stdmelding_key = rec1.subcategorie_key;
v_errorhint :=
'Aanmaak kenmerk (soort binnenkomst) extern nummer: '
|| rec1.meldingnummer;
IF v_kenmerk_key IS NOT NULL
AND rec1.soort_binnenkomstkey IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key,
mld_kenmerk_key,
mld_kenmerkmelding_waarde)
VALUES (v_melding_key,
v_kenmerk_key,
rec1.soort_binnenkomstkey);
END IF;
-- De omschrijving van de melding moet, ivm de mogelijke lengte, uit de UBRH tabel met lange omschrijvingen gehaald worden
-- Het gaat daarbij alleen om meldingen die uit Topdesk komen, dus matchen op een externnummer
--SELECT MAX(TO_CHAR(SUBSTR (lange_omschrijving, 1, 4000)))
-- INTO v_lange_oms
-- FROM ubrh_imp_mld_omschrijvingen o
-- WHERE o.meldingnummer = rec1.meldingnummer;
--UPDATE mld_melding m
-- SET mld_melding_omschrijving = v_lange_oms
-- WHERE mld_melding_key = v_melding_key;
-- bij meldingen uit Topdesk met de status wacht op gebruiker of wacht op leverancier
-- moet het bolletje ''reactie melder gevraagd" aangezet worden
IF rec1.status = 'WACHT OP GEBRUIKER' OR rec1.status = 'WACHT OP LEVERANCIER'
THEN
UPDATE mld_melding m
SET m.mld_melding_flag = 1
WHERE m.mld_melding_key = v_melding_key;
END IF;
v_count_import := v_count_import + 1;
COMMIT;
END;
END LOOP;
COMMIT;
fac.imp_writelog (
p_import_key,
'S',
'Aantal ingelezen regels: ' || TO_CHAR (v_count_import),
'');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS_U (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
END ubrh_update_topdesk;
/
------ payload end ------
SET DEFINE OFF
BEGIN
adm.systrackscriptId ('$Id$',
0);
END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile