Files
Customer/MNNL/mnnl.sql
Maarten van der Heide 5bda27f5a3 MNNL#71193 M2M-HR/Zetten Gereed-datum+SLA-notijob/CUST10 op SLA_DREMPEL3
svn path=/Customer/trunk/; revision=55623
2022-04-19 13:26:30 +00:00

7645 lines
348 KiB
MySQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific sql statements for the FACILITOR database
DEFINE thisfile = 'MNNL.SQL'
DEFINE dbuser = '^MNNL'
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 ------
-- ACTIVE DIRECTORY
CREATE OR REPLACE PROCEDURE mnnl_import_prs (p_import_key IN NUMBER)
AS
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
v_errorhint := 'Generieke import';
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure.
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend'.)
prs.import_perslid (p_import_key,
'8;0;0;0;0;0;5;4;0;3;' ||
'0;0;0;0;0;7;0;6;0;0;' ||
'3;1;0;0;0;0;0;0;0;0;' ||
'0;0;0;0;0;0;0;0;0;0;' ||
'0;0;0;0;0;0',
--1 2 3 4 5 6 7 8
'"sAMAccountName";"name";"givenname";"sn";"department";"mail";"telephoneNumber";"L"%'
);
v_errorhint := 'Verrijken import';
-- Ontbrekende/afwijkende zaken rechtzetten:
-- - vul functie met 'Onbekend'
-- - vul titel/geslacht/personeelsnummer/mobiel/dienstverband met huidige waarde (om wissen te voorkomen)
UPDATE fac_imp_perslid p
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = 1),
(prs_perslid_titel, prs_perslid_geslacht, prs_perslid_nr, prs_perslid_mobiel, prs_perslid_dienstverband) =
(SELECT MAX(prs_perslid_titel), MAX(prs_perslid_geslacht), MAX(prs_perslid_nr), MAX(prs_perslid_mobiel), MAX(prs_perslid_dienstverband)
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin = UPPER(p.prs_perslid_oslogin))
WHERE fac_import_key = p_import_key;
COMMIT;
-- Werkplek toekennen, door locatiecode, gebouwcode, verdiepingvolgnr en ruimtenr in importabel te zetten.
-- Heeft de persoon al een WP op deze locatie? Dan kiezen we die, met als netto resultaat dat er niets gebeurt.
-- Anders bepalen we de alfabetisch eerste ruimte op locatie en kiezen we die.
UPDATE fac_imp_perslid ip
SET (alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr) =
(SELECT rg.alg_locatie_code, rg.alg_gebouw_upper, rg.alg_verdieping_volgnr, rg.alg_ruimte_nr
FROM alg_v_ruimte_gegevens rg
WHERE alg_ruimte_aanduiding = COALESCE(
-- Eventuele bestaande werkplek op locatie.
(SELECT MAX(rg.alg_ruimte_aanduiding)
FROM prs_perslid p, prs_perslidwerkplek pw, prs_werkplek w, alg_v_ruimte_gegevens rg
WHERE p.prs_perslid_key = pw.prs_perslid_key
AND pw.prs_werkplek_key = w.prs_werkplek_key
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
AND rg.alg_locatie_omschrijving = ip.alg_locatie_code
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin)),
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste).
(SELECT MIN(alg_ruimte_aanduiding)
FROM alg_v_ruimte_gegevens
WHERE alg_locatie_omschrijving = ip.alg_locatie_code
AND UPPER(alg_ruimte_nr) = '_WP')))
WHERE fac_import_key = p_import_key;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
END mnnl_import_prs;
/
CREATE OR REPLACE PROCEDURE mnnl_update_prs (p_import_key IN NUMBER)
IS
-- Verwijderen personen *binnen MN* die niet meer in importbestand voorkomen.
CURSOR c_del
IS
SELECT p.prs_perslid_key
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 5 -- MN
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid
WHERE UPPER (prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
ORDER BY 1;
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
CURSOR c_no_default
IS
SELECT '[' || p.prs_perslid_login || '] ' aanduiding, p.prs_perslid_key
FROM prs_v_aanwezigperslid p, fac_v_aanwezigusrdata ud
WHERE ud.fac_usrtab_key = 721 -- PRS-imp. vs. FE
AND ud.fac_usrdata_omschr LIKE 'Login%' -- Op login _Default afnemen!
AND p.prs_perslid_oslogin LIKE REPLACE (ud.fac_usrdata_code, '_', '\_') || '%' ESCAPE '\' -- ' tbv. opmaak
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- ' tbv. opmaak
UNION ALL
SELECT '[' || p.prs_perslid_login || '] ' aanduiding, p.prs_perslid_key
FROM prs_v_aanwezigperslid p, fac_v_aanwezigusrdata ud
WHERE ud.fac_usrtab_key = 721 -- PRS-imp. vs. FE
AND ud.fac_usrdata_omschr LIKE 'Afdeling%' -- Op afdeling _Default afnemen!
AND TO_CHAR (p.prs_afdeling_key) = ud.fac_usrdata_code
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- ' tbv. opmaak
ORDER BY 2;
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
BEGIN
-- Generic update
SELECT COUNT(*) INTO v_count FROM fac_imp_perslid;
IF v_count < 300
THEN
fac.imp_writelog (p_import_key, 'E',
'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')',
'Zie specificatie');
RETURN;
END IF;
-- Verwijderen personen *binnen MN* die niet meer in importbestand voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
-- p_sleutelkolom Bevat het veld die als sleutel bij de import dient
-- LOGIN - logincode
-- p_alg_type Werkplekken binnen dit niveau verwijderen
-- NULL - geen werkplekken verwijderen
-- A - altijd vaste werkplek verwijderen
-- R,V,G,L,D - werkplek(en) op dit niveau verwijderen
prs.update_perslid (p_import_key, 'LOGIN', NULL);
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
FOR rec IN c_no_default
LOOP
BEGIN
v_errorhint := 'Fout afnemen _Default';
DELETE FROM fac_gebruikersgroep
WHERE fac_groep_key = 1 -- _Default
AND prs_perslid_key = rec.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, v_errorhint);
COMMIT;
END;
END LOOP;
-- Afnemen 2101=_Default_VB van medewerkers niet onder VB (op niveau 1)!
v_errorhint := 'Fout afnemen _Default_VB';
DELETE FROM fac_gebruikersgroep gg
WHERE gg.fac_groep_key = 2101 -- _Default_VB
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = 421 -- Afdeling-1 met code=VB!
AND p.prs_perslid_key = gg.prs_perslid_key);
COMMIT;
-- Toekennen 2101=_Default_VB aan medewerkers onder VB (op niveau 1)!
v_errorhint := 'Fout toekennen _Default_VB';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 2101, p.prs_perslid_key -- _Default_VB
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_oslogin IS NOT NULL
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = 421 -- Afdeling-1 met code=VB!
AND NOT EXISTS -- Niet al in _Default_VB!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 2101 -- _Default_VB
AND prs_perslid_key = p.prs_perslid_key);
COMMIT;
END mnnl_update_prs;
/
-- KOPPELING SENTIDO
CREATE OR REPLACE VIEW mnnl_v_api_sentido
AS
SELECT TO_CHAR(rr.res_rsv_ruimte_van, 'YYYYMMDD-HH24MI')||TO_CHAR(rr.res_rsv_ruimte_tot, ',YYYYMMDD-HH24MI') srt,
rr.res_reservering_key||'/'||rr.res_rsv_ruimte_volgnr nummer,
TO_CHAR(rr.res_rsv_ruimte_van, 'YYYY-MM-DD HH24:MI:SS') van,
TO_CHAR(rr.res_rsv_ruimte_tot, 'YYYY-MM-DD HH24:MI:SS') tot,
rr.res_rsv_ruimte_omschrijving omschrijving,
pf.prs_perslid_naam_full host,
TRIM(r.res_ruimte_nr) ruimte,
r.res_ruimte_key ruimte_key
FROM res_rsv_ruimte rr,
res_ruimte_opstelling ro,
res_ruimte r,
prs_v_perslid_fullnames pf
WHERE ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
AND r.res_ruimte_key = ro.res_ruimte_key
AND pf.prs_perslid_key = rr.res_rsv_ruimte_host_key
AND rr.res_rsv_ruimte_verwijder IS NULL
AND rr.res_status_fo_key NOT IN (3, 4)
AND COALESCE(rr.res_rsv_ruimte_bezoekers_shown, rr.res_rsv_ruimte_noshow) IS NULL
AND TRUNC(rr.res_rsv_ruimte_van) BETWEEN TRUNC(SYSDATE)
AND TRUNC(SYSDATE+3);
-- MNNL#35290: Rapportje met res_ruimte-gegevens, inclusief volledige URL naar de room booking pagina,
-- voor door Sentido te genereren QR-code
CREATE OR REPLACE VIEW mnnl_v_rap_ruimtes_sentido
AS
SELECT res_ruimte_nr ruimte_nr,
res_ruimte_key ruimte_key,
'https://mnnl.facilitor.nl/?u=MYsemfcDEbLOXShZ&'||'res_ruimte_key='||res_ruimte_key ruimte_url
FROM res_v_aanwezigruimte
ORDER BY res_ruimte_nr;
--- MNNL#32852
--- Rapport tbv cateraar Radarport. Alleen ruimten uit catalogus Radarport BG (key 621)
--- En catering in Gebouw Radarport behalve catalogi Servies R9 aanvullen (key 321 ) en Koffie en thee (key 43)
CREATE OR REPLACE VIEW MNNL_V_RAP_CAT_RADAR
(
DATUM,
VAN,
TOT,
RESNR,
FCLT_H_RES_KEY,
RUIMTE,
FCLT_F_ACTIVITEIT,
OMSCHRIJVING,
GASTHEER_VROUW,
TELEFOON,
AANTAL_PERSONEN,
VOORZIENINGEN
)
AS
SELECT RRR.RES_RSV_RUIMTE_VAN,
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') Van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
rrr.res_rsv_ruimte_key,
r2a.ruimte_nr,
ra.res_activiteit_omschrijving Activiteit,
rrr.res_rsv_ruimte_omschrijving Omschrijving,
pf.prs_perslid_naam_full Gastheer_vrouw,
p.prs_perslid_telefoonnr,
rrr.res_rsv_ruimte_bezoekers pers,
voorzieningen
FROM res_rsv_ruimte rrr,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
res_activiteit ra,
prs_v_perslid_fullnames pf,
prs_perslid p,
( SELECT res_rsv_ruimte_key,
LISTAGG (voorziening, CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY voorziening)
AS voorzieningen
FROM (SELECT res_rsv_ruimte_key,
res_deel_omschrijving voorziening
FROM res_deel rd, res_rsv_deel rrd
WHERE RES_RSV_DEEL_verwijder IS NULL
AND rd.res_deel_key = rrd.res_deel_key
AND res_rsv_ruimte_key IS NOT NULL
AND res_discipline_key != 81
UNION ALL
SELECT res_rsv_ruimte_key,
TO_CHAR (rra.res_rsv_artikel_aantal)
|| ' * '
|| res_artikel_omschrijving
voorziening
FROM res_artikel ra, res_rsv_artikel rra
WHERE RES_RSV_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key)
GROUP BY res_rsv_ruimte_key) voorz,
( SELECT res_ruimte_opstel_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
AND rr.res_discipline_key = 621
GROUP BY res_ruimte_opstel_key) r2a
WHERE rrr.res_ruimte_opstel_key = r2a.res_ruimte_opstel_key
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
AND TRUNC (SYSDATE + 366)
AND r.alg_ruimte_key = r2a.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND ra.res_activiteit_key = rrr.res_activiteit_key
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND voorz.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_Verwijder IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key
UNION ALL
SELECT RRR.RES_RSV_RUIMTE_VAN,
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') Van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
rrr.res_rsv_ruimte_key,
r2a.ruimte_nr,
ra.res_activiteit_omschrijving Activiteit,
rrr.res_rsv_ruimte_omschrijving Omschrijving,
pf.prs_perslid_naam_full Gastheer_vrouw,
p.prs_perslid_telefoonnr,
rrr.res_rsv_ruimte_bezoekers pers,
voorzieningen
FROM res_rsv_ruimte rrr,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r,
res_activiteit ra,
prs_v_perslid_fullnames pf,
prs_perslid p,
( SELECT res_rsv_ruimte_key,
LISTAGG (voorziening, CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY voorziening)
AS voorzieningen
FROM (SELECT res_rsv_ruimte_key,
TO_CHAR (rra.res_rsv_artikel_aantal)
|| ' * '
|| res_artikel_omschrijving
voorziening
FROM res_artikel ra, res_rsv_artikel rra
WHERE RES_RSV_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key
AND ra.res_discipline_key NOT IN (321, 43))
GROUP BY res_rsv_ruimte_key) voorz,
( SELECT res_ruimte_opstel_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
AND rr.res_discipline_key != 621
GROUP BY res_ruimte_opstel_key) r2a
WHERE rrr.res_ruimte_opstel_key = r2a.res_ruimte_opstel_key
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
AND TRUNC (SYSDATE + 366)
AND r.alg_ruimte_key = r2a.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_gebouw_key = 1
AND ra.res_activiteit_key = rrr.res_activiteit_key
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND voorz.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_Verwijder IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key
UNION ALL
SELECT RRR.RES_RSV_RUIMTE_VAN,
TO_CHAR (rra.res_rsv_artikel_levering, 'HH24:MI') Van,
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
rrr.res_rsv_ruimte_key,
alg_ruimte_nr,
ra.res_activiteit_omschrijving Activiteit,
rrr.res_rsv_ruimte_omschrijving Omschrijving,
pf.prs_perslid_naam_full Gastheer_vrouw,
p.prs_perslid_telefoonnr,
rrr.res_rsv_ruimte_bezoekers pers,
TO_CHAR (rra.res_rsv_artikel_aantal)
|| ' * '
|| res_artikel_omschrijving
voorziening
FROM res_artikel ra,
res_rsv_artikel rra,
res_rsv_ruimte rrr,
alg_ruimte r,
alg_verdieping v,
prs_v_perslid_fullnames pf,
res_activiteit ra,
prs_perslid p
WHERE RES_RSV_artikel_verwijder IS NULL
AND ra.res_artikel_key = rra.res_artikel_key
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
AND TRUNC (SYSDATE + 366)
AND rrr.res_rsv_ruimte_verwijder IS NULL
AND res_ruimte_opstel_key IS NULL
AND rrr.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = 1
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
AND ra.res_activiteit_key = rrr.res_activiteit_key
AND ra.res_discipline_key NOT IN (321, 43)
AND p.prs_perslid_key = pf.prs_perslid_key;
-- MNNL#40507: Onderstaande views zijn voor de inrichting van de Realtime Monitor
CREATE OR REPLACE VIEW MNNL_V_STAAFDIAGRAM_SLA
(
FCLT_XAS_,
FCLT_YAS_,
FCLT_YAS2_,
FCLT_YAS3_,
FCLT_YAS4_,
FCLT_SORT
)
AS
SELECT "TO_CHAR(DAG,'DD-MM-YYYY')",
"'Voorraad ITL'",
"'Binnen SLA ITL'",
"'Voorraad ONB'",
"'Binnen SLA ONB'",
dag
FROM (SELECT TO_CHAR (dag, 'DD-MM-YYYY'),
mld_type mld_type,
mld_melding_key,
dag
FROM (SELECT m.mld_melding_key,
mt.mld_type,
mld_melding_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_srtnotificatie_key IN (38, 44)
AND fac_tracking_refkey = m.mld_melding_key)
datum_afgemeld,
sla_eind
FROM mld_melding m,
(SELECT mld_melding_key,
'Binnen SLA ONB' mld_type,
mld.geteinddatum (mld_melding_key)
+ COALESCE (
m.mld_melding_t_respijt.tijdsduur,
0)
sla_eind
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key =
std.mld_stdmelding_key
AND std.mld_ins_discipline_key IN
('986',
'1002',
'1008',
'1018',
'1026',
'1028',
'1030',
'1040',
'1062',
'1063',
'1081',
'1032',
'984')
UNION ALL
SELECT mld_melding_key,
'Binnen SLA ITL' mld_type,
mld.geteinddatum (mld_melding_key)
+ COALESCE (
m.mld_melding_t_respijt.tijdsduur,
0)
sla_eind
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key =
std.mld_stdmelding_key
AND std.mld_ins_discipline_key IN
('982',
'996',
'998',
'1000',
'1016',
'1024',
'1038',
'1046',
'1061')) mt
WHERE m.mld_melding_key = mt.mld_melding_key) m,
( SELECT TRUNC (SYSDATE) - (ROWNUM - 1) dag
FROM DUAL
CONNECT BY LEVEL <= 10) v
WHERE (TRUNC (datum_afgemeld) > dag OR datum_afgemeld IS NULL)
AND TO_CHAR (dag, 'D') NOT IN ('1', '7')
AND TRUNC (mld_melding_datum) <= dag
AND sla_eind >= dag
AND sla_eind >= mld_melding_datum
UNION ALL
SELECT TO_CHAR (dag, 'DD-MM-YYYY'),
mld_type,
mld_melding_key,
dag
FROM (SELECT m.mld_melding_key,
mt.mld_type,
mld_melding_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_srtnotificatie_key IN (38, 44)
AND fac_tracking_refkey = m.mld_melding_key)
datum_afgemeld
FROM mld_melding m,
(SELECT mld_melding_key, 'Voorraad ITL' mld_type
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key =
std.mld_stdmelding_key
AND std.mld_ins_discipline_key IN
('982',
'996',
'998',
'1000',
'1016',
'1024',
'1038',
'1046',
'1061')
UNION ALL
SELECT mld_melding_key, 'Voorraad ONB' mld_type
FROM mld_melding m, mld_stdmelding std
WHERE m.mld_stdmelding_key =
std.mld_stdmelding_key
AND std.mld_ins_discipline_key IN
('986',
'1002',
'1008',
'1018',
'1026',
'1028',
'1030',
'1040',
'1062',
'1063',
'1081',
'1032',
'984')) mt
WHERE m.mld_melding_key = mt.mld_melding_key) m,
( SELECT TRUNC (SYSDATE) - (ROWNUM - 1) dag
FROM DUAL
CONNECT BY LEVEL <= 10) v
WHERE (TRUNC (datum_afgemeld) > dag OR datum_afgemeld IS NULL)
AND TO_CHAR (dag, 'D') NOT IN ('1', '7')
AND TRUNC (mld_melding_datum) <= dag) PIVOT (COUNT(mld_melding_key)
FOR mld_type
IN ('Voorraad ITL',
'Binnen SLA ITL',
'Voorraad ONB',
'Binnen SLA ONB'));
CREATE OR REPLACE VIEW MNNL_V_INCIDENTEN_BINNEN_SLA
(
FCLT_XAS_WEEKNUMMER,
FCLT_YAS_PERCENTAGE
)
AS
SELECT sub.weeknummer weeknr,
TRUNC (
SUM (DECODE (sub.mtijd, 'ja', 1, 0)) / COUNT (sub.mldkey) * 100)
Percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE WHEN
DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd,
TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IW-IY') weeknummer
FROM mld_stdmelding mst,
mld_melding m,
mld_v_ins_discipline mv,
ins_srtdiscipline isr
WHERE mst.mld_ins_discipline_key = mv.ins_discipline_key
AND isr.ins_srtdiscipline_key = mv.ins_srtdiscipline_key
AND COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)) > SYSDATE - 70
AND isr.ins_srtdiscipline_key = 22 -- Incident
AND m.mld_stdmelding_key = mst.mld_stdmelding_key
AND m.mld_melding_status = 5) sub -- status afgemeld
GROUP BY sub.weeknummer
ORDER BY weeknr;
CREATE OR REPLACE VIEW MNNL_V_INCIDENTEN_TABLE
(
GROEP,
NIEUW,
OPEN,
GESLOTEN,
SLA_PERCENTAGE
)
AS
SELECT 'Werkplek en Servicedesk' Naam,
wsnew.nieuw,
wsopen.open,
wsges.totaal,
wsges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1061', '1016', '1046')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
wsnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1061', '1016', '1046')
AND m.mld_melding_status NOT IN ('1', '5', '6')) wsopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1061', '1016', '1046')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) wsges
UNION
SELECT 'Wintel en Netwerk' Naam,
wnnew.nieuw,
wnopen.open,
wnges.totaal,
wnges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
wnnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
AND m.mld_melding_status NOT IN ('1', '5', '6')) wnopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) wnges
UNION
SELECT 'Oracle Platform' Naam,
opnew.nieuw,
opopen.open,
opges.totaal,
opges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('996', '998')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
opnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('996', '998')
AND m.mld_melding_status NOT IN ('1', '5', '6')) opopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('996', '998')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) opges;
CREATE OR REPLACE VIEW MNNL_V_MDT_INCIDENTEN_TABLE
(
GROEP,
NIEUW,
OPEN,
GESLOTEN,
SLA_PERCENTAGE
)
AS
SELECT 'MDTs Basisadministratie' Naam,
mbanew.nieuw,
mbaopen.open,
mbages.totaal,
mbages.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1030')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mbanew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1030')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mbaopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1030')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mbages
UNION
SELECT 'MDTs Pensioenadministratie' Naam,
mpenew.nieuw,
mpeopen.open,
mpeges.totaal,
mpeges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1008', '1002')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mpenew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1008', '1002')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mpeopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1008', '1002')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mpeges
UNION
SELECT 'MDTs Klantcontact en Portalen' Naam,
mkpnew.nieuw,
mkpopen.open,
mkpges.totaal,
mkpges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1081', '1040')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mkpnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1081', '1040')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mkpopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1081', '1040')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mkpges
UNION
SELECT 'MDTs Verzekeringen' Naam,
mvznew.nieuw,
mvzopen.open,
mvzges.totaal,
mvzges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1018')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mvznew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1018')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mvzopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1018')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mvzges
UNION
SELECT 'MDTs Procesbesturing en integratie' Naam,
mpinew.nieuw,
mpiopen.open,
mpiges.totaal,
mpiges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1028')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mpinew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1028')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mpiopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1028')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mpiges
UNION
SELECT 'MDTs Ontwikkelstraat' Naam,
monnew.nieuw,
monopen.open,
monges.totaal,
monges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1063')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
monnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1063')
AND m.mld_melding_status NOT IN ('1', '5', '6')) monopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1063')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) monges
UNION
SELECT 'MDTs Finance, Directie, Staven en IV' Naam,
mfdnew.nieuw,
mfdopen.open,
mfdges.totaal,
mfdges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1026', '986')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mfdnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1026', '986')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mfdopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1026', '986')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mfdges
UNION
SELECT 'MDTs Data en Reporting' Naam,
mdrnew.nieuw,
mdropen.open,
mdrges.totaal,
mdrges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1062')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
mdrnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1062')
AND m.mld_melding_status NOT IN ('1', '5', '6')) mdropen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1062')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) mdrges
UNION
SELECT 'Vermogensbeheer Informatie Management' Naam,
vimnew.nieuw,
vimopen.open,
vimges.totaal,
vimges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1032')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
vimnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1032')
AND m.mld_melding_status NOT IN ('1', '5', '6')) vimopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('1032')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) vimges
UNION
SELECT 'Document Services' Naam,
dosnew.nieuw,
dosopen.open,
dosges.totaal,
dosges.percentage
FROM (SELECT COUNT (m.mld_melding_key) nieuw
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('984')
AND m.mld_melding_status NOT IN '5'
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
dosnew,
(SELECT COUNT (m.mld_melding_key) open
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('984')
AND m.mld_melding_status NOT IN ('1', '5', '6')) dosopen,
(SELECT COUNT (sub.mldkey) totaal,
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
/ COUNT (sub.mldkey)
* 100)
percentage
FROM (SELECT m.mld_melding_key mldkey,
CASE
WHEN DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'D',
mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'D', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0)
+ DECODE (
mld.getactualuitvoer (m.mld_melding_key).eenheid,
'U',
( (mld.geteinddatum (mld_melding_key)
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
* 24)
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
'U', m.mld_melding_t_respijt.tijdsduur,
NULL), 0),
0) >= 0
THEN
lcl.l ('lcl_yes')
ELSE
lcl.l ('lcl_no')
END mtijd
FROM mld_v_ins_discipline md,
mld_melding m,
mld_stdmelding ms
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
AND md.ins_discipline_key IN ('984')
AND m.mld_melding_status = 5
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
SYSDATE
- 7,
'IYYY-IW')
AND TO_CHAR (
SYSDATE,
'IYYY-IW'))
sub) dosges;
-- MNNL#40849: Thema voor graphics / reserveren flexplekken
CREATE OR REPLACE VIEW mnnl_v_thema_wp_sensor
(
ins_deel_key,
alg_ruimte_key,
waarde
)
AS
SELECT d.ins_deel_key,
d.ins_alg_ruimte_key,
DECODE (rrd.res_rsv_deel_key, NULL, '01', '02')
FROM ins_deel d,
res_deel rd,
(SELECT res_rsv_deel_key, res_deel_key
FROM res_v_aanwezigrsv_deel
WHERE SYSDATE BETWEEN res_rsv_deel_van AND res_rsv_deel_tot) rrd
WHERE d.ins_srtdeel_key = 281
AND d.ins_deel_key = rd.res_ins_deel_key(+)
AND rd.res_deel_key = rrd.res_deel_key(+);
-- MNNL#40905: CMDB-import (Applicatie/Server/Database)!
-- MNNL#41252: CMDB-import nu incl. onderdelen (parent-child)!
CREATE OR REPLACE PROCEDURE mnnl_import_cmdb (p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500);
header_is_valid NUMBER := 0;
v_count_tot NUMBER (10) := 0;
v_count_import NUMBER (10) := 0;
v_ongeldig NUMBER (1);
-- De importvelden:
v_ins_discipline_omschrijving VARCHAR2 (255); -- C30
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
v_ins_srtdeel_code VARCHAR2 (255); -- C10
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
v_ins_deel_opmerking VARCHAR2 (2000); -- C2000
v_prs_afdeling_naam VARCHAR2 (255); -- C15
v_ins_parent_omschrijving VARCHAR2 (255); -- C60
CURSOR c1
IS
SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM fac_imp_ins;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
fac.imp_getfield (v_newline, c_delim, v_ins_parent_omschrijving);
v_aanduiding :=
'['
|| v_ins_discipline_omschrijving
|| '|'
|| v_ins_srtgroep_omschrijving
|| '|'
|| v_ins_srtdeel_code
|| '|'
|| v_ins_srtdeel_omschrijving
|| '|'
|| v_ins_deel_omschrijving
|| '|'
|| v_prs_afdeling_naam
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTOMSCHRIJVING'
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
--AND UPPER (v_ins_parent_omschrijving) = 'PARENT'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Discipline ongeldig; ongedefinieerd of te lang';
v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving);
IF v_ins_discipline_omschrijving IS NULL OR LENGTH (v_ins_discipline_omschrijving) > 30
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Groep ongeldig; ongedefinieerd of te lang';
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
IF v_ins_srtgroep_omschrijving IS NULL OR LENGTH (v_ins_srtgroep_omschrijving) > 60
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Soortcode ongeldig; ongedefinieerd of te lang';
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 100
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Soort ongeldig; ongedefinieerd of te lang';
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
IF v_ins_srtdeel_omschrijving IS NULL OR LENGTH (v_ins_srtdeel_omschrijving) > 100
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Objectid ongeldig; ongedefinieerd of te lang';
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
IF v_ins_deel_omschrijving IS NULL OR LENGTH (v_ins_deel_omschrijving) > 60
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Objectopmerking te lang';
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
IF LENGTH (v_ins_deel_opmerking) > 2000
THEN
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 2000);
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Opmerking wordt afgekapt!');
END IF;
--
v_errormsg := 'Afdelingscode ongeldig; ongedefinieerd of te lang';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
IF v_prs_afdeling_naam IS NULL OR LENGTH (v_prs_afdeling_naam) > 15
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Parentid te lang';
v_ins_parent_omschrijving := TRIM (v_ins_parent_omschrijving);
IF LENGTH (v_ins_parent_omschrijving) > 60
THEN
v_ins_parent_omschrijving := NULL;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Parentid wordt genegeerd!');
END IF;
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_opmerking,
prs_perslid_matchcode,
prs_perslid_matchwaarde,
ins_kenmerkwaarde1)
VALUES (v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
v_ins_srtdeel_code,
v_ins_srtdeel_omschrijving,
v_ins_deel_omschrijving,
v_ins_deel_opmerking,
'A',
v_prs_afdeling_naam,
v_ins_parent_omschrijving);
COMMIT;
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
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', 'CMDB-objecten/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'CMDB-objecten/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
END IF;
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces CMDB-objecten afgebroken!');
END mnnl_import_cmdb;
/
CREATE OR REPLACE PROCEDURE mnnl_update_cmdb (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
-- SUBPROC
PROCEDURE add_insdiscipline (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving)
ORDER BY 1;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
IF ccount = 0
THEN
INSERT INTO ins_tab_discipline (ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level,
ins_discipline_kpnverplicht)
VALUES ('INS',
rec.ins_discipline_omschrijving,
1,
0)
RETURNING ins_discipline_key
INTO v_discipline_key;
INSERT INTO ins_disc_params (ins_discipline_key, ins_disc_params_type)
VALUES (v_discipline_key, 0);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtgroep (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving)
ORDER BY 1, 2;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
v_errormsg := 'Fout toevoegen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
IF ccount = 0
THEN
INSERT INTO ins_srtgroep (ins_discipline_key,
ins_srtgroep_module,
ins_srtgroep_omschrijving)
VALUES (v_discipline_key,
'INS',
rec.ins_srtgroep_omschrijving);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtdeel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving,
MAX (ins_srtdeel_code) ins_srtdeel_code,
MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving),
UPPER (ins_srtdeel_omschrijving)
ORDER BY 1, 2, 3;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
v_errormsg := 'Fout bepalen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
v_errormsg := 'Fout toevoegen INS-objectsoort [' || rec.ins_srtdeel_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = rec.ins_srtdeel_upper;
IF ccount = 0
THEN
-- Binding 8 betekent organisatiegebonden (Organisatie-vinkje)!
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_module,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_binding)
VALUES (v_srtgroep_key,
'INS',
UPPER (rec.ins_srtdeel_code),
rec.ins_srtdeel_omschrijving,
8);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_deel (p_import_key IN NUMBER)
AS
-- Parent-objecten eerst aanmaken/bijwerken, daarna child-objecten!
CURSOR c1
IS
SELECT ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_opmerking,
prs_perslid_matchwaarde,
ins_kenmerkwaarde1 parent
FROM fac_imp_ins
ORDER BY DECODE (ins_kenmerkwaarde1, NULL, 1, 2), 1, 2, 4, 5;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500) := '';
v_count_tot NUMBER (10) := 0;
v_count_create NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
v_srtdeel_key NUMBER (10);
v_new_afdeling_key NUMBER (10); -- Volgens import op basis van naam
v_cur_afdeling_key NUMBER (10); -- Zoals geregistreerd in FACILITOR
v_parent_key NUMBER (10);
v_deel_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rec.ins_discipline_omschrijving
|| '|'
|| rec.ins_srtgroep_omschrijving
|| '|'
|| rec.ins_srtdeel_code
|| '|'
|| rec.ins_srtdeel_omschrijving
|| '|'
|| rec.ins_deel_omschrijving
|| '|'
|| rec.prs_perslid_matchwaarde
|| '] ';
v_errormsg := 'Fout bepalen INS-discipline';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.ins_discipline_omschrijving);
v_errormsg := 'Fout bepalen INS-groepsoort';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (rec.ins_srtgroep_omschrijving);
v_errormsg := 'Fout bepalen INS-objectsoort';
SELECT ins_srtdeel_key
INTO v_srtdeel_key
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (rec.ins_srtdeel_omschrijving);
v_errormsg := 'Fout bepalen afdeling [' || rec.prs_perslid_matchwaarde || ']';
SELECT prs_afdeling_key
INTO v_new_afdeling_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_upper = UPPER (rec.prs_perslid_matchwaarde);
v_errormsg := 'Fout bepalen parent';
IF rec.parent IS NOT NULL
THEN
SELECT MAX (ins_deel_key)
INTO v_parent_key
FROM ins_v_aanwezigdeel
WHERE ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
AND ins_deel_parent_key IS NULL -- Parent niet zelf child
AND TRIM (ins_deel_upper) = UPPER (rec.parent);
IF v_parent_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
END IF;
ELSE
v_parent_key := NULL;
END IF;
-- Afdelingsgebonden objecten hebben een unieke ID!
v_errormsg := 'Fout (uniek) bepalen A-object';
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigdeel
WHERE ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
IF ccount = 0 -- Object bestaat nog niet, dus toevoegen!
THEN
v_errormsg := 'Fout toevoegen INS-object';
INSERT INTO ins_deel (ins_discipline_key,
ins_srtdeel_key,
ins_deel_module,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_alg_locatie_key,
ins_deel_parent_key)
VALUES (v_discipline_key,
v_srtdeel_key,
'INS',
rec.ins_deel_omschrijving,
rec.ins_deel_opmerking,
v_new_afdeling_key,
'A',
NULL,
v_parent_key)
RETURNING ins_deel_key
INTO v_deel_key;
COMMIT;
v_count_create := v_count_create + 1;
ELSE -- Object bestaat reeds!
v_errormsg := 'Fout bijwerken INS-object';
SELECT d.ins_deel_key, ins_alg_ruimte_key
INTO v_deel_key, v_cur_afdeling_key
FROM ins_deel d
WHERE ins_deel_verwijder IS NULL
AND ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
UPDATE ins_deel
SET ins_alg_ruimte_key = v_new_afdeling_key,
ins_alg_ruimte_type = 'A',
ins_deel_opmerking = rec.ins_deel_opmerking,
ins_deel_vervaldatum = NULL,
ins_alg_locatie_key = NULL,
ins_deel_parent_key = v_parent_key,
ins_alg_ruimte_key_org = NULL,
ins_alg_ruimte_type_org = NULL
WHERE ins_deel_key = v_deel_key;
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#toegevoegd: ' || TO_CHAR (v_count_create), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#bijgewerkt: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE del_deel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT id.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_key
FROM ins_v_aanwezigdeel d,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
ins_discipline id
WHERE d.ins_deel_vervaldatum IS NULL -- Vervaldatum nog niet gezet!
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = id.ins_discipline_key
AND id.ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
AND d.ins_deel_omschrijving NOT LIKE '%NIET GEBRUIKEN%'
AND NOT EXISTS
(SELECT 1
FROM fac_imp_ins ic
WHERE UPPER (ic.ins_deel_omschrijving) = d.ins_deel_upper
AND UPPER (ic.ins_srtdeel_omschrijving) = sd.ins_srtdeel_upper
AND UPPER (ic.ins_srtgroep_omschrijving) = sg.ins_srtgroep_upper
AND UPPER (ic.ins_discipline_omschrijving) = UPPER (id.ins_discipline_omschrijving))
ORDER BY 1, 2, 4, 5;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500):= '';
v_count_delete NUMBER (10) := 0;
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.ins_discipline_omschrijving
|| '|'
|| rec.ins_srtgroep_omschrijving
|| '|'
|| rec.ins_srtdeel_code
|| '|'
|| rec.ins_srtdeel_omschrijving
|| '|'
|| rec.ins_deel_omschrijving
|| '] ';
v_errormsg := 'Fout verwijderen INS-object';
--DELETE FROM ins_deel
-- WHERE ins_deel_key = rec.ins_deel_key;
UPDATE ins_deel
SET ins_deel_vervaldatum = SYSDATE
WHERE ins_deel_key = rec.ins_deel_key;
COMMIT;
v_count_delete := v_count_delete + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#verwijderd: ' || TO_CHAR (v_count_delete), '');
COMMIT;
END;
-- MAIN
BEGIN
-- Generieke update.
SELECT COUNT ( * ) INTO v_count FROM fac_imp_ins;
IF v_count = 0
THEN
fac.imp_writelog (p_import_key, 'E', 'Niets te importeren!', '');
RETURN;
END IF;
--add_insdiscipline (p_import_key);
add_srtgroep (p_import_key);
add_srtdeel (p_import_key);
add_deel (p_import_key);
del_deel (p_import_key);
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces CMDB-objecten afgebroken!');
END mnnl_update_cmdb;
/
CREATE OR REPLACE VIEW mnnl_v_rap_eua
(
disciplineomschrijving,
groepsoortomschrijving,
objectsoortcode,
objectsoortomschrijving,
objectomschrijving,
objectopmerking,
afdeling,
persoon,
locatiecode,
gebouwcode,
verdiepingvolgnr,
ruimtenr,
status,
redenbijstatus, -- Afhankelijk van status!
serienummer,
model,
aanschafdatum,
ordernummer,
opmerkingen,
vervaldatum,
aanschafwaarde,
organisatie
)
AS
SELECT x.ins_discipline_omschrijving,
x.ins_srtgroep_omschrijving,
x.ins_srtdeel_code,
x.ins_srtdeel_omschrijving,
x.ins_deel_omschrijving,
x.ins_deel_opmerking,
x.prs_afdeling_naam,
x.prs_perslid_oslogin,
x.alg_locatie_code,
x.alg_gebouw_code,
x.alg_verdieping_volgnr,
x.alg_ruimte_nr,
(SELECT fac_usrdata_code
FROM fac_v_aanwezigusrdata
WHERE TO_CHAR (fac_usrdata_key) = sts.ins_kenmerkdeel_waarde), -- Status
(SELECT fac_usrdata_code
FROM fac_v_aanwezigusrdata
WHERE TO_CHAR (fac_usrdata_key) = rbs.ins_kenmerkdeel_waarde), -- Reden bij status
snr.ins_kenmerkdeel_waarde, -- Serienummer
mdl.ins_kenmerkdeel_waarde, -- Model
asd.ins_kenmerkdeel_waarde, -- Aanschafdatum
onr.ins_kenmerkdeel_waarde, -- Ordernummer
opm.ins_kenmerkdeel_waarde, -- Opmerkingen
x.ins_deel_vervaldatum,
asw.ins_kenmerkdeel_waarde, -- Aanschafwaarde
x.organisatie
FROM (SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
a.prs_afdeling_naam,
NULL prs_perslid_oslogin,
NULL alg_locatie_code,
NULL alg_gebouw_code,
NULL alg_verdieping_volgnr,
NULL alg_ruimte_nr,
d.ins_deel_vervaldatum,
NULL organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_afdeling a
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key = a.prs_afdeling_key
UNION ALL
SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
NULL prs_afdeling_naam,
p.prs_perslid_oslogin,
NULL alg_locatie_code,
NULL alg_gebouw_code,
NULL alg_verdieping_volgnr,
NULL alg_ruimte_nr,
d.ins_deel_vervaldatum,
a.prs_afdeling_naam organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_perslid p,
prs_afdeling a
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND a.prs_afdeling_key = p.prs_afdeling_key
UNION ALL
SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
NULL prs_afdeling_naam,
NULL prs_perslid_oslogin,
l.alg_locatie_code,
g.alg_gebouw_code,
v.alg_verdieping_volgnr,
r.alg_ruimte_nr,
d.ins_deel_vervaldatum,
NULL organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key) x
LEFT JOIN ins_v_aanwezigkenmerkdeel sts
ON x.ins_deel_key = sts.ins_deel_key
AND sts.ins_kenmerk_key = 21 -- Status
LEFT JOIN ins_v_aanwezigkenmerkdeel rbs
ON x.ins_deel_key = rbs.ins_deel_key
AND rbs.ins_kenmerk_key = 81 -- Reden bij status
LEFT JOIN ins_v_aanwezigkenmerkdeel snr
ON x.ins_deel_key = snr.ins_deel_key
AND snr.ins_kenmerk_key = 22 -- Serienummer
LEFT JOIN ins_v_aanwezigkenmerkdeel mdl
ON x.ins_deel_key = mdl.ins_deel_key
AND mdl.ins_kenmerk_key = 23 -- Model
LEFT JOIN ins_v_aanwezigkenmerkdeel asd
ON x.ins_deel_key = asd.ins_deel_key
AND asd.ins_kenmerk_key = 24 -- Aanschafdatum
LEFT JOIN ins_v_aanwezigkenmerkdeel onr
ON x.ins_deel_key = onr.ins_deel_key
AND onr.ins_kenmerk_key = 25 -- Ordernummer
LEFT JOIN ins_v_aanwezigkenmerkdeel opm
ON x.ins_deel_key = opm.ins_deel_key
AND opm.ins_kenmerk_key = 27 -- Opmerkingen
LEFT JOIN ins_v_aanwezigkenmerkdeel asw
ON x.ins_deel_key = asw.ins_deel_key
AND asw.ins_kenmerk_key = 101 -- MNNL#53670: Aanschafwaarde
;
-- MNNL#40905: EUA-import (EndUser Asset)!
CREATE OR REPLACE PROCEDURE mnnl_import_eua (p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (1) := ';';
v_newline VARCHAR2 (4000); -- Input line
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500);
header_is_valid NUMBER := 0;
v_count_tot NUMBER (10) := 0;
v_count_import NUMBER (10) := 0;
v_ongeldig NUMBER (1);
-- De importvelden:
v_ins_discipline_omschrijving VARCHAR2 (255); -- C30
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
v_ins_srtdeel_code VARCHAR2 (255); -- C10
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
v_ins_deel_opmerking VARCHAR2 (2000); -- C2000
v_prs_afdeling_naam VARCHAR2 (255); -- C15
v_prs_perslid_oslogin VARCHAR2 (255); -- C30
v_alg_locatie_code VARCHAR2 (255); -- C10
v_alg_gebouw_code VARCHAR2 (255); -- C12
v_alg_verdieping_volgnr VARCHAR2 (255); -- N3
v_alg_verdieping_volgnr_n NUMBER (3); -- N3
v_alg_ruimte_nr VARCHAR2 (255); -- C10
v_sts VARCHAR2 (255); -- C60
v_rbs VARCHAR2 (255); -- C60
v_snr VARCHAR2 (255); -- C40
v_mdl VARCHAR2 (255); -- C50
v_asd VARCHAR2 (255); -- C10
v_onr VARCHAR2 (255); -- C50
v_opm VARCHAR2 (2000); -- C255!
v_ins_deel_vervaldatum VARCHAR2 (255); -- D10
v_asw VARCHAR2 (255); -- Nx
CURSOR c1
IS
SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index;
BEGIN
DELETE FROM fac_imp_ins;
COMMIT;
FOR rec1 IN c1
LOOP
BEGIN
v_newline := rec1.fac_imp_file_line;
v_errormsg := 'Fout opvragen importregel';
v_aanduiding := '';
v_ongeldig := 0;
-- Lees alle veldwaarden
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
fac.imp_getfield (v_newline, c_delim, v_prs_perslid_oslogin);
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code);
fac.imp_getfield (v_newline, c_delim, v_alg_verdieping_volgnr);
fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr);
fac.imp_getfield (v_newline, c_delim, v_sts);
fac.imp_getfield (v_newline, c_delim, v_rbs);
fac.imp_getfield (v_newline, c_delim, v_snr);
fac.imp_getfield (v_newline, c_delim, v_mdl);
fac.imp_getfield (v_newline, c_delim, v_asd);
fac.imp_getfield (v_newline, c_delim, v_onr);
fac.imp_getfield (v_newline, c_delim, v_opm);
fac.imp_getfield (v_newline, c_delim, v_ins_deel_vervaldatum);
fac.imp_getfield (v_newline, c_delim, v_asw);
v_aanduiding :=
'['
|| v_ins_discipline_omschrijving
|| '|'
|| v_ins_srtgroep_omschrijving
|| '|'
|| v_ins_srtdeel_code
|| '|'
|| v_ins_srtdeel_omschrijving
|| '|'
|| v_ins_deel_omschrijving
|| '|'
|| COALESCE (v_prs_afdeling_naam, v_prs_perslid_oslogin, v_alg_locatie_code || '-' || v_alg_gebouw_code || '-' || v_alg_verdieping_volgnr || '-' || v_alg_ruimte_nr)
|| '] ';
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
IF (header_is_valid = 0)
THEN
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTOMSCHRIJVING'
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
AND UPPER (v_prs_perslid_oslogin) = 'PERSOON'
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
AND UPPER (v_alg_verdieping_volgnr) = 'VERDIEPINGVOLGNR'
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENR'
AND UPPER (v_sts) = 'STATUS'
AND UPPER (v_rbs) = 'REDENBIJSTATUS'
AND UPPER (v_snr) = 'SERIENUMMER'
AND UPPER (v_mdl) = 'MODEL'
AND UPPER (v_asd) = 'AANSCHAFDATUM'
AND UPPER (v_onr) = 'ORDERNUMMER'
AND UPPER (v_opm) = 'OPMERKINGEN'
AND UPPER (v_ins_deel_vervaldatum) = 'VERVALDATUM'
AND UPPER (v_asw) = 'AANSCHAFWAARDE'
THEN
header_is_valid := 1;
END IF;
ELSE
v_count_tot := v_count_tot + 1;
-- Controleer alle veldwaarden
v_errormsg := 'Discipline ongeldig; ongedefinieerd of te lang';
v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving);
IF v_ins_discipline_omschrijving IS NULL OR LENGTH (v_ins_discipline_omschrijving) > 30
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Groep ongeldig; ongedefinieerd of te lang';
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
IF v_ins_srtgroep_omschrijving IS NULL OR LENGTH (v_ins_srtgroep_omschrijving) > 60
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Soortcode ongeldig; ongedefinieerd of te lang';
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 100
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Soort ongeldig; ongedefinieerd of te lang';
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
IF v_ins_srtdeel_omschrijving IS NULL OR LENGTH (v_ins_srtdeel_omschrijving) > 100
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Objectid ongeldig; ongedefinieerd of te lang';
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
IF v_ins_deel_omschrijving IS NULL OR LENGTH (v_ins_deel_omschrijving) > 60
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Objectopmerking te lang';
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
IF LENGTH (v_ins_deel_opmerking) > 2000
THEN
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 255);
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Opmerking wordt afgekapt!');
END IF;
--
v_errormsg := 'Afdelingscode te lang';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
IF LENGTH (v_prs_afdeling_naam) > 15
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Loginnaam te lang';
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
IF LENGTH (v_prs_perslid_oslogin) > 30
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Locatiecode te lang';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Gebouwcode te lang';
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
IF LENGTH (v_alg_gebouw_code) > 12
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Verdiepingvolgnummer ongeldig; niet numeriek';
v_alg_verdieping_volgnr := TRIM (v_alg_verdieping_volgnr);
v_alg_verdieping_volgnr_n := fac.safe_to_number (v_alg_verdieping_volgnr);
IF v_alg_verdieping_volgnr IS NOT NULL AND v_alg_verdieping_volgnr_n NOT BETWEEN -999 AND 999
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_errormsg := 'Ruimtenummer te lang';
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
IF LENGTH (v_alg_ruimte_nr) > 10
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_sts := TRIM (v_sts);
v_rbs := TRIM (v_rbs);
v_snr := TRIM (v_snr);
v_mdl := TRIM (v_mdl);
v_asd := TRIM (v_asd);
v_onr := TRIM (v_onr);
v_opm := TRIM (v_opm);
--
v_errormsg := 'Vervaldatum ongeldig; geen datum';
v_ins_deel_vervaldatum := TRIM (v_ins_deel_vervaldatum);
IF v_ins_deel_vervaldatum IS NOT NULL AND fac.safe_to_date (v_ins_deel_vervaldatum, 'dd-mm-yyyy') IS NULL
THEN
v_ongeldig := 1;
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
END IF;
--
v_asw := TRIM (v_asw);
-- Insert geformatteerde import record
IF v_ongeldig = 0
THEN
BEGIN
v_errormsg := 'Fout wegschrijven importregel';
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_opmerking,
alg_locatie_code,
alg_gebouw_code,
alg_verdieping_volgnr,
alg_ruimte_nr,
prs_perslid_matchcode,
prs_perslid_matchwaarde,
res_discipline_kostensoort,
ins_kenmerkwaarde1,
ins_kenmerkwaarde2,
ins_kenmerkwaarde3,
ins_kenmerkwaarde4,
ins_kenmerkwaarde5,
ins_kenmerkwaarde6,
ins_kenmerkwaarde7,
ins_kenmerkwaarde8)
VALUES (v_ins_discipline_omschrijving,
v_ins_srtgroep_omschrijving,
v_ins_srtdeel_code,
v_ins_srtdeel_omschrijving,
v_ins_deel_omschrijving,
v_ins_deel_opmerking,
v_alg_locatie_code,
v_alg_gebouw_code,
v_alg_verdieping_volgnr_n,
v_alg_ruimte_nr,
DECODE (v_prs_afdeling_naam, NULL, DECODE (v_prs_perslid_oslogin, NULL, NULL, 'P'), 'A'),
COALESCE (v_prs_afdeling_naam, v_prs_perslid_oslogin),
v_ins_deel_vervaldatum,
v_sts,
v_rbs,
v_snr,
v_mdl,
v_asd,
v_onr,
v_opm,
v_asw);
COMMIT;
v_count_import := v_count_import + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END IF;
END IF;
END;
END LOOP;
IF (header_is_valid = 0)
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', 'EUA-objecten/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'EUA-objecten/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
END IF;
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.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, 'Inleesproces EUA-objecten afgebroken!');
END mnnl_import_eua;
/
CREATE OR REPLACE PROCEDURE mnnl_update_eua (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500);
v_count NUMBER;
-- SUBPROC
PROCEDURE add_insdiscipline (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving)
ORDER BY 1;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
IF ccount = 0
THEN
INSERT INTO ins_tab_discipline (ins_discipline_module,
ins_discipline_omschrijving,
ins_discipline_min_level,
ins_discipline_kpnverplicht)
VALUES ('INS',
rec.ins_discipline_omschrijving,
1,
0)
RETURNING ins_discipline_key
INTO v_discipline_key;
INSERT INTO ins_disc_params (ins_discipline_key, ins_disc_params_type)
VALUES (v_discipline_key, 0);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtgroep (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving)
ORDER BY 1, 2;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
v_errormsg := 'Fout toevoegen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
IF ccount = 0
THEN
INSERT INTO ins_srtgroep (ins_discipline_key,
ins_srtgroep_module,
ins_srtgroep_omschrijving)
VALUES (v_discipline_key,
'INS',
rec.ins_srtgroep_omschrijving);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_srtdeel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper,
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving,
MAX (ins_srtdeel_code) ins_srtdeel_code,
MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving
FROM fac_imp_ins
GROUP BY UPPER (ins_discipline_omschrijving),
UPPER (ins_srtgroep_omschrijving),
UPPER (ins_srtdeel_omschrijving)
ORDER BY 1, 2, 3;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_tab_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
v_errormsg := 'Fout bepalen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
v_errormsg := 'Fout toevoegen INS-objectsoort [' || rec.ins_srtdeel_omschrijving || ']';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = rec.ins_srtdeel_upper;
IF ccount = 0
THEN
-- Binding 25 betekent ruimte-, organisatie- of persoonsgebonden!
INSERT INTO ins_srtdeel (ins_srtgroep_key,
ins_srtdeel_module,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_srtdeel_binding)
VALUES (v_srtgroep_key,
'INS',
UPPER (rec.ins_srtdeel_code),
rec.ins_srtdeel_omschrijving,
25);
COMMIT;
v_count_update := v_count_update + 1;
END IF;
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.imp_writelog (p_import_key, 'W', v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE upsert_inskenmerk (p_deel_key IN NUMBER,
p_srtkenmerk_key IN NUMBER,
p_waarde IN VARCHAR2)
AS
v_kenmerk_key NUMBER;
v_srtkenmerk_type VARCHAR2 (1);
ccount NUMBER;
v_waarde VARCHAR2 (255);
v_objectnaam VARCHAR2 (30);
v_kolomnaam VARCHAR2 (30);
v_kolomtxt VARCHAR2 (30);
sql_stmt VARCHAR2 (1000);
v_kenmerkdeel_key NUMBER;
l_cursor_1 INTEGER;
l_rowsprocessed NUMBER DEFAULT 0;
BEGIN
IF p_srtkenmerk_key IS NOT NULL
THEN
v_errormsg := 'Fout bepalen kenmerk van soort [' || p_srtkenmerk_key || ']';
SELECT k.ins_kenmerk_key, sk.ins_srtkenmerk_kenmerktype
INTO v_kenmerk_key, v_srtkenmerk_type
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk
WHERE d.ins_deel_key = p_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND k.ins_srtkenmerk_key = p_srtkenmerk_key
AND ((k.ins_srtinstallatie_key = sd.ins_srtdeel_key AND k.ins_kenmerk_niveau = 'S')
OR (k.ins_srtinstallatie_key = sg.ins_srtgroep_key AND k.ins_kenmerk_niveau = 'G')
OR (k.ins_srtinstallatie_key = sg.ins_discipline_key AND k.ins_kenmerk_niveau = 'D'))
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
IF p_waarde IS NOT NULL
THEN
IF v_srtkenmerk_type IN ('R', 'S')
THEN
v_errormsg := 'Fout bepalen eigen tabel';
SELECT COUNT ( * )
INTO ccount
FROM ins_srtkenmerk sk, fac_kenmerkdomein d
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NOT NULL;
v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']';
IF ccount = 1
THEN -- Eigen tabel
SELECT TO_CHAR (ud.fac_usrdata_key)
INTO v_waarde
FROM ins_srtkenmerk sk, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key = ud.fac_usrtab_key
AND UPPER (TRIM (ud.fac_usrdata_code)) = UPPER (p_waarde); -- Match op code in Eigen Tabel!
ELSE -- FACILITOR view/tabel
SELECT d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
FROM ins_srtkenmerk sk, fac_kenmerkdomein d
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
AND d.fac_usrtab_key IS NULL;
sql_stmt :=
'SELECT MAX ('
|| v_kolomnaam
|| ') FROM '
|| v_objectnaam
|| ' WHERE UPPER (TRIM ('
|| v_kolomtxt
|| ')) = UPPER (:pwaarde)';
l_cursor_1 := DBMS_SQL.open_cursor;
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
DBMS_SQL.BIND_VARIABLE (l_cursor_1, ':pwaarde', p_waarde);
DBMS_SQL.define_column (l_cursor_1, 1, v_waarde, 255);
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
DBMS_SQL.COLUMN_VALUE (l_cursor_1, 1, v_waarde);
DBMS_SQL.close_cursor (l_cursor_1);
END IF;
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
v_waarde := p_waarde;
END IF;
v_errormsg := 'Fout bepalen huidige waarde';
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
INTO ccount, v_kenmerkdeel_key
FROM ins_v_aanwezigkenmerkdeel
WHERE ins_deel_key = p_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
IF ccount = 0
THEN
v_errormsg := 'Fout toevoegen waarde [' || v_waarde || ']';
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
VALUES (p_deel_key, v_kenmerk_key, v_waarde);
ELSE
v_errormsg := 'Fout bijwerken waarde [' || v_waarde || ']';
UPDATE ins_kenmerkdeel
SET ins_kenmerkdeel_waarde = v_waarde
WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
END IF;
ELSE
-- Verwijder kenmerken die als bestaan maar met de nieuwe import leeg zijn.
DELETE ins_kenmerkdeel
WHERE ins_deel_key = p_deel_key
AND ins_kenmerk_key = v_kenmerk_key;
END IF;
END IF;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'upsert_inskenmerk');
COMMIT;
END;
-- SUBPROC
PROCEDURE add_deel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT ins_discipline_omschrijving,
ins_srtgroep_omschrijving,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_opmerking,
alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr,
prs_perslid_matchcode, prs_perslid_matchwaarde,
ins_kenmerkwaarde1,
ins_kenmerkwaarde2,
ins_kenmerkwaarde3,
ins_kenmerkwaarde4,
ins_kenmerkwaarde5,
ins_kenmerkwaarde6,
ins_kenmerkwaarde7,
ins_kenmerkwaarde8
FROM fac_imp_ins
WHERE res_discipline_kostensoort IS NULL
ORDER BY 1, 2, 4, 5;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500) := '';
v_count_tot NUMBER (10) := 0;
v_count_create NUMBER (10) := 0;
v_count_update NUMBER (10) := 0;
v_discipline_key NUMBER (10);
v_srtgroep_key NUMBER (10);
v_srtdeel_key NUMBER (10);
v_srtdeel_binding NUMBER (3);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_ruimte_type VARCHAR2 (10);
v_deel_key NUMBER (10);
ccount NUMBER (10);
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
'['
|| rec.ins_discipline_omschrijving
|| '|'
|| rec.ins_srtgroep_omschrijving
|| '|'
|| rec.ins_srtdeel_code
|| '|'
|| rec.ins_srtdeel_omschrijving
|| '|'
|| rec.ins_deel_omschrijving
|| '|'
|| COALESCE (rec.prs_perslid_matchwaarde, rec.alg_locatie_code || '-' || rec.alg_gebouw_code || '-' || TO_CHAR (rec.alg_verdieping_volgnr) || '-' || rec.alg_ruimte_nr)
|| '] ';
v_errormsg := 'Fout bepalen INS-discipline';
SELECT ins_discipline_key
INTO v_discipline_key
FROM ins_discipline
WHERE ins_discipline_verwijder IS NULL
AND ins_discipline_module = 'INS'
AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.ins_discipline_omschrijving);
v_errormsg := 'Fout bepalen INS-groepsoort';
SELECT ins_srtgroep_key
INTO v_srtgroep_key
FROM ins_srtgroep
WHERE ins_srtgroep_verwijder IS NULL
AND ins_srtgroep_module = 'INS'
AND ins_discipline_key = v_discipline_key
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (rec.ins_srtgroep_omschrijving);
v_errormsg := 'Fout bepalen INS-objectsoort';
SELECT ins_srtdeel_key, ins_srtdeel_binding
INTO v_srtdeel_key, v_srtdeel_binding
FROM ins_srtdeel
WHERE ins_srtdeel_verwijder IS NULL
AND ins_srtdeel_module = 'INS'
AND ins_srtgroep_key = v_srtgroep_key
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (rec.ins_srtdeel_omschrijving);
v_locatie_key := NULL;
v_gebouw_key := NULL;
v_verdieping_key := NULL;
v_ruimte_key := NULL;
v_ruimte_type := NULL;
IF BITAND (v_srtdeel_binding, 1) = 1 AND rec.alg_locatie_code IS NOT NULL
THEN -- Ruimtegebonden object
v_errormsg := 'Fout bepalen locatie [' || rec.alg_locatie_code || ']';
SELECT alg_locatie_key
INTO v_locatie_key
FROM alg_v_aanweziglocatie
WHERE UPPER (TRIM (alg_locatie_code)) = UPPER (rec.alg_locatie_code);
v_errormsg := 'Fout bepalen gebouw [' || rec.alg_gebouw_code || ']';
SELECT alg_gebouw_key
INTO v_gebouw_key
FROM alg_v_aanweziggebouw
WHERE alg_locatie_key = v_locatie_key
AND UPPER (TRIM (alg_gebouw_code)) = UPPER (rec.alg_gebouw_code);
v_errormsg := 'Fout bepalen verdieping [' || rec.alg_verdieping_volgnr || ']';
SELECT alg_verdieping_key
INTO v_verdieping_key
FROM alg_v_aanwezigverdieping
WHERE alg_gebouw_key = v_gebouw_key
AND alg_verdieping_volgnr = rec.alg_verdieping_volgnr;
v_errormsg := 'Fout bepalen ruimte [' || rec.alg_ruimte_nr || ']';
SELECT alg_ruimte_key
INTO v_ruimte_key
FROM alg_v_aanwezigruimte
WHERE alg_verdieping_key = v_verdieping_key
AND TRIM (alg_ruimte_upper_nr) = UPPER (rec.alg_ruimte_nr);
-- Ruimtegebonden objecten hebben een unieke ID (bij MN; in FACILITOR moet dat binnen locatie)!
v_ruimte_type := 'R';
v_errormsg := 'Fout (uniek) bepalen R-object';
ELSIF BITAND (v_srtdeel_binding, 8) = 8 AND rec.prs_perslid_matchcode = 'A' -- Afdelinsgebonden object
THEN
v_errormsg := 'Fout bepalen afdeling [' || rec.prs_perslid_matchwaarde || ']';
SELECT prs_afdeling_key
INTO v_ruimte_key
FROM prs_afdeling
WHERE prs_afdeling_verwijder IS NULL
AND prs_afdeling_upper = UPPER (rec.prs_perslid_matchwaarde);
-- Afdelingsgebonden objecten hebben een unieke ID!
v_ruimte_type := 'A';
v_errormsg := 'Fout (uniek) bepalen A-object';
ELSIF BITAND (v_srtdeel_binding, 16) = 16 AND rec.prs_perslid_matchcode = 'P' -- Persoonsgebonden object
THEN
v_errormsg := 'Fout bepalen persoon [' || rec.prs_perslid_matchwaarde || ']';
SELECT prs_perslid_key
INTO v_ruimte_key
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND prs_perslid_oslogin = UPPER (rec.prs_perslid_matchwaarde);
-- Persoonsgebonden objecten hebben een unieke ID!
v_ruimte_type := 'P';
v_errormsg := 'Fout (uniek) bepalen P-object';
END IF;
IF v_ruimte_key IS NULL
THEN
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen R-, A- of P-binding', COALESCE (rec.prs_perslid_matchcode, 'R'));
ELSE
SELECT COUNT ( * )
INTO ccount
FROM ins_v_aanwezigdeel
WHERE ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
IF ccount = 0 -- Object bestaat nog niet, dus toevoegen!
THEN
v_errormsg := 'Fout toevoegen INS-object';
INSERT INTO ins_deel (ins_discipline_key,
ins_srtdeel_key,
ins_deel_module,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_alg_ruimte_key,
ins_alg_ruimte_type,
ins_alg_locatie_key)
VALUES (v_discipline_key,
v_srtdeel_key,
'INS',
rec.ins_deel_omschrijving,
rec.ins_deel_opmerking,
v_ruimte_key,
v_ruimte_type,
v_locatie_key)
RETURNING ins_deel_key
INTO v_deel_key;
COMMIT;
--v_srtnoti_code := 'INSNEW';
v_count_create := v_count_create + 1;
ELSE -- Object bestaat reeds!
v_errormsg := 'Fout bijwerken INS-object';
SELECT d.ins_deel_key
INTO v_deel_key
FROM ins_deel d
WHERE ins_deel_verwijder IS NULL
AND ins_deel_module = 'INS'
AND ins_srtdeel_key = v_srtdeel_key
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
UPDATE ins_deel
SET ins_alg_ruimte_key = v_ruimte_key,
ins_alg_ruimte_type = v_ruimte_type,
ins_deel_opmerking = rec.ins_deel_opmerking,
ins_deel_vervaldatum = NULL,
ins_alg_locatie_key = v_locatie_key,
ins_alg_ruimte_key_org = NULL,
ins_alg_ruimte_type_org = NULL
WHERE ins_deel_key = v_deel_key;
COMMIT;
--v_srtnoti_code := 'INSUPD';
v_count_update := v_count_update + 1;
END IF;
-- NULL-waarden resulteren NIET in het wissen van kenmerkvelden
-- (bijwerken kan wel, maar wissen dus niet)!
upsert_inskenmerk (v_deel_key, 24, rec.ins_kenmerkwaarde1); -- Status
upsert_inskenmerk (v_deel_key, 41, rec.ins_kenmerkwaarde2); -- Reden bij status
upsert_inskenmerk (v_deel_key, 1, rec.ins_kenmerkwaarde3); -- Serienummer
upsert_inskenmerk (v_deel_key, 21, rec.ins_kenmerkwaarde4); -- Model
upsert_inskenmerk (v_deel_key, 25, rec.ins_kenmerkwaarde5); -- Aanschafdatum
upsert_inskenmerk (v_deel_key, 26, rec.ins_kenmerkwaarde6); -- Ordernummer
upsert_inskenmerk (v_deel_key, 27, rec.ins_kenmerkwaarde7); -- Opmerkingen
upsert_inskenmerk (v_deel_key, 61, rec.ins_kenmerkwaarde8); -- Aanschafwaarde
END IF;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#toegevoegd: ' || TO_CHAR (v_count_create), '');
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#bijgewerkt: ' || TO_CHAR (v_count_update), '');
COMMIT;
END;
-- SUBPROC
PROCEDURE del_deel (p_import_key IN NUMBER)
AS
CURSOR c1
IS
SELECT id.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_key,
ic.res_discipline_kostensoort -- Vervaldatum (ingelezen)!
FROM ins_v_aanwezigdeel d,
ins_v_aanwezigsrtdeel sd,
ins_v_aanwezigsrtgroep sg,
ins_discipline id,
fac_imp_ins ic
WHERE d.ins_deel_vervaldatum IS NULL -- Vervaldatum nog niet gezet!
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = id.ins_discipline_key
AND id.ins_discipline_key = 1104 -- EndUser Asset
AND d.ins_deel_omschrijving NOT LIKE '%NIET GEBRUIKEN%'
AND ic.res_discipline_kostensoort IS NOT NULL -- Vervaldatum gezet!
AND UPPER (ic.ins_deel_omschrijving) = d.ins_deel_upper
AND UPPER (ic.ins_srtdeel_omschrijving) = sd.ins_srtdeel_upper
AND UPPER (ic.ins_srtgroep_omschrijving) = sg.ins_srtgroep_upper
AND UPPER (ic.ins_discipline_omschrijving) = UPPER (id.ins_discipline_omschrijving)
ORDER BY 1, 2, 4, 5;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (500):= '';
v_count_delete NUMBER (10) := 0;
BEGIN
FOR rec IN c1
LOOP
BEGIN
v_aanduiding :=
'['
|| rec.ins_discipline_omschrijving
|| '|'
|| rec.ins_srtgroep_omschrijving
|| '|'
|| rec.ins_srtdeel_code
|| '|'
|| rec.ins_srtdeel_omschrijving
|| '|'
|| rec.ins_deel_omschrijving
|| '] ';
v_errormsg := 'Fout verwijderen INS-object';
--DELETE FROM ins_deel
-- WHERE ins_deel_key = rec.ins_deel_key;
UPDATE ins_deel
SET ins_deel_vervaldatum = fac.safe_to_date (rec.res_discipline_kostensoort, 'dd-mm-yyyy')
WHERE ins_deel_key = rec.ins_deel_key
AND ins_deel_vervaldatum IS NULL;
COMMIT;
v_count_delete := v_count_delete + 1;
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.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#verwijderd: ' || TO_CHAR (v_count_delete), '');
COMMIT;
END;
-- MAIN
BEGIN
-- Generieke update.
SELECT COUNT ( * ) INTO v_count FROM fac_imp_ins;
IF v_count = 0
THEN
fac.imp_writelog (p_import_key, 'E', 'Niets te importeren!', '');
RETURN;
END IF;
--add_insdiscipline (p_import_key);
add_srtgroep (p_import_key);
add_srtdeel (p_import_key);
add_deel (p_import_key);
del_deel (p_import_key);
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.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces EUA-objecten afgebroken!');
END mnnl_update_eua;
/
-- MNNL#41653: Mail2Melding voor 2 stromen (nimbus@ + hr@).
-- MNNL#53176: Mail2Existing ticket/notitie (melding@).
-- MNNL#55078: Mail2Existing ticket/afmelden (melding@).
-- MNNL#61759: FASE1/ServiceNow-koppeling/Mail2Existing opdracht (sogeti@).
-- MNNL#61759: FASE2/ServiceNow-koppeling/Mail2Melding (snow@).
-- MNNL#71193: Gereed-datum op basis van content van mail (hr@).
CREATE OR REPLACE PROCEDURE MNNL_processemail (
pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
-- soortmeldingen 681+682 onder vakgroepen 1321+1322 onder vakgroeptype 81!
c_sogeti_key NUMBER (10) := 22824;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER (10);
v_vakgroep VARCHAR2 (255) := '';
v_message VARCHAR2 (255) := '';
v_ci VARCHAR2 (255) := '';
v_leidinggevende VARCHAR2 (255) := '';
v_melding VARCHAR2 (255) := '';
v_medewerker VARCHAR2 (255) := '';
v_ingangsdatum VARCHAR2 (255) := '';
v_vrijstellingsdatum VARCHAR2 (255) := '';
v_exist_ticket VARCHAR2 (255) := '';
v_afmeldactie NUMBER (10);
v_afmeldtekst VARCHAR2 (4000) := '';
v_perslid_key NUMBER (10);
v_perslid_naam_friendly VARCHAR2 (255);
v_kostenplaats_key NUMBER (10);
v_discipline_key NUMBER (10);
v_stdmelding_key NUMBER (10);
v_onderwerp VARCHAR2 (255);
v_deel_key NUMBER (10);
--v_onrgoed_keys NUMBER (10);
--v_onrgoed_type VARCHAR2 (1);
--v_locatie_key NUMBER (10);
v_melding_key NUMBER (10);
v_melding_status NUMBER (10);
v_open_opdr NUMBER (10);
v_opdracht_id VARCHAR2 (30) := '';
v_opdracht_key NUMBER (10);
v_opdracht_status NUMBER (10);
v_kenmerk_key NUMBER (10);
v_kenmerkopdr_key NUMBER (10);
v_refnr_lev VARCHAR2 (30);
--v_kosten NUMBER (9, 2);
v_behandeling VARCHAR2 (4000) := '';
v_afhandeling VARCHAR2 (4000) := '';
BEGIN
CASE
WHEN UPPER (pto) LIKE 'NIMBUS@%'
THEN
v_errormsg := 'Fout bepalen Nimbus-vakgroep';
IF INSTR (pbody, '@VAKGROEP:') > 0
THEN
v_vakgroep := TRIM (SUBSTR (pbody,
INSTR (pbody, '@VAKGROEP:') + 10,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@VAKGROEP:') + 10), '#') - 1));
ELSE
v_vakgroep := '';
END IF;
v_errormsg := 'Fout bepalen Nimbus-message';
IF INSTR (pbody, '@MESSAGE:') > 0
THEN
v_message := TRIM (SUBSTR (pbody,
INSTR (pbody, '@MESSAGE:') + 9,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@MESSAGE:') + 9), '#') - 1));
ELSE
v_message := '';
END IF;
v_errormsg := 'Fout bepalen Nimbus-CI';
IF INSTR (pbody, '@CI:') > 0
THEN
v_ci := TRIM (SUBSTR (pbody,
INSTR (pbody, '@CI:') + 4,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@CI:') + 4), '#') - 1));
ELSE
v_ci := '';
END IF;
-- Bepaal persoon met key=12784 (Monitoring NimBUS)?
v_errormsg := 'Fout bepalen Nimbus-melder';
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
INTO v_perslid_key, v_kostenplaats_key
FROM prs_v_aanwezigperslid p, prs_afdeling a
WHERE p.prs_perslid_key = 12784
AND p.prs_afdeling_key = a.prs_afdeling_key;
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
-- pbody achter @VAKGROEP?
v_errormsg := 'Fout bepalen Nimbus-soortmelding ' || COALESCE (v_vakgroep, '???');
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key)
INTO v_discipline_key, v_stdmelding_key
FROM mld_discipline md, mld_stdmelding sm
WHERE md.ins_discipline_verwijder IS NULL
AND md.ins_srtdiscipline_key = 81 -- Event
AND md.ins_discipline_key = sm.mld_ins_discipline_key
AND UPPER (md.ins_discipline_omschrijving) LIKE UPPER (v_vakgroep) || '%'
GROUP BY sm.mld_ins_discipline_key;
v_errormsg := 'Fout bepalen Nimbus-onderwerp';
v_onderwerp := v_message;
-- Bepaal evt. object met omschrijving zoals in pbody achter @CI?
-- Alleen objecten onder Applicatie/Server/Database/EndUser Asset met
-- keys 1101 t/m 1104 worden beschouwd!
v_errormsg := 'Fout bepalen Nimbus-CI ' || COALESCE (v_ci, '???');
SELECT COUNT (*)
INTO v_count
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg
WHERE d.ins_deel_vervaldatum IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key IN (1101, 1102, 1103, 1104)
AND d.ins_deel_upper = UPPER (v_ci);
IF v_count = 1
THEN
SELECT d.ins_deel_key--, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type
INTO v_deel_key--, v_onrgoed_keys, v_onrgoed_type
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg
WHERE d.ins_deel_vervaldatum IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key IN (1101, 1102, 1103, 1104)
AND d.ins_deel_upper = UPPER (v_ci);
ELSIF v_ci IS NOT NULL
THEN
fac.writelog ('PROCESSEMAIL', 'W', v_errormsg, '');
END IF;
-- 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 Nimbus-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)
VALUES ('MLD',
4, -- email
2, --v_locatie_key,
NULL, --v_onrgoed_keys,
SYSDATE,
SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000),
v_stdmelding_key,
NULL,
v_kostenplaats_key,
v_perslid_key,
v_perslid_key,
NULL,
3, -- prio normaal
SUBSTR (v_onderwerp, 1, 80))
RETURNING mld_melding_key
INTO v_melding_key;
IF v_deel_key IS NOT NULL
THEN
v_errormsg := 'Fout toevoegen Nimbus-object';
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
VALUES (v_melding_key, v_deel_key);
END IF;
v_errormsg := 'Fout bijwerken melding-status';
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);
WHEN UPPER (pto) LIKE 'HR@%'
THEN
v_errormsg := 'Fout bepalen HR-leidinggevende';
IF INSTR (pbody, '@LEIDINGGEVENDE:') > 0
THEN
v_leidinggevende := TRIM (SUBSTR (pbody,
INSTR (pbody, '@LEIDINGGEVENDE:') + 16,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@LEIDINGGEVENDE:') + 16), '#') - 1));
ELSE
v_leidinggevende := '';
END IF;
v_errormsg := 'Fout bepalen HR-melding';
IF INSTR (pbody, '@MELDING:') > 0
THEN
v_melding := TRIM (SUBSTR (pbody,
INSTR (pbody, '@MELDING:') + 9,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@MELDING:') + 9), '#') - 1));
ELSE
v_melding := '';
END IF;
v_errormsg := 'Fout bepalen HR-medewerker';
IF INSTR (pbody, '@MEDEWERKER:') > 0
THEN
v_medewerker := TRIM (SUBSTR (pbody,
INSTR (pbody, '@MEDEWERKER:') + 12,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@MEDEWERKER:') + 12), '#') - 1));
ELSE
v_medewerker := '?';
END IF;
v_errormsg := 'Fout bepalen HR-ingangsdatum';
IF INSTR (pbody, '@INGANGSDATUM:') > 0
THEN
v_ingangsdatum := TRIM (SUBSTR (pbody,
INSTR (pbody, '@INGANGSDATUM:') + 14,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@INGANGSDATUM:') + 14), '#') - 1));
ELSE
v_ingangsdatum := '?';
END IF;
v_errormsg := 'Fout bepalen HR-vrijstellingsdatum';
IF INSTR (pbody, '@VRIJSTELLINGSDATUM:') > 0
THEN
v_vrijstellingsdatum := TRIM (SUBSTR (pbody,
INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20), '#') - 1));
ELSE
v_vrijstellingsdatum := '';
END IF;
-- Bepaal de melder op basis van loginnaam zoals in pbody achter
-- @LEIDINGGEVENDE?
v_errormsg := 'Fout bepalen HR-melder ' || COALESCE (v_leidinggevende, '???');
SELECT p.prs_perslid_key, pf.prs_perslid_naam_friendly, a.prs_kostenplaats_key
INTO v_perslid_key, v_perslid_naam_friendly, v_kostenplaats_key
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_oslogin = UPPER (v_leidinggevende);
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
-- pbody achter @MELDING?
v_errormsg := 'Fout bepalen HR-soortmelding ' || COALESCE (v_melding, '???');
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key)
INTO v_discipline_key, v_stdmelding_key
FROM mld_discipline md, mld_stdmelding sm
WHERE md.ins_discipline_verwijder IS NULL
AND md.ins_srtdiscipline_key = 21 -- Service Request
AND md.ins_discipline_key = sm.mld_ins_discipline_key
AND sm.mld_stdmelding_upper = UPPER (v_melding)
GROUP BY sm.mld_ins_discipline_key;
v_errormsg := 'Fout bepalen HR-onderwerp';
v_onderwerp := v_melding || ': ' || v_medewerker || ' per ' || v_ingangsdatum;
-- 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 HR-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,
mld_melding_einddatum,
prs_kostenplaats_key,
prs_perslid_key,
prs_perslid_key_voor,
mld_melding_status,
mld_melding_spoed,
mld_melding_onderwerp)
VALUES ('MLD',
4, -- email
2, --v_locatie_key,
NULL, --v_onrgoed_keys,
SYSDATE,
pfrom || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
v_stdmelding_key,
NULL,
COALESCE (fac.safe_to_date (SUBSTR (v_vrijstellingsdatum, 1, 10), 'dd-mm-yyyy'), fac.safe_to_date (SUBSTR (v_ingangsdatum, 1, 10), 'dd-mm-yyyy')),
v_kostenplaats_key,
v_perslid_key,
v_perslid_key,
NULL,
DECODE (fac.safe_to_date (SUBSTR (v_vrijstellingsdatum, 1, 10), 'dd-mm-yyyy'), NULL, 3, 2), -- prio normaal of hoog
SUBSTR (v_onderwerp, 1, 80))
RETURNING mld_melding_key
INTO v_melding_key;
v_errormsg := 'Fout bijwerken melding-status';
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
-- Handle workflow actions for completion.
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
WHEN UPPER (pto) LIKE 'MELDING@%'
THEN
v_errormsg := 'Fout bepalen existing ticket';
IF INSTR (UPPER (psubject), 'MELDING') > 0
THEN
v_exist_ticket := TRIM (SUBSTR (psubject, INSTR (UPPER (psubject), 'MELDING') + 7)); -- Gedeelte vanaf eerste voorkomen van 'MELDING' in 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;
ELSE
v_exist_ticket := 'x';
END IF;
v_errormsg := 'Fout bepalen afmeldactie';
v_afmeldactie := INSTR (UPPER (psubject), '#AFMELDEN');
v_errormsg := 'Fout bepalen afmeldtekst';
IF INSTR (UPPER (pbody), '@AFMELDTEKST:') > 0
THEN
v_afmeldtekst := TRIM (SUBSTR (pbody,
INSTR (UPPER (pbody), '@AFMELDTEKST:') + 13,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@AFMELDTEKST:') + 13), '#') - 1));
ELSE
v_afmeldtekst := '';
END IF;
-- Bepaal de noteur op basis van e-mail adres zoals in pfrom?
v_errormsg := 'Fout bepalen noteur ' || COALESCE (pfrom, '???');
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
INTO v_perslid_key, v_kostenplaats_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 (pfrom) || '%';
-- Bepaal bestaande melding?
v_errormsg := 'Fout bepalen melding ' || COALESCE (v_exist_ticket, '???');
SELECT m.mld_melding_key, m.mld_melding_status,
(SELECT COUNT ( * )
FROM mld_opdr
WHERE TO_CHAR (mld_melding_key) = v_exist_ticket
AND mld_statusopdr_key NOT IN (1, 2, 6, 7)), -- Open
sm.mld_ins_discipline_key
INTO v_melding_key, v_melding_status, v_open_opdr, v_discipline_key
FROM mld_melding m, mld_stdmelding sm
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND TO_CHAR (m.mld_melding_key) = v_exist_ticket;
-- Als bestaande Sogeti-opdracht, dan ook toevoegen Opdracht-notitie
-- en eventueel afmelden!
v_errormsg := 'Fout bepalen Sogeti-opdracht';
v_opdracht_id := SUBSTR (TRIM (SUBSTR (psubject, INSTR (psubject, 'MELDING') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (psubject, INSTR (psubject, 'MELDING') + 7)) || ' ', '\s') - 1);
v_errormsg := 'Fout bepalen Sogeti-opdracht ' || v_opdracht_id;
SELECT COUNT (*)
INTO v_count
FROM mld_opdr
WHERE mld_uitvoerende_keys = 22644 -- Sogeti
AND TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'));
IF v_count = 1
THEN
SELECT mld_opdr_key, mld_statusopdr_key
INTO v_opdracht_key, v_opdracht_status
FROM mld_opdr
WHERE mld_uitvoerende_keys = 22644 -- Sogeti
AND TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'));
v_errormsg := 'Fout toevoegen opdracht-notitie';
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
VALUES (v_opdracht_key, v_perslid_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000));
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Notitie onder exist-opdracht ' || v_opdracht_id);
-- Sogeti-opdracht afmelden?
IF v_afmeldactie > 0
THEN
-- Bepaal of noteur deze opdracht zou mogen afmelden?
v_errormsg := 'Fout bepalen opdracht-autorisaties';
SELECT COUNT (*)
INTO v_count
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.prs_perslid_key = v_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.fac_functie_key IN (38, 39, 321) -- ORDBOF/ORDBO2/EXTORD
AND gr.ins_discipline_key = v_discipline_key
AND gr.fac_gebruiker_prs_level_write < 9
AND gr.fac_gebruiker_alg_level_write < 9;
-- Opdracht is Toegekend/Geaccepteerd <20>n geautoriseerd?
IF v_opdracht_status IN (5, 8) AND v_count > 0
THEN
v_errormsg := 'Fout toevoegen opdracht-afmeldtekst';
UPDATE mld_opdr
SET mld_opdr_opmerking = v_afmeldtekst || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, 1995)
WHERE mld_opdr_key = v_opdracht_key;
v_errormsg := 'Fout afmelden opdracht';
MLD.setopdrachtstatus (v_opdracht_key, 6, v_perslid_key); -- Afgemeld
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Exist-opdracht naar afgemeld ' || v_opdracht_id);
ELSE
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Exist-opdracht NIET afgemeld ' || v_opdracht_id);
END IF;
END IF;
END IF;
v_errormsg := 'Fout toevoegen melding-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,
pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
0);
-- Default tracking is even goed genoeg.
--fac.trackaction ('MLDNOT', v_melding_key, v_perslid_key, NULL, '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Notitie onder exist-melding ' || v_melding_key);
-- Als Sogeti de noteur is, dan vlaggetjes zetten zoals mld_edit_note.asp dat doet!
BEGIN
IF v_perslid_key = c_sogeti_key AND fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- Backoffice + Attentie
WHERE mld_melding_key = v_melding_key;
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Niet gelukt om Attentie te zetten.');
END;
-- Melding afmelden?
IF v_afmeldactie > 0
THEN
-- Bepaal of noteur deze melding zou mogen afmelden?
v_errormsg := 'Fout bepalen autorisaties';
SELECT COUNT (*)
INTO v_count
FROM fac_gebruikersgroep gg, fac_groeprechten gr
WHERE gg.prs_perslid_key = v_perslid_key
AND gr.fac_groep_key = gg.fac_groep_key
AND gr.fac_functie_key = 34 -- MLDBOF
AND gr.ins_discipline_key = v_discipline_key
AND gr.fac_gebruiker_prs_level_write < 9
AND gr.fac_gebruiker_alg_level_write < 9;
-- Melding is niet al Afgemeld/Verwerkt, g<><67>n open opdrachten <20>n geautoriseerd?
IF v_melding_status NOT IN (5, 6) AND v_open_opdr = 0 AND v_count > 0
THEN
v_errormsg := 'Fout toevoegen afmeldtekst';
UPDATE mld_melding
SET mld_melding_opmerking = v_afmeldtekst
WHERE mld_melding_key = v_melding_key;
v_errormsg := 'Fout afmelden melding';
mld.setmeldingstatus (v_melding_key, 5, v_perslid_key);
mld.mld_nextworkflowstep (v_melding_key, 1); -- 1=Completed
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Exist-melding naar afgemeld ' || v_melding_key);
ELSE
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Exist-melding NIET afgemeld ' || v_melding_key);
END IF;
END IF;
WHEN UPPER (pto) LIKE 'SOGETI@%'
THEN
-- Controleer bestaan afgesproken Sogeti-user!
v_errormsg := 'Fout bepalen Sogeti-user';
SELECT prs_perslid_key
INTO v_count
FROM prs_v_aanwezigperslid
WHERE prs_perslid_key = c_sogeti_key;
v_errormsg := 'Fout bepalen Sogeti-opdracht';
IF INSTR (psubject, '##FID:') > 0
THEN
v_opdracht_id := SUBSTR (TRIM (SUBSTR (psubject, INSTR (psubject, '##FID:') + 6)), 1, REGEXP_INSTR (TRIM (SUBSTR (psubject, INSTR (psubject, '##FID:') + 6)) || ' ', '\s') - 1);
END IF;
v_errormsg := 'Fout bepalen Sogeti-opdracht ' || v_opdracht_id;
SELECT o.mld_melding_key, o.mld_opdr_key, o.mld_statusopdr_key, COALESCE (o2k.mld_kenmerk_key, -1)
INTO v_melding_key, v_opdracht_key, v_opdracht_status, v_kenmerk_key
FROM mld_opdr o,
(SELECT mld_typeopdr_key, mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_kenmerk_verwijder IS NULL
AND mld_srtkenmerk_key = 2141) o2k -- Refnr. leverancier
WHERE o.mld_uitvoerende_keys = 22644 -- Sogeti
AND TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'))
AND o.mld_typeopdr_key = o2k.mld_typeopdr_key(+);
v_errormsg := 'Fout bepalen Sogeti-ref';
IF INSTR (pbody, '##SNID:') > 0 AND v_kenmerk_key IS NOT NULL
THEN
SELECT MAX (mld_kenmerkopdr_key)
INTO v_kenmerkopdr_key
FROM mld_v_aanwezigkenmerkopdr
WHERE mld_opdr_key = v_opdracht_key
AND mld_kenmerk_key = v_kenmerk_key;
v_refnr_lev := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)) || ' ', '\s') - 1);
IF v_kenmerkopdr_key IS NULL
THEN
v_errormsg := 'Fout toevoegen Sogeti-ref';
INSERT INTO mld_kenmerkopdr (mld_opdr_key, mld_kenmerk_key, mld_kenmerkopdr_waarde)
VALUES (v_opdracht_key, v_kenmerk_key, v_refnr_lev);
ELSE
v_errormsg := 'Fout bijwerken Sogeti-ref';
UPDATE mld_kenmerkopdr
SET mld_kenmerkopdr_waarde = v_refnr_lev
WHERE mld_kenmerkopdr_key = v_kenmerkopdr_key;
END IF;
END IF;
v_errormsg := 'Fout bepalen behandeling';
IF INSTR (pbody, '##BEHANDELING:') > 0
THEN
v_behandeling := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##BEHANDELING:') + 14)), 1, LEAST (INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##BEHANDELING:') + 14)) || '##', '##') - 1, 2000));
END IF;
v_errormsg := 'Fout toevoegen opdracht-notitie';
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
VALUES (v_opdracht_key, c_sogeti_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || v_behandeling);
v_errormsg := 'Fout bepalen afhandeling';
IF INSTR (pbody, '##AFHANDELING:') > 0
THEN
v_afhandeling := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##AFHANDELING:') + 14)), 1, LEAST (INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##AFHANDELING:') + 14)) || '##', '##') - 1, 2000));
IF INSTR (UPPER (v_afhandeling), 'RESOLUTION NOTES:') > 0
THEN
v_afhandeling := TRIM (SUBSTR (v_afhandeling, INSTR (UPPER (v_afhandeling), 'RESOLUTION NOTES:') + 17));
IF INSTR (UPPER (v_afhandeling), 'REF:', -1) > 0
THEN
v_afhandeling := TRIM (SUBSTR (v_afhandeling, 1, INSTR (UPPER (v_afhandeling), 'REF:', -1) - 1));
END IF;
END IF;
END IF;
IF INSTR (UPPER (psubject), '##AFMELDEN') > 0 AND v_opdracht_status IN (5, 8) -- Toegekend/Geaccepteerd
THEN
v_errormsg := 'Fout toevoegen opdracht-afhandeling';
UPDATE mld_opdr
SET mld_opdr_opmerking = v_afhandeling || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, 1995)
WHERE mld_opdr_key = v_opdracht_key;
--v_errormsg := 'Fout toevoegen melding-afhandeling';
--UPDATE mld_melding
-- SET mld_melding_opmerking = v_afhandeling || CHR (13) || CHR (10) || SUBSTR (mld_melding_opmerking, 1, 1995)
-- WHERE mld_melding_key = v_melding_key;
v_errormsg := 'Fout toevoegen melding-notitie';
INSERT INTO mld_melding_note (mld_melding_key,
prs_perslid_key,
mld_melding_note_omschrijving,
mld_melding_note_flag)
VALUES (v_melding_key,
c_sogeti_key,
v_afhandeling,
0);
v_errormsg := 'Fout bijwerken opdracht-status';
MLD.setopdrachtstatus (v_opdracht_key, 6, c_sogeti_key); -- Afgemeld
--v_errormsg := 'Fout bijwerken melding-status'; -- MNNL#61759: Besloten de bovenliggende melding niet te sluiten!
--MLD.updatemeldingstatus (v_melding_key, 1, NULL);
END IF;
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Status/voortgang bijgewerkt bij opdracht: ' || v_opdracht_id);
WHEN UPPER (pto) LIKE 'SNOW@%'
THEN
-- Controleer bestaan afgesproken Sogeti-user!
v_errormsg := 'Fout bepalen Sogeti-user';
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
INTO v_perslid_key, v_kostenplaats_key
FROM prs_v_aanwezigperslid p, prs_afdeling a
WHERE p.prs_perslid_key = c_sogeti_key
AND p.prs_afdeling_key = a.prs_afdeling_key;
v_errormsg := 'Fout bepalen melding';
IF INSTR (UPPER (pbody), '@MELDING:') > 0
THEN
v_melding := TRIM (SUBSTR (pbody,
INSTR (UPPER (pbody), '@MELDING:') + 9,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@MELDING:') + 9), '#') - 1));
ELSE
v_melding := '';
END IF;
v_errormsg := 'Fout bepalen onderwerp';
IF INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') > 0
THEN
v_onderwerp := TRIM (SUBSTR (pbody,
INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') + 19,
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') + 19), '#') - 1));
ELSE
v_onderwerp := '';
END IF;
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
-- pbody achter @MELDING?
v_errormsg := 'Fout bepalen soortmelding ' || COALESCE (v_melding, '???');
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key), MIN (COALESCE (m2k.mld_kenmerk_key, -1))
INTO v_discipline_key, v_stdmelding_key, v_kenmerk_key
FROM mld_discipline md, mld_stdmelding sm,
(SELECT mld_stdmelding_key, mld_kenmerk_key
FROM mld_kenmerk
WHERE mld_kenmerk_verwijder IS NULL
AND mld_srtkenmerk_key = -1) m2k -- Refnr. leverancier
WHERE md.ins_discipline_verwijder IS NULL
--AND md.ins_srtdiscipline_key = 21 -- Service Request
AND md.ins_discipline_key = sm.mld_ins_discipline_key
AND sm.mld_stdmelding_verwijder IS NULL
AND sm.mld_stdmelding_upper = UPPER (v_melding)
AND sm.mld_stdmelding_key = m2k.mld_stdmelding_key(+)
GROUP BY sm.mld_ins_discipline_key;
-- Suggested extensions:
-- - Check for MLDUSE-write autorisations
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)
VALUES ('MLD',
4, -- email
2, --v_locatie_key,
NULL, --v_onrgoed_keys,
SYSDATE,
pfrom || 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 (v_onderwerp, 1, 80))
RETURNING mld_melding_key
INTO v_melding_key;
/*
v_errormsg := 'Fout bepalen Sogeti-ref';
IF INSTR (pbody, '##SNID:') > 0 AND v_kenmerk_key IS NOT NULL
THEN
v_refnr_lev := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)) || ' ', '\s') - 1);
v_errormsg := 'Fout toevoegen Sogeti-ref';
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_melding_key, v_kenmerk_key, v_refnr_lev);
END IF;
*/
v_errormsg := 'Fout bijwerken melding-status';
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
-- Handle workflow actions for completion.
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
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', 'MNNL_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;
/
CREATE OR REPLACE VIEW mnnl_v_rap_mail_error
(
hide_f_offset,
datum,
hint,
error
)
AS
SELECT SYSDATE - imp_log_datum, imp_log_datum, imp_log_hint, imp_log_omschrijving
FROM imp_log
WHERE imp_log_applicatie = 'PROCESSEMAIL' AND imp_log_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -1);
CREATE OR REPLACE VIEW mnnl_v_incident_xref
(
mld_melding_key,
incident_xref
)
AS
SELECT m.mld_melding_key, TO_CHAR (m.mld_melding_key) || ' [' || s.mld_statuses_omschrijving || ']'
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_statuses s
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND td.ins_srtdiscipline_key = 22 -- Incident
AND m.mld_melding_status = s.mld_statuses_key;
CREATE OR REPLACE VIEW mnnl_v_udr_deel
(
deel_key,
discipline,
soort,
groep,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar,
afdeling,
opmerking,
regio,
district,
locatie_code,
locatie_omschrijving,
locatie_plaats,
gebouwcode,
gebouw,
terreinsectorcode,
terreinsector,
verdiepingcode,
ruimtenr,
werkplekvolgnr,
werkplek,
uitleenbaar,
uitgeleend,
res_opmerking,
beheerder,
vervaldatum,
actief,
aantal,
state,
statedate,
fclt_3d_discipline_key,
fclt_3d_afdeling_key,
fclt_3d_locatie_key,
status
)
AS
SELECT ii.ins_deel_key,
lcl.x ('ins_discipline_omschrijving',
id.ins_discipline_key,
id.ins_discipline_omschrijving),
lcl.x ('ins_srtdeel_omschrijving',
s.ins_srtdeel_key,
s.ins_srtdeel_omschrijving),
lcl.x ('ins_srtgroep_omschrijving',
sg.ins_srtgroep_key,
sg.ins_srtgroep_omschrijving),
s.ins_srtdeel_code,
ii.ins_deel_omschrijving,
COALESCE (ii.plaats, ii.eigenaar),
ii.ins_alg_ruimte_type,
ii.plaats,
ii.eigenaar,
ii.afdeling,
ii.ins_deel_opmerking,
ii.regio,
ii.district,
ii.locatie_code,
ii.locatie_omschrijving,
ii.locatie_plaats,
ii.alg_gebouw_code,
ii.alg_gebouw_omschrijving,
ii.alg_terreinsector_code,
ii.alg_terreinsector_omschrijving,
ii.alg_verdieping_code,
ii.alg_ruimte_nr,
ii.prs_werkplek_volgnr,
ii.prs_werkplek_omschrijving,
DECODE (s.ins_srtdeel_uitleenbaar,
1, lcl.l ('lcl_yes'),
lcl.l ('lcl_no')),
DECODE (ii.ins_alg_ruimte_key_org,
NULL, lcl.l ('lcl_no'),
lcl.l ('lcl_yes')),
ii.res_deel_opmerking,
pf.prs_perslid_naam_full,
ii.ins_deel_vervaldatum,
DECODE (ii.ins_deel_actief, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')),
ii.ins_deel_aantal,
ii.ins_deel_state,
ii.ins_deel_statedate,
sg.ins_discipline_key,
ii.ins_alg_ruimte_key,
ii.alg_locatie_key,
(SELECT fu.fac_usrdata_omschr
FROM ins_kenmerkdeel kd, ins_kenmerk k, fac_usrdata fu
WHERE k.ins_kenmerk_key = kd.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 24
AND fu.fac_usrtab_key = 204
AND TO_CHAR (fac_usrdata_key) = kd.ins_kenmerkdeel_waarde
AND ii.ins_deel_key = kd.ins_deel_key) stat
FROM (SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
i.ins_srtdeel_key,
i.prs_perslid_key_beh,
TO_CHAR (NULL) plaats,
i.ins_deel_opmerking,
i.ins_alg_ruimte_type,
NULL regio,
NULL district,
NULL locatie_code,
NULL locatie_omschrijving,
NULL locatie_plaats,
NULL alg_gebouw_code,
NULL alg_gebouw_omschrijving,
NULL alg_terreinsector_code,
NULL alg_terreinsector_omschrijving,
NULL alg_verdieping_code,
NULL alg_ruimte_nr,
NULL prs_werkplek_volgnr,
NULL prs_werkplek_omschrijving,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
(SELECT d.prs_afdeling_omschrijving
FROM prs_v_afdeling d
WHERE prs_afdeling_key = i.ins_alg_ruimte_key)
eigenaar,
(SELECT d.prs_afdeling_naam
FROM prs_v_afdeling d
WHERE prs_afdeling_key = i.ins_alg_ruimte_key)
afdeling,
i.ins_discipline_key,
i.ins_alg_ruimte_key,
NULL alg_locatie_key,
i.ins_deel_actief,
i.ins_deel_aantal,
i.ins_alg_ruimte_key_org,
i.ins_deel_state,
i.ins_deel_statedate
FROM ins_deel i,
(SELECT res_deel_key,
res_ins_deel_key,
res_deel_opmerking res_deel_opmerking
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd,
prs_v_afdeling_boom d,
prs_bedrijf b
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_key = rd.res_ins_deel_key(+)
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND i.ins_alg_ruimte_key = d.prs_afdeling_key
AND i.ins_alg_ruimte_type = 'A'
UNION
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
i.ins_srtdeel_key,
i.prs_perslid_key_beh,
TO_CHAR (NULL) plaats,
i.ins_deel_opmerking,
i.ins_alg_ruimte_type,
NULL regio,
NULL district,
NULL locatie_code,
NULL locatie_omschrijving,
NULL locatie_plaats,
NULL alg_gebouw_code,
NULL alg_gebouw_omschrijving,
NULL alg_terreinsector_code,
NULL alg_terreinsector_omschrijving,
NULL alg_verdieping_code,
NULL alg_ruimte_nr,
NULL prs_werkplek_volgnr,
NULL prs_werkplek_omschrijving,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
pf.prs_perslid_naam_full eigenaar,
(SELECT d.prs_afdeling_naam
FROM prs_v_afdeling d
WHERE prs_afdeling_key = p.prs_afdeling_key),
i.ins_discipline_key,
p.prs_afdeling_key,
NULL alg_locatie_key,
i.ins_deel_actief,
i.ins_deel_aantal,
i.ins_alg_ruimte_key_org,
i.ins_deel_state,
i.ins_deel_statedate
FROM ins_deel i,
(SELECT res_deel_key,
res_ins_deel_key,
res_deel_opmerking res_deel_opmerking
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
prs_v_afdeling_boom d
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_key = rd.res_ins_deel_key(+)
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND i.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = d.prs_afdeling_key
AND i.ins_alg_ruimte_type = 'P'
UNION
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
i.ins_srtdeel_key,
i.prs_perslid_key_beh,
TO_CHAR (NULL) plaats,
i.ins_deel_opmerking,
i.ins_alg_ruimte_type,
NULL regio,
NULL district,
NULL locatie_code,
NULL locatie_omschrijving,
NULL locatie_plaats,
NULL alg_gebouw_code,
NULL alg_gebouw_omschrijving,
NULL alg_terreinsector_code,
NULL alg_terreinsector_omschrijving,
NULL alg_verdieping_code,
NULL alg_ruimte_nr,
NULL prs_werkplek_volgnr,
NULL prs_werkplek_omschrijving,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
c.prs_contactpersoon_naam eigenaar,
NULL afdeling,
NULL discipline_key,
NULL,
NULL alg_locatie_key,
i.ins_deel_actief,
i.ins_deel_aantal,
i.ins_alg_ruimte_key_org,
i.ins_deel_state,
i.ins_deel_statedate
FROM ins_deel i,
(SELECT res_deel_key,
res_ins_deel_key,
res_deel_opmerking res_deel_opmerking
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd,
prs_contactpersoon c
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_key = rd.res_ins_deel_key(+)
AND i.ins_deel_module = 'INS'
AND i.ins_deel_parent_key IS NULL
AND i.ins_alg_ruimte_key = c.prs_contactpersoon_key
AND i.ins_alg_ruimte_type = 'C'
UNION
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
i.ins_srtdeel_key,
i.prs_perslid_key_beh,
o.alg_plaatsaanduiding,
i.ins_deel_opmerking,
i.ins_alg_ruimte_type,
re.alg_regio_omschrijving,
di.alg_district_omschrijving,
l.alg_locatie_code locatie_code,
l.alg_locatie_omschrijving locatie_omschrijving,
l.alg_locatie_plaats locatie_plaats,
o.alg_gebouw_code,
o.alg_gebouw_omschrijving,
o.alg_terreinsector_code,
o.alg_terreinsector_omschrijving,
o.alg_verdieping_code,
o.alg_ruimte_nr,
o.prs_werkplek_volgnr,
o.prs_werkplek_omschrijving,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
NULL eigenaar,
NULL afdeling,
i.ins_discipline_key,
NULL,
l.alg_locatie_key,
i.ins_deel_actief,
i.ins_deel_aantal,
i.ins_alg_ruimte_key_org,
i.ins_deel_state,
i.ins_deel_statedate
FROM ins_deel i,
ins_v_alg_overzicht o,
alg_locatie l,
alg_district di,
alg_regio re,
(SELECT res_deel_key,
res_ins_deel_key,
res_deel_opmerking res_deel_opmerking
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd
WHERE i.ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
AND i.ins_deel_key = rd.res_ins_deel_key(+)
AND i.ins_deel_parent_key IS NULL
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND o.alg_locatie_key = i.ins_alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND di.alg_regio_key = re.alg_regio_key) ii,
ins_srtdeel s,
ins_srtgroep sg,
ins_discipline id,
prs_v_perslid_fullnames pf
WHERE sg.ins_srtgroep_key = s.ins_srtgroep_key
AND id.ins_discipline_key = sg.ins_discipline_key
AND ii.prs_perslid_key_beh = pf.prs_perslid_key(+)
AND s.ins_srtdeel_key = ii.ins_srtdeel_key;
-- MNNL#41772: Stakeholders voor small changes.
CREATE OR REPLACE VIEW mnnl_v_perslid_small_changes
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
prs_perslid_naam_log_full,
prs_perslid_naam_log_friendly,
prs_perslid_verwijder
)
AS
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_friendly || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_full || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_friendly || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
p.prs_perslid_verwijder
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key IN (441, 442, 443, 444, 445, 447, 456, 453, 462) -- ITL Rechtenbeheer/Unix/Werkplekbeheer (ICT)/Wintel/Oracle/Netwerken/Technisch Applicatiebeheer+MDT Procesbesturing&Integratie+IV Security
AND prs_perslid_key = pf.prs_perslid_key);
CREATE OR REPLACE VIEW mnnl_v_perslid_all
(
prs_perslid_key,
prs_perslid_naam_full,
prs_perslid_naam_friendly,
prs_perslid_naam_log_full,
prs_perslid_naam_log_friendly,
prs_perslid_verwijder
)
AS
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_friendly || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_full || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
pf.prs_perslid_naam_friendly || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
p.prs_perslid_verwijder
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pf.prs_perslid_key;
-- MNNL#58785: Kenmerkdomein met alle objecten.
CREATE OR REPLACE VIEW mnnl_v_objecten
(
ins_deel_key,
ins_deel_oms,
ins_deel_verwijder
)
AS SELECT d.ins_deel_key,
--td.ins_discipline_omschrijving || '-' || sg.ins_srtgroep_omschrijving || '-' || sd.ins_srtdeel_omschrijving || '-' || d.ins_deel_omschrijving ins_deel_oms,
d.ins_deel_omschrijving || ' (' || sd.ins_srtdeel_omschrijving || ')' ins_deel_oms,
d.ins_deel_verwijder
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline td
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key;
-- MNNL#59416: Kenmerkdomein met lopende Service Request/Incident-meldingen.
CREATE OR REPLACE VIEW mnnl_v_mld_uitleen
(
mld_melding_key,
mld_melding_oms,
mld_melding_tht
)
AS SELECT m.mld_melding_key,
TO_CHAR (m.mld_melding_key) || '/' || m.mld_melding_onderwerp || '/' || pf.prs_perslid_naam_full,
DECODE (m.mld_melding_status, 1, TRUNC (SYSDATE), 5, TRUNC (SYSDATE), 6, TRUNC (SYSDATE), NULL)
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, prs_v_perslid_fullnames_all pf
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key IN (21, 22) -- Service Request/Incident
AND m.prs_perslid_key = pf.prs_perslid_key;
CREATE OR REPLACE VIEW mnnl_v_rap_change_appr
(
--fclt_3d_discipline_key,
mld_melding_key,
changenr,
soortchange,
onderwerp,
aanvrager,
urgent,
datum_gereed, -- MNNL#67050: Wijzigen naar datum_gereed (ipv. uitvoering).
appr_infra_op,
appr_infra_wn,
appr_infra_wp,
appr_peba,
appr_pepa,
appr_vz,
appr_vb,
appr_fds,
appr_port,
appr_pega,
appr_doc,
appr_ota,
appr_pi,
appr_bi,
appr_rpa,
appr_fac,
appr_cbv,
appr_sec,
appr_infra_nw,
besproken_in_cab
)
AS
SELECT --m.mld_ins_discipline_key,
m.mld_melding_key,
TO_CHAR (m.mld_melding_key),
m.mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
m.prs_perslid_naam_friendly,
DECODE (urgent.mld_kenmerkmelding_waarde, NULL, NULL, 'Ja') urgent,
--duv.mld_kenmerkmelding_waarde,
mld_melding_einddatum,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = op.mld_kenmerkmelding_waarde) op,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wn.mld_kenmerkmelding_waarde) wn,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wp.mld_kenmerkmelding_waarde) wp,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = peba.mld_kenmerkmelding_waarde) peba,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pepa.mld_kenmerkmelding_waarde) pepa,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vz.mld_kenmerkmelding_waarde) vz,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vb.mld_kenmerkmelding_waarde) vb,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fds.mld_kenmerkmelding_waarde) fds,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = port.mld_kenmerkmelding_waarde) port,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pega.mld_kenmerkmelding_waarde) pega,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = doc.mld_kenmerkmelding_waarde) doc,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ota.mld_kenmerkmelding_waarde) ota,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pi.mld_kenmerkmelding_waarde) pi,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = bi.mld_kenmerkmelding_waarde) bi,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = rpa.mld_kenmerkmelding_waarde) rpa,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fac.mld_kenmerkmelding_waarde) fac,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = cbv.mld_kenmerkmelding_waarde) cbv,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = sec.mld_kenmerkmelding_waarde) sec,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = nw.mld_kenmerkmelding_waarde) nw,
NULL
FROM (SELECT sm.mld_ins_discipline_key, m.mld_melding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_onderwerp, pf.prs_perslid_naam_friendly, m.mld_melding_einddatum
FROM mld_melding m, mld_stdmelding sm, prs_v_perslid_fullnames_all pf
WHERE m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (502, 501, 2141, 2381, 2401) -- RFC Medium change/RFC Large change/Vastlegging CAB approvals/RFC Medium/RFC Large
AND m.prs_perslid_key = pf.prs_perslid_key) m
LEFT JOIN mld_v_aanwezigkenmerkmelding urgent
ON m.mld_melding_key = urgent.mld_melding_key
AND urgent.mld_kenmerk_key = 381 -- Urgent change
--LEFT JOIN mld_v_aanwezigkenmerkmelding duv
-- ON m.mld_melding_key = duv.mld_melding_key
-- AND duv.mld_kenmerk_key IN (387, 386) -- Gewenste datum uitvoering
LEFT JOIN mld_v_aanwezigkenmerkmelding op
ON m.mld_melding_key = op.mld_melding_key
AND op.mld_kenmerk_key IN (251, 252, 3121, 3841, 3822) -- Approval Infra Oracle Platform
LEFT JOIN mld_v_aanwezigkenmerkmelding wn
ON m.mld_melding_key = wn.mld_melding_key
AND wn.mld_kenmerk_key IN (255, 256, 3122, 3842, 3823) -- Approval Infra Wintel en Netwerken
LEFT JOIN mld_v_aanwezigkenmerkmelding wp
ON m.mld_melding_key = wp.mld_melding_key
AND wp.mld_kenmerk_key IN (253, 254, 3124, 3844, 3824) -- Approval Infra Werkplekbeheer
LEFT JOIN mld_v_aanwezigkenmerkmelding peba
ON m.mld_melding_key = peba.mld_melding_key
AND peba.mld_kenmerk_key IN (246, 245, 3126, 3846, 3826) -- Approval Basisadministratie
LEFT JOIN mld_v_aanwezigkenmerkmelding pepa
ON m.mld_melding_key = pepa.mld_melding_key
AND pepa.mld_kenmerk_key IN (259, 260, 3127, 3847, 3827) -- Approval Pensioenadministratie
LEFT JOIN mld_v_aanwezigkenmerkmelding vz
ON m.mld_melding_key = vz.mld_melding_key
AND vz.mld_kenmerk_key IN (266, 265, 3129, 3849, 3829) -- Approval Verzekeringen
LEFT JOIN mld_v_aanwezigkenmerkmelding vb
ON m.mld_melding_key = vb.mld_melding_key
AND vb.mld_kenmerk_key IN (264, 263, 3182, 3850, 3830) -- Approval Vermogensbeheer
LEFT JOIN mld_v_aanwezigkenmerkmelding fds
ON m.mld_melding_key = fds.mld_melding_key
AND fds.mld_kenmerk_key IN (250, 249, 3123, 3851, 3831) -- Approval Finance, Risk en HR
LEFT JOIN mld_v_aanwezigkenmerkmelding port
ON m.mld_melding_key = port.mld_melding_key
AND port.mld_kenmerk_key IN (262, 261, 3130, 3852, 3832) -- Approval Portalen
LEFT JOIN mld_v_aanwezigkenmerkmelding pega
ON m.mld_melding_key = pega.mld_melding_key
AND pega.mld_kenmerk_key IN (2681, 2683, 3131, 3853, 3833) -- Approval PEGA
LEFT JOIN mld_v_aanwezigkenmerkmelding doc
ON m.mld_melding_key = doc.mld_melding_key
AND doc.mld_kenmerk_key IN (248, 247, 3132, 3854, 3834) -- Approval Document Services
LEFT JOIN mld_v_aanwezigkenmerkmelding ota
ON m.mld_melding_key = ota.mld_melding_key
AND ota.mld_kenmerk_key IN (257, 258, 3133, 3855, 3835) -- Approval Ontwikkelstraat
LEFT JOIN mld_v_aanwezigkenmerkmelding pi
ON m.mld_melding_key = pi.mld_melding_key
AND pi.mld_kenmerk_key IN (1102, 1122, 3134, 3856, 3836) -- Approval Procesbesturing en Integratie
LEFT JOIN mld_v_aanwezigkenmerkmelding bi
ON m.mld_melding_key = bi.mld_melding_key
AND bi.mld_kenmerk_key IN (1204, 1203, 3135, 3857, 3837) -- Approval Business Intelligence
LEFT JOIN mld_v_aanwezigkenmerkmelding rpa
ON m.mld_melding_key = rpa.mld_melding_key
AND rpa.mld_kenmerk_key IN (2785, 2782, 3128, 3848, 3828) -- Approval Robotics
LEFT JOIN mld_v_aanwezigkenmerkmelding fac
ON m.mld_melding_key = fac.mld_melding_key
AND fac.mld_kenmerk_key IN (3081, 3103, 3125, 3845, 3825) -- Approval Facilities
LEFT JOIN mld_v_aanwezigkenmerkmelding cbv
ON m.mld_melding_key = cbv.mld_melding_key
AND cbv.mld_kenmerk_key IN (3163, 3162, 3181, 3821, 3803) -- Approval Batchverwerking en Implementatie
LEFT JOIN mld_v_aanwezigkenmerkmelding sec
ON m.mld_melding_key = sec.mld_melding_key
AND sec.mld_kenmerk_key IN (4102, 4161) -- Approval Security
LEFT JOIN mld_v_aanwezigkenmerkmelding nw
ON m.mld_melding_key = nw.mld_melding_key
AND nw.mld_kenmerk_key IN (4942, 4941) -- Approval Infra Netwerken
;
-- MNNL#63830: Soortgelijke rapportage als hierboven, maar dan kijkend naar de
-- 'CAB Testakkoord'- ipv. 'CAB Appr'-reeks van kenmerksoorten.
CREATE OR REPLACE VIEW mnnl_v_rap_change_test
(
--fclt_3d_discipline_key,
mld_melding_key,
changenr,
soortchange,
onderwerp,
aanvrager,
urgent,
datum_gereed, -- MNNL#67050: Wijzigen naar datum_gereed (ipv. uitvoering).
testakoord_infra_op,
testakoord_infra_wn,
testakoord_infra_wp,
testakoord_peba,
testakoord_pepa,
testakoord_vz,
testakoord_vb,
testakoord_fds,
testakoord_port,
testakoord_pega,
testakoord_doc,
testakoord_ota,
testakoord_pi,
testakoord_bi,
testakoord_rpa,
testakoord_fac,
testakoord_cbv,
testakoord_sec,
testakoord_infra_nw,
besproken_in_cab,
status
)
AS
SELECT --m.mld_ins_discipline_key,
m.mld_melding_key,
TO_CHAR (m.mld_melding_key),
m.mld_stdmelding_omschrijving,
m.mld_melding_onderwerp,
m.prs_perslid_naam_friendly,
DECODE (urgent.mld_kenmerkmelding_waarde, NULL, NULL, 'Ja') urgent,
--duv.mld_kenmerkmelding_waarde,
mld_melding_einddatum,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = op.mld_kenmerkmelding_waarde) op,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wn.mld_kenmerkmelding_waarde) wn,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wp.mld_kenmerkmelding_waarde) wp,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = peba.mld_kenmerkmelding_waarde) peba,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pepa.mld_kenmerkmelding_waarde) pepa,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vz.mld_kenmerkmelding_waarde) vz,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vb.mld_kenmerkmelding_waarde) vb,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fds.mld_kenmerkmelding_waarde) fds,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = port.mld_kenmerkmelding_waarde) port,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pega.mld_kenmerkmelding_waarde) pega,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = doc.mld_kenmerkmelding_waarde) doc,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ota.mld_kenmerkmelding_waarde) ota,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pi.mld_kenmerkmelding_waarde) pi,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = bi.mld_kenmerkmelding_waarde) bi,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = rpa.mld_kenmerkmelding_waarde) rpa,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fac.mld_kenmerkmelding_waarde) fac,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = cbv.mld_kenmerkmelding_waarde) cbv,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = sec.mld_kenmerkmelding_waarde) sec,
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = nw.mld_kenmerkmelding_waarde) nw,
NULL,
m.mld_statuses_omschrijving status
FROM (SELECT sm.mld_ins_discipline_key, m.mld_melding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_onderwerp, pf.prs_perslid_naam_friendly, ms.mld_statuses_omschrijving, m.mld_melding_einddatum
FROM mld_melding m, mld_stdmelding sm, prs_v_perslid_fullnames_all pf, mld_statuses ms
WHERE EXISTS (SELECT 1 FROM mld_opdr WHERE mld_melding_key = m.mld_melding_key) -- Zodra opdracht aangemaakt
AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (totdat RFC gesloten)
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_stdmelding_key IN (502, 501, 2381, 2401) -- RFC Medium change/RFC Large change/RFC Medium/RFC Large
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_melding_status = ms.mld_statuses_key) m
LEFT JOIN mld_v_aanwezigkenmerkmelding urgent
ON m.mld_melding_key = urgent.mld_melding_key
AND urgent.mld_kenmerk_key = 381 -- Urgent change
--LEFT JOIN mld_v_aanwezigkenmerkmelding duv
-- ON m.mld_melding_key = duv.mld_melding_key
-- AND duv.mld_kenmerk_key IN (387, 386) -- Gewenste datum uitvoering
LEFT JOIN mld_v_aanwezigkenmerkmelding op
ON m.mld_melding_key = op.mld_melding_key
AND op.mld_kenmerk_key IN (3961, 3978) -- Testakkoord Infra Oracle Platform
LEFT JOIN mld_v_aanwezigkenmerkmelding wn
ON m.mld_melding_key = wn.mld_melding_key
AND wn.mld_kenmerk_key IN (3962, 3979) -- Testakkoord Infra Wintel en Netwerken
LEFT JOIN mld_v_aanwezigkenmerkmelding wp
ON m.mld_melding_key = wp.mld_melding_key
AND wp.mld_kenmerk_key IN (3963, 3980) -- Testakkoord Infra Werkplekbeheer
LEFT JOIN mld_v_aanwezigkenmerkmelding peba
ON m.mld_melding_key = peba.mld_melding_key
AND peba.mld_kenmerk_key IN (3965, 3982) -- Testakkoord Basisadministratie
LEFT JOIN mld_v_aanwezigkenmerkmelding pepa
ON m.mld_melding_key = pepa.mld_melding_key
AND pepa.mld_kenmerk_key IN (3966, 3983) -- Testakkoord Pensioenadministratie
LEFT JOIN mld_v_aanwezigkenmerkmelding vz
ON m.mld_melding_key = vz.mld_melding_key
AND vz.mld_kenmerk_key IN (3968, 3985) -- Testakkoord Verzekeringen
LEFT JOIN mld_v_aanwezigkenmerkmelding vb
ON m.mld_melding_key = vb.mld_melding_key
AND vb.mld_kenmerk_key IN (3969, 3986) -- Testakkoord Vermogensbeheer
LEFT JOIN mld_v_aanwezigkenmerkmelding fds
ON m.mld_melding_key = fds.mld_melding_key
AND fds.mld_kenmerk_key IN (3970, 3987) -- Testakkoord Finance, Risk en HR
LEFT JOIN mld_v_aanwezigkenmerkmelding port
ON m.mld_melding_key = port.mld_melding_key
AND port.mld_kenmerk_key IN (3971, 3988) -- Testakkoord Portalen
LEFT JOIN mld_v_aanwezigkenmerkmelding pega
ON m.mld_melding_key = pega.mld_melding_key
AND pega.mld_kenmerk_key IN (3972, 3989) -- Testakkoord PEGA
LEFT JOIN mld_v_aanwezigkenmerkmelding doc
ON m.mld_melding_key = doc.mld_melding_key
AND doc.mld_kenmerk_key IN (3973, 3990) -- Testakkoord Document Services
LEFT JOIN mld_v_aanwezigkenmerkmelding ota
ON m.mld_melding_key = ota.mld_melding_key
AND ota.mld_kenmerk_key IN (3974, 3991) -- Testakkoord Ontwikkelstraat
LEFT JOIN mld_v_aanwezigkenmerkmelding pi
ON m.mld_melding_key = pi.mld_melding_key
AND pi.mld_kenmerk_key IN (3975, 3992) -- Testakkoord Procesbesturing en Integratie
LEFT JOIN mld_v_aanwezigkenmerkmelding bi
ON m.mld_melding_key = bi.mld_melding_key
AND bi.mld_kenmerk_key IN (3976, 3993) -- Testakkoord Business Intelligence
LEFT JOIN mld_v_aanwezigkenmerkmelding rpa
ON m.mld_melding_key = rpa.mld_melding_key
AND rpa.mld_kenmerk_key IN (3967, 3984) -- Testakkoord Robotics
LEFT JOIN mld_v_aanwezigkenmerkmelding fac
ON m.mld_melding_key = fac.mld_melding_key
AND fac.mld_kenmerk_key IN (3964, 3981) -- Testakkoord Facilities
LEFT JOIN mld_v_aanwezigkenmerkmelding cbv
ON m.mld_melding_key = cbv.mld_melding_key
AND cbv.mld_kenmerk_key IN (3941, 3977) -- Testakkoord Batchverwerking en Implementatie
LEFT JOIN mld_v_aanwezigkenmerkmelding sec
ON m.mld_melding_key = sec.mld_melding_key
AND sec.mld_kenmerk_key IN (4121, 4163) -- Testakkoord Security
LEFT JOIN mld_v_aanwezigkenmerkmelding nw
ON m.mld_melding_key = nw.mld_melding_key
AND nw.mld_kenmerk_key IN (4962, 4982) -- Testakkoord Infra Netwerken
;
CREATE OR REPLACE VIEW mnnl_v_noti_change_appr
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS -- Ter info naar enkele medewerkers voor alle medium en large changes!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##', TO_CHAR (m.mld_melding_key)),
'##DISC##', md.ins_discipline_omschrijving),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##SUBJECT##', m.mld_melding_onderwerp),
m.mld_melding_key,
NULL,
NULL,
k.mld_kenmerk_hint,
NULL,
NULL
FROM fac_tracking t,
mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 43 -- MLDNEW
AND t.fac_tracking_refkey = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_kenmerktype = 'V' -- Checkbox
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 1261 -- IV Changemanagement
AND sn.fac_srtnotificatie_code = 'CUST01'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
UNION ALL -- Ter approval naar approver volgens hint als 'Impact'-kenmerk gezet op 'Moet approven'!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##', TO_CHAR (m.mld_melding_key)),
'##DISC##', md.ins_discipline_omschrijving),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##SUBJECT##', m.mld_melding_onderwerp),
m.mld_melding_key,
NULL,
NULL,
k.mld_kenmerk_hint,
NULL,
NULL
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
fac_v_aanwezigusrdata ud,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND INSTR (sk.mld_srtkenmerk_upper, 'IMPACT') > 0
AND sk.fac_kenmerkdomein_key IS NOT NULL -- Referentie-kenmerk
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key = 1261 -- IV Changemanagement
--AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (zolang nog niet Gesloten)
AND m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = 'MOET APPROVEN'
AND sn.fac_srtnotificatie_code = 'CUST02'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
UNION ALL -- Ter info naar enkele medewerkers volgens checkbox-hint (generieke notificatie voor alle vakgroepen/statussen)!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##', TO_CHAR (m.mld_melding_key)),
'##DISC##', md.ins_discipline_omschrijving),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##SUBJECT##', m.mld_melding_onderwerp),
m.mld_melding_key,
NULL,
NULL,
k.mld_kenmerk_hint,
NULL,
NULL
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sk.mld_srtkenmerk_kenmerktype = 'V' -- Checkbox
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key != 1261 -- Anders dan IV Changemanagement
AND sn.fac_srtnotificatie_code = 'CUST04'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
UNION ALL -- Ter approval naar approver zoals voor small changes ingevuld bij 'Approval van collega'!
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##', TO_CHAR (m.mld_melding_key)),
'##DISC##', md.ins_discipline_omschrijving),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##SUBJECT##', m.mld_melding_onderwerp),
m.mld_melding_key,
NULL,
NULL,
p.prs_perslid_email,
NULL,
NULL
FROM mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
prs_perslid p,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 241 -- Approval van collega
AND km.mld_melding_key = m.mld_melding_key
AND m.mld_stdmelding_key = 503 -- RFC Small change
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
--AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (zolang nog niet Gesloten)
AND m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
AND sn.fac_srtnotificatie_code = 'CUST07'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
CREATE OR REPLACE VIEW mnnl_v_noti_jira
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (sn.fac_srtnotificatie_oms, '##TEAM##', TRIM (SUBSTR (sk.mld_srtkenmerk_omschrijving, INSTR (sk.mld_srtkenmerk_omschrijving, ' ')))),
m.mld_melding_key,
NULL,
NULL,
k.mld_kenmerk_hint,
NULL,
NULL
FROM fac_tracking t,
mld_melding m,
mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
mld_srtkenmerk sk,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = 763 -- Intake business verzoek
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_key IN (1049, 1040, 1042, 1045, 1046, 1038, 1501, 1502, 1563)
AND INSTR (UPPER (k.mld_kenmerk_hint), '@') > 0 -- TODO: Preciezer?
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
AND sn.fac_srtnotificatie_code = 'CUST03'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_JIRA'
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
-- MNNL#67354: Inzage medewerkers tbv. Jira (alleen key + oslogin)!
CREATE OR REPLACE VIEW mnnl_v_rap_prs_api (id, login)
AS
SELECT prs_perslid_key, prs_perslid_oslogin FROM prs_v_aanwezigperslid;
-- MNNL#62675: Volgens configuratie in Eigen tabel met key=1081 reminders naar
-- <email> als <soortmelding> met <prio> op <percentage van SLA>.
-- MNNL#71193: CUST10-noti op SLA_DREMPEL3 (initieel 110%=10% overschrijding).
CREATE OR REPLACE VIEW mnnl_v_noti_mld_sla
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
WITH m2m
AS (SELECT sm.mld_stdmelding_key,
SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, ':') + 1, 1) drempel,
ud.fac_usrdata_prijs prio,
ud.fac_usrdata_omschr mailto
FROM fac_v_aanwezigusrdata ud, mld_discipline md, mld_stdmelding sm
WHERE fac_usrtab_key = 1081
AND SUBSTR (fac_usrdata_code, 1, 1) = 'V'
AND fac.safe_to_number (SUBSTR (ud.fac_usrdata_code, 2, INSTR (ud.fac_usrdata_code, ':') - 2)) = md.ins_discipline_key
AND md.ins_discipline_key = sm.mld_ins_discipline_key
UNION ALL
SELECT sm.mld_stdmelding_key,
SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, ':') + 1, 1) drempel,
ud.fac_usrdata_prijs prio,
ud.fac_usrdata_omschr mailto
FROM fac_v_aanwezigusrdata ud, mld_stdmelding sm
WHERE fac_usrtab_key = 1081
AND SUBSTR (ud.fac_usrdata_code, 1, 1) = 'M'
AND fac.safe_to_number (SUBSTR (ud.fac_usrdata_code, 2, INSTR (ud.fac_usrdata_code, ':') - 2)) = sm.mld_stdmelding_key),
drempel1 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 2841), -- SLA_DREMPEL1
drempel2 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 2842), -- SLA_DREMPEL2
drempel3 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 4081) -- SLA_DREMPEL3
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
'##DREMPEL1##',
TO_CHAR (100 * m.waarde)),
m.mld_melding_key,
NULL,
NULL,
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
NULL,
NULL
FROM (SELECT m.mld_melding_key,
m.mld_melding_onderwerp,
m.mld_melding_behandelaar_key,
m2m.mailto,
drempel1.waarde,
mld.geteinddatum (
m.mld_melding_datum,
m.mld_stdmelding_key,
m.mld_melding_spoed,
NULL, -- Plaats binnen/kleiner locatie!
NULL, -- Object met laagste uitvoertijd
MLD_T_UITVOERTIJD (drempel1.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
dat50pct
FROM mld_melding m, m2m, drempel1
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
AND m.mld_melding_einddatum_std > SYSDATE
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
AND m2m.drempel = '1' -- Initieel 50%
AND drempel1.waarde > 0 -- Drempel gedefinieerd
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
prs_perslid p,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
AND sn.fac_srtnotificatie_code = 'CUST05'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
--AND TO_CHAR (m.dat50pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
AND m.dat50pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
'##DREMPEL2##',
TO_CHAR (100 * m.waarde)),
m.mld_melding_key,
NULL,
NULL,
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
NULL,
NULL
FROM (SELECT m.mld_melding_key,
m.mld_melding_onderwerp,
m.mld_melding_behandelaar_key,
m2m.mailto,
drempel2.waarde,
mld.geteinddatum (
m.mld_melding_datum,
m.mld_stdmelding_key,
m.mld_melding_spoed,
NULL, -- Plaats binnen/kleiner locatie!
NULL, -- Object met laagste uitvoertijd
MLD_T_UITVOERTIJD (drempel2.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
dat80pct
FROM mld_melding m, m2m, drempel2
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
AND m.mld_melding_einddatum_std > SYSDATE
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
AND m2m.drempel = '2' -- Initieel 80%
AND drempel2.waarde > 0 -- Drempel gedefinieerd
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
prs_perslid p,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
AND sn.fac_srtnotificatie_code = 'CUST06'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
--AND TO_CHAR (m.dat80pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
AND m.dat80pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
UNION ALL
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##',
TO_CHAR (m.mld_melding_key)),
'##SUBJECT##',
m.mld_melding_onderwerp),
'##DREMPEL3##',
TO_CHAR (100 * m.waarde)),
m.mld_melding_key,
NULL,
NULL,
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
NULL,
NULL
FROM (SELECT m.mld_melding_key,
m.mld_melding_onderwerp,
m.mld_melding_behandelaar_key,
m2m.mailto,
drempel3.waarde,
mld.geteinddatum (
m.mld_melding_datum,
m.mld_stdmelding_key,
m.mld_melding_spoed,
NULL, -- Plaats binnen/kleiner locatie!
NULL, -- Object met laagste uitvoertijd
MLD_T_UITVOERTIJD (drempel3.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
dat110pct
FROM mld_melding m, m2m, drempel3
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
AND m.mld_melding_einddatum_std > SYSDATE
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
AND m2m.drempel = '3' -- Initieel 110%
AND drempel3.waarde > 0 -- Drempel gedefinieerd
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
prs_perslid p,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
AND sn.fac_srtnotificatie_code = 'CUST10'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
--AND TO_CHAR (m.dat110pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
AND m.dat110pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
-- MNNL#61759: Notificatie van status/voortgang tbv. Sogeti/ServiceNow!
CREATE OR REPLACE VIEW mnnl_v_noti_sogeti
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##SNID##', TRIM (ko.mld_kenmerkopdr_waarde)),
'##SUBJECT##', m.mld_melding_onderwerp),
mn.mld_melding_key,
NULL,
NULL,
'sogeti@service-now.com;Roger.van.der.Wiel@mn.nl',
NULL,
NULL
FROM mld_melding_note mn,
mld_melding m,
--mld_stdmelding sm,
--mld_discipline md,
mld_opdr o,
mld_v_aanwezigkenmerkopdr ko,
mld_kenmerk k,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE mn.mld_melding_note_flag = 0 -- Hidden notitie
AND mn.prs_perslid_key != 22824 -- Mail-user tbv. Sogeti/Werkplekbeheer
AND mn.mld_melding_key = m.mld_melding_key
--AND m.mld_stdmelding_key = sm.mld_stdmelding_key
--AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND mn.mld_melding_key = o.mld_melding_key
AND o.mld_uitvoerende_keys = 22644 -- Sogeti
AND o.mld_opdr_key = ko.mld_opdr_key
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 2141 -- Refnr. leverancier
AND NOT EXISTS (SELECT 1 FROM mld_opdr WHERE mld_melding_key = o.mld_melding_key AND mld_opdr_bedrijfopdr_volgnr > o.mld_opdr_bedrijfopdr_volgnr)
AND sn.fac_srtnotificatie_code = 'CUST08'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_SOGETI'
AND mn.mld_melding_note_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
-- MMNL#54758: RAPPORT met alle (INCIDENT) meldingen met en of zonder object (regel per object).
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen
(
melding_key,
melding_nr,
melder,
melder_key,
melder_afd,
melder_afd_omschr,
melding_soort,
melding_productgroep,
melding_subproductgroep,
melding_behandelgroep,
melding_behandelaar,
melding_behandelaar_key,
melding_subproductgroepgroep,
melding_status,
melding_sla_nvt,
melding_sla_werkdgn,
melding_sla_werkuren,
melding_sla_accptdgn,
melding_sla_accpturen,
melding_sla_plan_uitvoertijd,
melding_datum,
melding_einddatum,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
melding_doorlooptijd_dgn,
melding_doorloopijd_uren,
melding_onderwerp,
melding_vomschrijving,
melding_opmerking,
melding_prioriteit,
melding_prioriteittxt,
melding_rating,
melding_rating_opmerking,
melding_uitvoering_sla_dagen,
melding_uitvoering_sla_uren,
melding_afspraak_sla_dagen,
melding_afspraak_sla_uren,
melding_accept_sla_optijd,
melding_uitvoering_sla_optijd,
melding_afspraak_sla_optijd,
melding_selfservice,
object_discipline,
object_soort,
object_groep,
object_omschrijving,
object_plaatseigenaar,
storing_scope,
storing_blokkerend,
storing_sinds,
storing_frequency,
storing_type
)
AS
SELECT DISTINCT m.melding_key,
m.meldingnummer,
m.melder,
m.melder_key,
m.afdeling,
m.afdeling_omschrijving,
m.soortmelding,
m.productgroep,
m.subproductgroep,
m.behandelgroep,
m.behandelaar,
m.behandelaar_key,
m.subproductgroepgroep,
m.melding_status,
m.sla_nvt,
m.sla_werkdgn,
m.sla_werkuren,
m.sla_accptdgn,
m.sla_accpturen,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving,
m.melding_opmerking,
m.prioriteit,
m.prioriteittxt,
m.rating,
m.rating_opmerking,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.selfservice,
dg.ins_discipline_omschrijving discipline,
dg.ins_srtgroep_omschrijving groep,
dg.ins_srtdeel_omschrijving soort,
dg.ins_deel_omschrijving omschrijving,
dg.alg_plaatsaanduiding plaatseigenaar,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 143))
waarde143,
DECODE (
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 145),
1, 'ja',
' ')
waarde145,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.MLD_KENMERK_KEY = 146) waarde146, -- storing_sinds,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 147))
waarde147, -- storing_frequency,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 2441))
waarde2441
FROM mld_v_udr_melding m, mld_melding_object mo, ins_v_deel_gegevens dg
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND UPPER (m.soortmelding) = 'INCIDENT'
AND m.melding_key = mo.mld_melding_key(+)
AND mo.ins_deel_key = dg.ins_deel_key(+);
-- MMNL#54758: RAPPORT met alle (INCIDENT) meldingen met en of zonder object (regel per melding).
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen2
(
melding_key,
melding_nr,
melder,
melder_key,
melder_afd,
melder_afd_omschr,
melding_soort,
melding_productgroep,
melding_subproductgroep,
melding_behandelgroep,
melding_behandelaar,
melding_behandelaar_key,
melding_subproductgroepgroep,
melding_status,
melding_sla_nvt,
melding_sla_werkdgn,
melding_sla_werkuren,
melding_sla_accptdgn,
melding_sla_accpturen,
melding_sla_plan_uitvoertijd,
melding_datum,
melding_einddatum,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
melding_doorlooptijd_dgn,
melding_doorloopijd_uren,
melding_onderwerp,
melding_vomschrijving,
melding_opmerking,
melding_prioriteit,
melding_prioriteittxt,
melding_rating,
melding_rating_opmerking,
melding_uitvoering_sla_dagen,
melding_uitvoering_sla_uren,
melding_afspraak_sla_dagen,
melding_afspraak_sla_uren,
melding_accept_sla_optijd,
melding_uitvoering_sla_optijd,
melding_afspraak_sla_optijd,
melding_selfservice,
melding_objecten,
storing_scope,
storing_blokkerend,
storing_sinds,
storing_frequency,
storing_type
)
AS
SELECT DISTINCT m.melding_key,
m.meldingnummer,
m.melder,
m.melder_key,
m.afdeling,
m.afdeling_omschrijving,
m.soortmelding,
m.productgroep,
m.subproductgroep,
m.behandelgroep,
m.behandelaar,
m.behandelaar_key,
m.subproductgroepgroep,
m.melding_status,
m.sla_nvt,
m.sla_werkdgn,
m.sla_werkuren,
m.sla_accptdgn,
m.sla_accpturen,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving,
m.melding_opmerking,
m.prioriteit,
m.prioriteittxt,
m.rating,
m.rating_opmerking,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.selfservice,
mo.objecten,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 143))
waarde143,
DECODE (
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 145),
1, 'ja',
' ')
waarde145,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 146)
waarde146, -- storing_sinds,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 147))
waarde147, -- storing_frequency,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 2441))
waarde2441
FROM mld_v_udr_melding m,
( SELECT mo.mld_melding_key,
LISTAGG (dg.ins_deel_omschrijving || ' (' || dg.ins_srtdeel_omschrijving || ')', ', ')
WITHIN GROUP (ORDER BY dg.ins_deel_omschrijving)
objecten
FROM mld_melding_object mo, ins_v_deel_gegevens dg
WHERE mo.ins_deel_key = dg.ins_deel_key
GROUP BY mo.mld_melding_key) mo
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND UPPER (m.soortmelding) = 'INCIDENT'
AND m.melding_key = mo.mld_melding_key(+);
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen3
(
melding_key,
melding_nr,
melder,
melder_key,
melder_afd,
melder_afd_omschr,
melding_soort,
melding_productgroep,
melding_subproductgroep,
melding_behandelgroep,
melding_behandelaar,
melding_behandelaar_key,
melding_subproductgroepgroep,
melding_status,
melding_sla_nvt,
melding_sla_werkdgn,
melding_sla_werkuren,
melding_sla_accptdgn,
melding_sla_accpturen,
melding_sla_plan_uitvoertijd,
melding_datum,
melding_einddatum,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
melding_doorlooptijd_dgn,
melding_doorloopijd_uren,
melding_onderwerp,
melding_vomschrijving,
melding_opmerking,
melding_prioriteit,
melding_prioriteittxt,
melding_rating,
melding_rating_opmerking,
melding_uitvoering_sla_dagen,
melding_uitvoering_sla_uren,
melding_afspraak_sla_dagen,
melding_afspraak_sla_uren,
melding_accept_sla_optijd,
melding_uitvoering_sla_optijd,
melding_afspraak_sla_optijd,
melding_selfservice,
melding_objecten,
storing_scope,
storing_blokkerend,
storing_sinds,
storing_frequency,
storing_type,
aant_onderliggend,
problem_eigenaar,
behandelteam,
actieve_behandelaar
)
AS
WITH onderliggend AS ( SELECT mld_melding_mldgroup_key, COUNT (*) aant
FROM mld_melding
WHERE mld_melding_mldgroup_key IS NOT NULL
GROUP BY mld_melding_mldgroup_key)
SELECT DISTINCT
m.melding_key,
m.meldingnummer,
m.melder,
m.melder_key,
m.afdeling,
m.afdeling_omschrijving,
m.soortmelding,
m.productgroep,
m.subproductgroep,
m.behandelgroep,
m.behandelaar,
m.behandelaar_key,
m.subproductgroepgroep,
m.melding_status,
m.sla_nvt,
m.sla_werkdgn,
m.sla_werkuren,
m.sla_accptdgn,
m.sla_accpturen,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving,
m.melding_opmerking,
m.prioriteit,
m.prioriteittxt,
m.rating,
m.rating_opmerking,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.selfservice,
mo.objecten,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 143))
waarde143,
DECODE (
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 145),
1, 'ja',
' ')
waarde145,
(SELECT mld_kenmerkmelding_waarde
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 146)
waarde146, -- storing_sinds,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 147))
waarde147, -- storing_frequency,
(SELECT fac_usrdata_omschr
FROM fac_usrdata
WHERE fac_usrdata_key =
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
FROM mld_kenmerkmelding km
WHERE km.mld_melding_key = m.melding_key
AND km.mld_kenmerk_key = 2441))
waarde2441,
onderliggend.aant,
pe.prs_perslid_naam_full problem_eigenaar,
m.actieve_behandelgroep behandelteam,
pfab.prs_perslid_naam_full act_behandelaar
FROM mld_v_udr_melding m,
( SELECT mo.mld_melding_key,
LISTAGG (dg.ins_deel_omschrijving || ' (' || dg.ins_srtdeel_omschrijving || ')', ', ')
WITHIN GROUP (ORDER BY dg.ins_deel_omschrijving)
objecten
FROM mld_melding_object mo, ins_v_deel_gegevens dg
WHERE mo.ins_deel_key = dg.ins_deel_key
GROUP BY mo.mld_melding_key) mo,
onderliggend,
(SELECT km.mld_melding_key, pf.prs_perslid_naam_full
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, prs_v_perslid_fullnames_all pf
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 1217 -- Problem eigenaar
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key) pe,
prs_v_perslid_fullnames pfab
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND m.melding_key = mo.mld_melding_key(+)
AND m.melding_key = onderliggend.mld_melding_mldgroup_key(+)
AND m.melding_key = pe.mld_melding_key(+)
AND m.actieve_behandelaar_key = pfab.prs_perslid_key(+);
-- MNNL#53038: Basisrapport met alle Intake-meldingen incl. kenmerken.
CREATE OR REPLACE VIEW mnnl_v_rap_mld_intake
(
melding_key,
meldingnummer,
melding_regio,
melding_district,
melding_locatiecode,
melding_locatie,
melding_locatieplaats,
fclt_3d_locatie_key,
melding_gebouwcode,
melding_gebouw,
melding_verdieping,
melding_ruimtenr,
melding_ruimte,
melding_ordernr,
kostensoortgroep,
kostensoort,
kostenplaats,
kostenplaats_oms,
melder,
melder_key,
afdeling,
afdeling_omschrijving,
fclt_3d_afdeling_key,
bedrijf_key,
invoerder,
meldbron,
soortmelding,
fclt_3d_discipline_key,
productgroep,
subproductgroep,
behandelgroep,
behandelaar,
behandelaar_key,
subproductgroepgroep,
fclt_3d_discipline2_key,
actieve_behandelgroep,
actieve_behandelaar_key,
actieve_behandelaar,
melding_status,
sla_nvt,
sla_werkdgn,
sla_werkuren,
sla_respijtdgn,
sla_respijturen,
sla_accptdgn,
sla_accpturen,
plan_uitvoertijd_sla,
melding_datum,
melding_einddatum,
melding_acceptdatum,
melding_afgemeld,
melding_accepted,
doorlooptijd_werkdgn,
doorlooptijd_werkuren,
onderwerp,
vomschrijving,
melding_opmerking,
prioriteit,
prioriteittxt,
rating,
rating_opmerking,
bolletje,
accept_sla_dagen,
accept_sla_uren,
uitvoering_sla_dagen,
uitvoering_sla_uren,
afspraak_sla_dagen,
afspraak_sla_uren,
accept_sla_optijd,
uitvoering_sla_optijd,
afspraak_sla_optijd,
selfservice,
reden_aanvraag, --kenmerk1,
aanvullende_acties, --kenmerk2,
afronding_intake, --kenmerk3,
jira_ticket, --kenmerk4,
cap_bestelling, --kenmerk5,
gewenst_gereed, --kenmerk6,
leverancier, --kenmerk7,
teaminzet_netwerken, --kenmerk8,
teaminzet_oracle_dba, --kenmerk9,
teaminzet_oracle_mw, --kenmerk10,
teaminzet_unix_linux, --kenmerk11,
teaminzet_wpbeheer, --kenmerk12,
teaminzet_wintel, --kenmerk13,
wens, --kenmerk14,
stappen_genomen, --kenmerk15,
bpost_niet_aanmaken, --kenmerk16,
uren_bestelling, --kenmerk17,
teaminzet_tab, --kenmerk18,
teaminzet_security, --kenmerk19,
afronding_ontwerp, --kenmerk20,
teaminzet_cloud_comp, --kenmerk21,
service_ontwerp, --kenmerk22,
link_naar_ontwerp, --kenmerk23,
coord_ontwerpfase, --kenmerk24,
kenmerk25,
kenmerk26,
kenmerk27,
kenmerk28,
kenmerk29,
kenmerk30
)
AS
WITH mk AS (SELECT sk.vnr, sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving, kw.mld_melding_key melding_key, kw.waarde
FROM (SELECT ROWNUM vnr, mld_srtkenmerk_key, mld_srtkenmerk_omschrijving
FROM ( SELECT sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving, sk.mld_srtkenmerk_aanmaak
FROM mld_srtkenmerk sk
WHERE sk.mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
AND COALESCE (sk.mld_srtkenmerk_verwijder, SYSDATE) > TO_DATE ('010118', 'ddmmyy')
AND EXISTS (SELECT 1 -- Alleen Intake-kenmerksoorten
FROM mld_stdmelding sm, mld_discipline md, mld_kenmerk k
WHERE sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_srtdiscipline_key = 121 -- Intake!
AND ((k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = sm.mld_stdmelding_key)
OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = md.ins_discipline_key)
OR (k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = 121)) -- Intake!
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key)
AND sk.mld_srtkenmerk_key != 1061 -- VERWIJDERD/Co<43>rdinator van Ontwerp fase
ORDER BY 3, 1)) sk
LEFT JOIN
(SELECT sk.mld_srtkenmerk_key, km.mld_melding_key,
DECODE (sk.mld_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
km.mld_kenmerkmelding_waarde)
waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key) kw
ON sk.mld_srtkenmerk_key = kw.mld_srtkenmerk_key)
SELECT x.melding_key,
x.meldingnummer,
x.melding_regio,
x.melding_district,
x.melding_locatiecode,
x.melding_locatie,
x.melding_locatieplaats,
x.fclt_3d_locatie_key,
x.melding_gebouwcode,
x.melding_gebouw,
x.melding_verdieping,
x.melding_ruimtenr,
x.melding_ruimte,
x.melding_ordernr,
x.kostensoortgroep,
x.kostensoort,
x.kostenplaats,
x.kostenplaats_oms,
x.melder,
x.melder_key,
x.afdeling,
x.afdeling_omschrijving,
x.fclt_3d_afdeling_key,
x.bedrijf_key,
x.invoerder,
x.meldbron,
x.soortmelding,
x.fclt_3d_discipline_key,
x.productgroep,
x.subproductgroep,
x.behandelgroep,
x.behandelaar,
x.behandelaar_key,
x.subproductgroepgroep,
x.fclt_3d_discipline2_key,
x.actieve_behandelgroep,
x.actieve_behandelaar_key,
x.actieve_behandelaar,
x.melding_status,
x.sla_nvt,
x.sla_werkdgn,
x.sla_werkuren,
x.sla_respijtdgn,
x.sla_respijturen,
x.sla_accptdgn,
x.sla_accpturen,
x.plan_uitvoertijd_sla,
x.melding_datum,
x.melding_einddatum,
x.melding_acceptdatum,
x.melding_afgemeld,
x.melding_accepted,
x.doorlooptijd_werkdgn,
x.doorlooptijd_werkuren,
x.onderwerp,
x.vomschrijving,
x.melding_opmerking,
x.prioriteit,
x.prioriteittxt,
x.rating,
x.rating_opmerking,
x.bolletje,
x.accept_sla_dagen,
x.accept_sla_uren,
x.uitvoering_sla_dagen,
x.uitvoering_sla_uren,
x.afspraak_sla_dagen,
x.afspraak_sla_uren,
x.accept_sla_optijd,
x.uitvoering_sla_optijd,
x.afspraak_sla_optijd,
x.selfservice,
k1.waarde kenmerk1,
k2.waarde kenmerk2,
k3.waarde kenmerk3,
k4.waarde kenmerk4,
k5.waarde kenmerk5,
k6.waarde kenmerk6,
k7.waarde kenmerk7,
k8.waarde kenmerk8,
k9.waarde kenmerk9,
k10.waarde kenmerk10,
k11.waarde kenmerk11,
k12.waarde kenmerk12,
k13.waarde kenmerk13,
k14.waarde kenmerk14,
k15.waarde kenmerk15,
k16.waarde kenmerk16,
k17.waarde kenmerk17,
k18.waarde kenmerk18,
k19.waarde kenmerk19,
k20.waarde kenmerk20,
k21.waarde kenmerk21,
k22.waarde kenmerk22,
k23.waarde kenmerk23,
k24.waarde kenmerk24,
k25.waarde kenmerk25,
k26.waarde kenmerk26,
k27.waarde kenmerk27,
k28.waarde kenmerk28,
k29.waarde kenmerk29,
k30.waarde kenmerk30
FROM (SELECT v.* FROM mld_v_udr_melding v WHERE UPPER (v.soortmelding) = 'INTAKE') x
LEFT JOIN mk k1 ON x.melding_key = k1.melding_key AND k1.vnr = 1
LEFT JOIN mk k2 ON x.melding_key = k2.melding_key AND k2.vnr = 2
LEFT JOIN mk k3 ON x.melding_key = k3.melding_key AND k3.vnr = 3
LEFT JOIN mk k4 ON x.melding_key = k4.melding_key AND k4.vnr = 4
LEFT JOIN mk k5 ON x.melding_key = k5.melding_key AND k5.vnr = 5
LEFT JOIN mk k6 ON x.melding_key = k6.melding_key AND k6.vnr = 6
LEFT JOIN mk k7 ON x.melding_key = k7.melding_key AND k7.vnr = 7
LEFT JOIN mk k8 ON x.melding_key = k8.melding_key AND k8.vnr = 8
LEFT JOIN mk k9 ON x.melding_key = k9.melding_key AND k9.vnr = 9
LEFT JOIN mk k10 ON x.melding_key = k10.melding_key AND k10.vnr = 10
LEFT JOIN mk k11 ON x.melding_key = k11.melding_key AND k11.vnr = 11
LEFT JOIN mk k12 ON x.melding_key = k12.melding_key AND k12.vnr = 12
LEFT JOIN mk k13 ON x.melding_key = k13.melding_key AND k13.vnr = 13
LEFT JOIN mk k14 ON x.melding_key = k14.melding_key AND k14.vnr = 14
LEFT JOIN mk k15 ON x.melding_key = k15.melding_key AND k15.vnr = 15
LEFT JOIN mk k16 ON x.melding_key = k16.melding_key AND k16.vnr = 16
LEFT JOIN mk k17 ON x.melding_key = k17.melding_key AND k17.vnr = 17
LEFT JOIN mk k18 ON x.melding_key = k18.melding_key AND k18.vnr = 18
LEFT JOIN mk k19 ON x.melding_key = k19.melding_key AND k19.vnr = 19
LEFT JOIN mk k20 ON x.melding_key = k20.melding_key AND k20.vnr = 20
LEFT JOIN mk k21 ON x.melding_key = k21.melding_key AND k21.vnr = 21
LEFT JOIN mk k22 ON x.melding_key = k22.melding_key AND k22.vnr = 22
LEFT JOIN mk k23 ON x.melding_key = k23.melding_key AND k23.vnr = 23
LEFT JOIN mk k24 ON x.melding_key = k24.melding_key AND k24.vnr = 24
LEFT JOIN mk k25 ON x.melding_key = k25.melding_key AND k25.vnr = 25
LEFT JOIN mk k26 ON x.melding_key = k26.melding_key AND k26.vnr = 26
LEFT JOIN mk k27 ON x.melding_key = k27.melding_key AND k27.vnr = 27
LEFT JOIN mk k28 ON x.melding_key = k28.melding_key AND k28.vnr = 28
LEFT JOIN mk k29 ON x.melding_key = k29.melding_key AND k29.vnr = 29
LEFT JOIN mk k30 ON x.melding_key = k30.melding_key AND k30.vnr = 30;
CREATE OR REPLACE VIEW MNNL_V_PERSLID_NAAMTEL
(
PERSLID_KEY,
NAAMTEL
)
AS
SELECT prs_perslid_key,
prs_perslid_naam
|| ' ('
|| prs_perslid_voornaam
|| ') - '
|| prs_perslid_oslogin
|| ' - '
|| prs_perslid_telefoonnr
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND prs_perslid_voornaam NOT LIKE '%Leverancier%'
AND prs_perslid_voornaam NOT LIKE '%Algemeen%'
AND prs_perslid_naam NOT LIKE '%test%'
AND prs_perslid_naam NOT LIKE '%INACTIEF%'
AND prs_perslid_oslogin NOT LIKE '%LEV_%'
AND prs_perslid_email LIKE '%@mn.nl%'
ORDER BY prs_perslid_naam;
CREATE OR REPLACE VIEW mnnl_v_rap_overwerk
(
res_key,
res_rsv_ruimte_key,
datum_overwerk,
start_tijd,
eind_tijd,
soort_overwerk,
verdieping,
interne_deelnemers,
externe_deelnemers
)
AS
SELECT DISTINCT
rsv.res_reservering_key,
rsv.res_rsv_ruimte_key,
TRUNC (rsv.res_rsv_ruimte_van),
TO_CHAR (rsv.res_rsv_ruimte_van, 'HH24:MI'),
TO_CHAR (rsv.res_rsv_ruimte_tot, 'HH24:MI'),
ra.res_activiteit_omschrijving,
x.fac_usrdata_omschr,
pers.deelnemer,
(SELECT LISTAGG (bez_afspraak_naam || ' (' || bez_afspraak_bedrijf || ')' , ', ')
WITHIN GROUP (ORDER BY bez_afspraak_naam)
FROM bez_bezoekers b, bez_afspraak a
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND a.res_rsv_ruimte_key = rsv.res_rsv_ruimte_key) -- Externe deelnemers
FROM res_rsv_ruimte rsv,
res_activiteit ra,
res_kenmerkwaarde rkw,
mnnl_v_perslid_naamtel pt,
(SELECT DISTINCT f.fac_usrdata_omschr, f.fac_usrdata_key
FROM fac_usrdata f, res_kenmerk rk, res_kenmerkwaarde rkw
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
AND rk.res_srtkenmerk_key = 164 -- Verdieping
AND rkw.res_kenmerkwaarde_verwijder IS NULL
AND f.fac_usrtab_key = 621) x,
(SELECT DISTINCT
LISTAGG (pt.naamtel, ', ')
WITHIN GROUP (ORDER BY pt.naamtel)
deelnemer,
rkw.res_rsv_ruimte_key
FROM mnnl_v_perslid_naamtel pt,
res_kenmerk rk,
res_kenmerkwaarde rkw
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
AND rk.res_srtkenmerk_key = 162 -- Deelnemer
AND rkw.res_kenmerkwaarde_verwijder IS NULL
AND rkw.res_kenmerkreservering_waarde = pt.perslid_key
GROUP BY rkw.res_rsv_ruimte_key) pers
WHERE ra.res_activiteit_key IN (210, 211) -- Overwerk, Overwerk Weekend
AND rsv.res_activiteit_key = ra.res_activiteit_key
AND rsv.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key
AND x.fac_usrdata_key =
fac.safe_to_number (rkw.res_kenmerkreservering_waarde)
AND pers.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key;
CREATE OR REPLACE VIEW mnnl_v_ins_qrc_ruimte
(
FCLT_3D_LOCATIE_KEY,
FCLT_F_LOCATIE,
FCLT_F_GEBOUW,
PLAATS,
SOORTRUIMTE,
INS_ALG_RUIMTE_TYPE,
ALG_DISTRICT_KEY,
ALG_RUIMTE_KEY,
HIDE_F_BOOKMARK_ID
)
AS
SELECT l.alg_locatie_key,
l.alg_locatie_omschrijving,
x.alg_gebouw_naam,
SUBSTR (x.alg_plaatsaanduiding, 7) plaats,
x.alg_ruimte_omschrijving soortruimte,
sr.alg_srtruimte_omschrijving,
l.alg_district_key,
x.alg_ruimte_key,
b.fac_bookmark_id
FROM alg_v_allonrgoed_gegevens x,
alg_locatie l,
alg_district di,
fac_bookmark b,
alg_ruimte r,
alg_srtruimte sr
WHERE b.fac_bookmark_naam = 'QRC naar ruimte'
AND x.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key
AND x.alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = di.alg_district_key;
-- Dummy export NACHTWERK!
-- MNNL#54328: Automatisch verwerken alle afgemelde meldingen.
CREATE OR REPLACE PROCEDURE mnnl_select_nachtwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Auto-afmelden alle afgemelde meldingen in de nacht na afmelden!
CURSOR c_mldver
IS
SELECT '[' || TO_CHAR (m.mld_melding_key) || '] ' aanduiding,
m.mld_melding_key
FROM mld_melding m
WHERE m.mld_melding_status = 5 -- Afgemeld
ORDER BY m.mld_melding_key;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_bedrijf_key NUMBER;
v_count NUMBER;
BEGIN
v_count := 0;
-- Auto-verwerken alle afgemelde meldingen in de nacht na afmelden!
FOR rec IN c_mldver
LOOP
BEGIN
v_errormsg := 'Fout auto-verwerken';
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL);
v_count := v_count + 1;
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 (p_applname, 'W', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.writelog (p_applname, 'S', 'Meldingen/#verwerkt: ' || TO_CHAR (v_count), '');
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
END mnnl_select_nachtwerk;
/
-- MNNL#53390: Inzicht in voortgang van specifiek geidentificeerde workflows.
CREATE OR REPLACE VIEW mnnl_v_rap_wf_progress
(
wf,
melding_key,
melding_datum,
melding_onderwerp,
melding_status,
melding_behandelaar,
max_stap_melding_key,
max_stap_melding_datum,
max_stap_melding_onderwerp,
max_stap_melding_status,
max_stap_melding_behandelaar,
max_stap_stdmelding_key,
max_stap_stdmelding_oms,
melder,
melder_afdeling_code,
melder_afdeling_oms,
problem_eigenaar,
aant_onderliggend
)
AS
WITH onderliggend AS ( SELECT wf.mld_melding_start_key, COUNT (*) aant
FROM mld_melding wf, mld_melding gr
WHERE wf.mld_melding_start_key IS NOT NULL
AND wf.mld_melding_mldgroup_key = gr.mld_melding_mldgroup_key
GROUP BY wf.mld_melding_start_key)
SELECT (SELECT mld_workflowstep_omschrijving FROM mld_workflowstep WHERE mld_workflowstep_key = x.mld_workflowstep_key)
wf,
x.mld_melding_key,
x.mld_melding_datum,
x.mld_melding_onderwerp,
x.mld_statuses_omschrijving melding_status,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.mld_melding_behandelaar_key)
melding_behandelaar,
stap.mld_melding_key max_stap_melding_key,
stap.mld_melding_datum max_stap_melding_datum,
stap.mld_melding_onderwerp max_stap_melding_onderwerp,
stap.mld_statuses_omschrijving max_stap_melding_status,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = stap.mld_melding_behandelaar_key)
max_stap_melding_behandelaar,
stap.mld_stdmelding_key max_stap_stdmelding_key,
stap.mld_stdmelding_omschrijving max_stap_stdmelding_oms,
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.prs_perslid_key)
melder,
x.prs_afdeling_naam,
x.prs_afdeling_omschrijving,
pf.prs_perslid_naam_full problem_eigenaar,
onderliggend.aant
FROM (SELECT m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_onderwerp,
ms.mld_statuses_omschrijving,
m.mld_melding_behandelaar_key,
m.mld_workflowstep_key,
p.prs_perslid_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving
FROM mld_melding m, mld_statuses ms, prs_perslid p, prs_afdeling a
WHERE m.mld_workflowstep_key IN (156, 325, 331, 335) -- Intake business verzoek aan IV/Problem onderzoek/Problem known error/Problem performance
AND m.mld_melding_status NOT IN (1, 5, 6) -- Lopende WFs (eerste WF-stap nog niet gesloten)
AND m.mld_melding_status = ms.mld_statuses_key
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key) x
LEFT JOIN (SELECT m.mld_melding_start_key,
m.mld_melding_key,
m.mld_melding_datum,
m.mld_melding_onderwerp,
ms.mld_statuses_omschrijving,
m.mld_melding_behandelaar_key,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving
FROM mld_melding m, mld_statuses ms, mld_stdmelding sm
WHERE m.mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
AND m.mld_stdmelding_key NOT IN (921, 1041) -- Uitsluiten specifieke "dangling" Intake-stappen
AND m.mld_melding_status = ms.mld_statuses_key
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
AND NOT EXISTS
(SELECT 1
FROM mld_melding
WHERE mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
AND mld_stdmelding_key NOT IN (921, 1041) -- Uitsluiten specifieke "dangling" Intake-stappen
AND mld_melding_start_key = m.mld_melding_start_key
AND mld_melding_key > m.mld_melding_key)) stap
ON x.mld_melding_key = stap.mld_melding_start_key
LEFT JOIN mld_v_aanwezigkenmerkmelding km
ON stap.mld_melding_key = km.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 1217 -- Problem eigenaar
AND mld_kenmerk_key = km.mld_kenmerk_key)
LEFT JOIN prs_v_perslid_fullnames_all pf
ON fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
LEFT JOIN onderliggend
ON x.mld_melding_key = onderliggend.mld_melding_start_key;
-- MNNL#56677/59398: FO afhandeling.
CREATE OR REPLACE VIEW mnnl_v_rap_fo_afhandeling
(
aanmelddatum,
afmelddatum,
vakgroeptype_key,
vakgroeptype,
vakgroep_key,
vakgroep,
soortmelding_key,
soortmelding,
meldingnr,
aanmelder,
aangemeld_fo_aant,
aangemeld_fo_perc,
afmelder,
afgemeld_fo_aant,
afgemeld_fo_perc
)
AS
SELECT fac.gettrackingdate ('MLDNEW', x.mld_melding_key) mldnew,
t.fac_tracking_datum mldafm,
x.ins_srtdiscipline_key,
x.ins_srtdiscipline_omschrijving,
x.ins_discipline_key,
x.ins_discipline_omschrijving,
x.mld_stdmelding_key,
x.mld_stdmelding_omschrijving,
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) melding_nr,
pnew.prs_perslid_naam_full,
DECODE (udnew.fac_usrdata_key, NULL, 0, DECODE (SIGN (udnew.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 1)),
DECODE (udnew.fac_usrdata_key, NULL, 0, DECODE (SIGN (udnew.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 100)),
pafm.prs_perslid_naam_full,
DECODE (t.prs_perslid_key, NULL, TO_NUMBER (NULL), DECODE (udafm.fac_usrdata_key, NULL, 0, DECODE (SIGN (udafm.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 1))),
DECODE (t.prs_perslid_key, NULL, TO_NUMBER (NULL), DECODE (udafm.fac_usrdata_key, NULL, 0, DECODE (SIGN (udafm.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 100)))
FROM (SELECT sd.ins_srtdiscipline_key,
sd.ins_srtdiscipline_prefix,
sd.ins_srtdiscipline_omschrijving,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
m.mld_melding_key,
fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) prs_mldnew_key
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd
WHERE 1 = 1
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
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) x
LEFT JOIN prs_v_perslid_fullnames_all pnew
ON x.prs_mldnew_key = pnew.prs_perslid_key
LEFT JOIN fac_v_aanwezigusrdata udnew
ON x.prs_mldnew_key = fac.safe_to_number (udnew.fac_usrdata_code)
AND udnew.fac_usrtab_key = 921 -- Aanmelders als FO
LEFT JOIN fac_tracking t
ON x.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 38
LEFT JOIN fac_v_aanwezigusrdata udafm
ON t.prs_perslid_key = fac.safe_to_number (udafm.fac_usrdata_code)
AND udafm.fac_usrtab_key = 921 -- Afmelders als FO
LEFT JOIN prs_v_perslid_fullnames_all pafm
ON t.prs_perslid_key = pafm.prs_perslid_key;
-- MNNL#62537: WP-reserveringen.
CREATE OR REPLACE VIEW mnnl_v_rap_res_wp
(
hide_f_sortering,
res_rsv_ruimte_key,
maand,
datum,
van,
tot,
afd_code,
afd_oms,
res_id,
aanvrager,
aanvrager_login,
gastheer_vrouw,
wp_id,
pp_id,
dirty
)
AS
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam2 || pc.prs_perslid_naam_full sortering,
rrr.res_rsv_ruimte_key,
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
rrr.res_rsv_ruimte_van datum,
rrr.res_rsv_ruimte_van van,
rrr.res_rsv_ruimte_tot tot,
a.prs_afdeling_naam2,
a.prs_afdeling_omschrijving,
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)
resid,
pc.prs_perslid_naam_full || '[' || p.prs_perslid_oslogin || ']' aanvrager,
p.prs_perslid_oslogin aanvrager_login,
ph.prs_perslid_naam_full gastheer,
DECODE (wp.aant,
NULL, '',
0, '',
1, wp.wp_id,
wp.wp_id || '[' || wp.aant || ']')
wp_id,
DECODE (pp.aant,
NULL, '',
0, '',
1, pp.pp_id,
pp.pp_id || '[' || pp.aant || ']')
pp_id,
DECODE (rrr.res_rsv_ruimte_dirtlevel + COALESCE (wp.res_rsv_deel_dirtlevel, 0) + COALESCE (pp.res_rsv_deel_dirtlevel, 0), 0, 'Nee', 'Ja')
FROM res_v_aanwezigrsv_ruimte rrr,
prs_perslid p,
prs_v_afdeling a,
bez_afspraak ba,
bez_bezoekers bb,
( SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel,
MIN (rd.res_deel_omschrijving) wp_id,
COUNT ( * ) aant
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
WHERE rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key = 2362 -- Werkplekken
GROUP BY rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel) wp,
( SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel,
MIN (d.ins_deel_omschrijving) pp_id,
COUNT ( * ) aant
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d
WHERE rrd.bez_bezoekers_key IS NOT NULL
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = d.ins_deel_key
--AND EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_activiteit_key = 250 AND res_rsv_ruimte_key = rrd.res_rsv_ruimte_key)
GROUP BY rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel) pp,
prs_v_perslid_fullnames_all pc,
prs_v_perslid_fullnames_all ph
WHERE rrr.res_activiteit_key = 250 -- Werkplekken
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key -- Of host?
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)
AND ba.bez_afspraak_key = bb.bez_afspraak_key(+)
AND rrr.res_rsv_ruimte_key = wp.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = pp.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key;
CREATE OR REPLACE VIEW mnnl_v_rap_res_wp_aant
(
hide_f_sortering,
maand,
datum,
unit_code,
unit_oms,
aant_wp,
aant_pp
)
AS
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam sortering,
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
TRUNC (rrr.res_rsv_ruimte_van) datum,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
COUNT ( * ) aant_wp,
SUM (DECODE (pp.aant, NULL, 0, 0, 0, pp.aant)) aant_pp
FROM res_v_aanwezigrsv_ruimte rrr,
prs_perslid p,
prs_v_afdeling_boom ab,
prs_afdeling a,
--bez_afspraak ba,
--bez_bezoekers bb,
( SELECT res_rsv_ruimte_key, COUNT ( * ) aant
FROM res_v_aanwezigrsv_deel
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty
AND bez_bezoekers_key IS NOT NULL
GROUP BY res_rsv_ruimte_key) pp
WHERE rrr.res_activiteit_key = 250 -- Werkplekken
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key -- Of host?
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
--AND rrr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)
--AND ba.bez_afspraak_key = bb.bez_afspraak_key(+)
AND rrr.res_rsv_ruimte_key = pp.res_rsv_ruimte_key(+)
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam,
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
TRUNC (rrr.res_rsv_ruimte_van),
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving;
-- MNNL#64264: Personen per autorisatiegroep.
CREATE OR REPLACE VIEW mnnl_v_udr_prs_per_groep
(
groep_key,
groep_oms,
perslid_key,
naam_full,
naam_friendly,
loginnaam,
afd_code,
afd_oms
)
AS
SELECT g.fac_groep_key, g.fac_groep_omschrijving,
p.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly,
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2),
a.prs_afdeling_naam, a.prs_afdeling_omschrijving
FROM fac_groep g, fac_gebruikersgroep gg, prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames pf
WHERE g.fac_groep_key = gg.fac_groep_key
AND gg.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_verwijder IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key;
-- MNNL#65883: FirstTimeRight-rapportage!
-- Meldingen left-joinen met first en aantal vakgroep-wijzigingen:
-- FTR=J als gesloten en nul vakgroep-wijzigingen
-- FTR=NULL als lopend en nul vakgroep-wijzigingen
-- FTR=N als 1 of meer vakgroep-wijzigingen
CREATE OR REPLACE VIEW mnnl_v_udr_mld_ftr
AS
WITH t
AS ( SELECT fac_tracking_refkey,
COUNT ( * ) aantal,
MIN (SUBSTR ('00000' || TO_CHAR (fac_tracking_key), -10)
|| SUBSTR (fac_tracking_oms,
INSTR (fac_tracking_oms, 'Vakgroep:') + 10,
INSTR (SUBSTR (fac_tracking_oms, INSTR (fac_tracking_oms, 'Vakgroep:') + 10, 100), ' --> ') - 1))
omschr
FROM fac_tracking
WHERE fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND fac_srtnotificatie_key = 45 -- MLDUPD
AND INSTR (fac_tracking_oms, 'Vakgroep:') > 0
GROUP BY fac_tracking_refkey)
SELECT m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
mb.mld_meldbron_omschrijving meldbron,
ms.mld_statuses_omschrijving meldingstatus,
m.mld_melding_datum meldingdatum,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum,
pd.prs_perslid_naam_full door,
pv.prs_perslid_naam_full voor,
DECODE (pd.prs_perslid_key, pv.prs_perslid_key, 'J', 'N') zelf,
DECODE (m.mld_melding_status,
5, DECODE (t.aantal, NULL, 'J', 'N'),
6, DECODE (t.aantal, NULL, 'J', 'N'),
DECODE (t.aantal, NULL, NULL, 'N'))
ftr,
COALESCE (t.aantal, 0) aantal,
sd.ins_srtdiscipline_omschrijving vakgroeptype_now,
COALESCE (SUBSTR (t.omschr, 11), md.ins_discipline_omschrijving) vakgroep_1st,
md.ins_discipline_omschrijving vakgroep_now,
sm.mld_stdmelding_omschrijving meldingsoort_now
FROM mld_melding m,
mld_meldbron mb,
mld_statuses ms,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
prs_v_perslid_fullnames_all pd, -- Door=Invoer
prs_v_perslid_fullnames_all pv, -- Voor=Melder
t
WHERE m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND m.mld_meldbron_key = mb.mld_meldbron_key
AND m.mld_melding_status = ms.mld_statuses_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 sd.ins_srtdiscipline_key = 22 -- Incident (of meer?)
AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) = pd.prs_perslid_key
AND m.prs_perslid_key_voor = pv.prs_perslid_key
AND m.mld_melding_key = t.fac_tracking_refkey(+);
-- MNNL#65935: Notitie-rapportage!
CREATE OR REPLACE VIEW mnnl_v_udr_mld_notes
AS
SELECT SYSDATE - n.mld_melding_note_aanmaak hide_f_sort, -- Recentste bovenaan
m.mld_melding_key,
sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving meldingsoort,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
ms.mld_statuses_omschrijving meldingstatus,
m.mld_melding_datum meldingdatum,
pm.prs_perslid_naam_full melder,
a.prs_afdeling_naam melderafdeling,
n.mld_melding_note_aanmaak notitiedatum,
pn.prs_perslid_naam_full notitiedoor,
n.mld_melding_note_flag notitievlag,
ng.fac_note_group_naam notitieclassificatie
FROM mld_melding m,
mld_statuses ms,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
prs_perslid p,
prs_afdeling a,
prs_v_perslid_fullnames_all pm, -- Melder
mld_melding_note n,
prs_v_perslid_fullnames_all pn, -- Noteur
fac_note_group ng
WHERE m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
AND m.mld_melding_status = ms.mld_statuses_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.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND p.prs_perslid_key = pm.prs_perslid_key
AND m.mld_melding_key = n.mld_melding_key
AND n.prs_perslid_key = pn.prs_perslid_key
AND n.fac_note_group_key = ng.fac_note_group_key(+);
-- MNNL#66030: Kennisbank-rapportage!
CREATE OR REPLACE VIEW mnnl_v_udr_faq_clicks
AS
SELECT x.fac_faq_key kennisbanknr,
SUBSTR (x.fac_faq_question, 1, 100) vraag,
--x.fac_faq_answer antwoord,
--x.fac_faq_hint zoekwoorden,
--x.fac_faq_url url, -- Meer info (URL)
DECODE (x.fac_faq_level,
1, 'Zelfservice',
2, 'Professionals',
3, 'Zelfservice en professionals',
NULL)
zichtbaar_voor,
DECODE (x.fac_faq_displaymode,
0, 'Beide',
1, 'Altijd tonen',
2, 'Pop-up',
3, 'Niet automatisch',
NULL)
weergave_bij_melding,
x.fac_faq_source oorsprong,
x.fac_faq_datum publicatiedatum, -- Publicatiedatum
x.fac_faq_wijzigdatum laatst_gewijzigd_op, -- Wijzigdatum
pf.prs_perslid_naam_full laatst_gewijzigd_door, -- Aangepast door
x.fac_faq_lang taal,
DECODE (f.fac_functie_key, NULL, 'Alle', f.fac_functie_code)
autorisatie_als,
x.fac_faq_rank clicks
--aog.alg_plaatsaanduiding
FROM fac_faq x
LEFT JOIN prs_v_perslid_fullnames_all pf
ON x.prs_perslid_key = pf.prs_perslid_key
LEFT JOIN fac_functie f
ON x.fac_functie_key = f.fac_functie_key
--LEFT JOIN mld_stdmeldingfaq kbsm
-- ON x.fac_faq_key = kbsm.fac_faq_key
--LEFT JOIN mld_discipline md
-- ON kbsm.ins_discipline_key = md.ins_discipline_key
--LEFT JOIN mld_stdmelding sm
-- ON kbsm.mld_stdmelding_key = sm.mld_stdmelding_key
--LEFT JOIN alg_algfaq kbpl
-- ON x.fac_faq_key = kbpl.fac_faq_key
--LEFT JOIN alg_v_onroerendgoed_gegevens aog
-- ON kbpl.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
;
-- MNNL#66460: Verstuurde MLDAFM-notificaties!
CREATE OR REPLACE VIEW mnnl_v_rap_mldafm
AS
SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving meldingsoort,
m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
m.mld_melding_datum meldingdatum,
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum,
DECODE (t.fac_tracking_key, NULL, 'N', 'J') mldafm_noti
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
(SELECT * FROM fac_tracking WHERE INSTR (UPPER (fac_tracking_oms), 'NOTIFICATIE MLDAFM VERSTUURD') = 1) t
WHERE m.mld_melding_datum > TO_DATE ('14-09-2020', 'dd-mm-yyyy')
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_key = t.fac_tracking_refkey(+);
-- MNNL#66706: Exports tbv. Snowflake!
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld
AS
SELECT TO_CHAR (m.melding_key) meldingnummer,
m.melder,
m.afdeling,
m.invoerder,
m.meldbron,
m.soortmelding,
m.productgroep,
m.subproductgroep,
m.behandelgroep,
m.behandelaar,
m.actieve_behandelgroep,
m.actieve_behandelaar,
m.melding_status,
m.sla_werkdgn,
m.sla_werkuren,
m.sla_accptdgn,
m.sla_accpturen,
m.plan_uitvoertijd_sla,
m.melding_datum,
m.melding_einddatum,
m.melding_einddatum_std,
m.melding_acceptdatum,
m.melding_afgemeld,
m.melding_accepted,
m.doorlooptijd_werkdgn,
m.doorlooptijd_werkuren,
m.onderwerp,
m.vomschrijving omschrijving,
m.melding_opmerking,
m.prioriteit,
m.rating,
m.rating_opmerking,
m.actiecode,
m.accept_sla_dagen,
m.accept_sla_uren,
m.uitvoering_sla_dagen,
m.uitvoering_sla_uren,
m.afspraak_sla_dagen,
m.afspraak_sla_uren,
m.accept_sla_optijd,
m.uitvoering_sla_optijd,
m.afspraak_sla_optijd,
m.selfservice
FROM mld_v_udr_melding m;
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld
(
result,
result_order
)
AS
SELECT '"MELDINGNUMMER"'
|| ';"MELDER"'
|| ';"AFDELING"'
|| ';"INVOERDER"'
|| ';"MELDBRON"'
|| ';"SOORTMELDING"'
|| ';"PRODUCTGROEP"'
|| ';"SUBPRODUCTGROEP"'
|| ';"BEHANDELGROEP"'
|| ';"BEHANDELAAR"'
|| ';"ACTIEVE_BEHANDELGROEP"'
|| ';"ACTIEVE_BEHANDELAAR"'
|| ';"MELDING_STATUS"'
|| ';"SLA_WERKDGN"'
|| ';"SLA_WERKUREN"'
|| ';"SLA_ACCPTDGN"'
|| ';"SLA_ACCPTUREN"'
|| ';"PLAN_UITVOERTIJD_SLA"'
|| ';"MELDING_DATUM"'
|| ';"MELDING_EINDDATUM"'
|| ';"MELDING_EINDDATUM_STD"'
|| ';"MELDING_ACCEPTDATUM"'
|| ';"MELDING_AFGEMELD"'
|| ';"MELDING_ACCEPTED"'
|| ';"DOORLOOPTIJD_WERKDGN"'
|| ';"DOORLOOPTIJD_WERKUREN"'
|| ';"ONDERWERP"'
|| ';"OMSCHRIJVING"'
|| ';"MELDING_OPMERKING"'
|| ';"PRIORITEIT"'
|| ';"RATING"'
|| ';"RATING_OPMERKING"'
|| ';"ACTIECODE"'
|| ';"ACCEPT_SLA_DAGEN"'
|| ';"ACCEPT_SLA_UREN"'
|| ';"UITVOERING_SLA_DAGEN"'
|| ';"UITVOERING_SLA_UREN"'
|| ';"AFSPRAAK_SLA_DAGEN"'
|| ';"AFSPRAAK_SLA_UREN"'
|| ';"ACCEPT_SLA_OPTIJD"'
|| ';"UITVOERING_SLA_OPTIJD"'
|| ';"AFSPRAAK_SLA_OPTIJD"'
|| ';"SELFSERVICE"',
0
FROM DUAL
UNION ALL
SELECT '"' || meldingnummer || '";'
|| DECODE (melder, NULL, ';', '"' || melder || '";')
|| DECODE (afdeling, NULL, ';', '"' || afdeling || '";')
|| DECODE (invoerder, NULL, ';', '"' || invoerder || '";')
|| DECODE (meldbron, NULL, ';', '"' || meldbron || '";')
|| DECODE (soortmelding, NULL, ';', '"' || soortmelding || '";')
|| DECODE (productgroep, NULL, ';', '"' || productgroep || '";')
|| DECODE (subproductgroep, NULL, ';', '"' || subproductgroep || '";')
|| DECODE (behandelgroep, NULL, ';', '"' || behandelgroep || '";')
|| DECODE (behandelaar, NULL, ';', '"' || behandelaar || '";')
|| DECODE (actieve_behandelgroep, NULL, ';', '"' || actieve_behandelgroep || '";')
|| DECODE (actieve_behandelaar, NULL, ';', '"' || actieve_behandelaar || '";')
|| DECODE (melding_status, NULL, ';', '"' || melding_status || '";')
|| TO_CHAR (sla_werkdgn) || ';' -- Zonder dubbele quotes
|| TO_CHAR (sla_werkuren) || ';' -- Zonder dubbele quotes
|| TO_CHAR (sla_accptdgn) || ';' -- Zonder dubbele quotes
|| TO_CHAR (sla_accpturen) || ';' -- Zonder dubbele quotes
|| TO_CHAR (plan_uitvoertijd_sla) || ';' -- Zonder dubbele quotes
|| DECODE (melding_datum, NULL, ';', TO_CHAR (melding_datum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (melding_einddatum, NULL, ';', TO_CHAR (melding_einddatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (melding_einddatum_std, NULL, ';', TO_CHAR (melding_einddatum_std, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (melding_acceptdatum, NULL, ';', TO_CHAR (melding_acceptdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (melding_afgemeld, NULL, ';', TO_CHAR (melding_afgemeld, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (melding_accepted, NULL, ';', TO_CHAR (melding_accepted, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| TO_CHAR (doorlooptijd_werkdgn) || ';' -- Zonder dubbele quotes
|| TO_CHAR (doorlooptijd_werkuren) || ';' -- Zonder dubbele quotes
|| DECODE (onderwerp, NULL, ';', '"' || REPLACE (onderwerp, '"', '''') || '";')
|| DECODE (omschrijving, NULL, ';', '"' || REPLACE (SUBSTR (omschrijving, 1, 200), '"', '''') || '";')
|| DECODE (melding_opmerking, NULL, ';', '"' || REPLACE (SUBSTR (melding_opmerking, 1, 200), '"', '''') || '";')
|| TO_CHAR (prioriteit) || ';' -- Zonder dubbele quotes
|| TO_CHAR (rating) || ';' -- Zonder dubbele quotes
|| DECODE (rating_opmerking, NULL, ';', '"' || REPLACE (rating_opmerking, '"', '''') || '";')
|| TO_CHAR (accept_sla_dagen) || ';' -- Zonder dubbele quotes
|| TO_CHAR (accept_sla_uren) || ';' -- Zonder dubbele quotes
|| TO_CHAR (uitvoering_sla_dagen) || ';' -- Zonder dubbele quotes
|| TO_CHAR (uitvoering_sla_uren) || ';' -- Zonder dubbele quotes
|| TO_CHAR (afspraak_sla_dagen) || ';' -- Zonder dubbele quotes
|| TO_CHAR (afspraak_sla_uren) || ';' -- Zonder dubbele quotes
|| DECODE (accept_sla_optijd, NULL, ';', '"' || accept_sla_optijd || '";')
|| DECODE (accept_sla_optijd, NULL, ';', '"' || uitvoering_sla_optijd || '";')
|| DECODE (accept_sla_optijd, NULL, ';', '"' || afspraak_sla_optijd || '";')
|| DECODE (selfservice, NULL, ';', '"' || selfservice || '"'),
ROWNUM
FROM mnnl_v_rap_sf_mld
ORDER BY 2;
-- LET OP: Export met een "lege regel" voor meldingen zonder kenmerken!
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld_kmk
AS
SELECT m.mld_melding_key,
--k.mld_kenmerk_key kenmerk_key,
--k.mld_kenmerk_volgnummer kenmerkvolgnr,
--k.mld_kenmerk_groep kenmerkgroep,
COALESCE (k.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving)
kenmerknaam,
--sk.mld_srtkenmerk_key srtkenmerk_key,
sk.mld_srtkenmerk_kenmerktype kenmerktype,
DECODE (sk.mld_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
km.mld_kenmerkmelding_waarde)
kenmerkwaarde
FROM mld_melding m, mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key(+);
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld_kmk
(
result,
result_order
)
AS
SELECT '"MLD_MELDING_KEY"'
|| ';"KENMERKNAAM"'
|| ';"KENMERKTYPE"'
|| ';"KENMERKWAARDE"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (mld_melding_key) || ';' -- Zonder dubbele quotes
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
ROWNUM
FROM mnnl_v_rap_sf_mld_kmk
ORDER BY 2;
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ins
AS
SELECT deel_key,
discipline,
groep, -- Omgewisseld met soort
soort, -- Omgewisseld met groep
--soortcode,
omschrijving,
plaatseigenaar,
--plaatseigenaartype,
--plaatsaanduiding,
eigenaar,
--eigenaar_key,
opmerking,
--regio,
--district,
--locatie_code,
locatie_omschrijving,
--locatie_plaats,
--gebouwcode,
gebouw,
--terreinsectorcode,
--terreinsector,
--verdiepingcode,
ruimtenr,
--werkplekvolgnr,
--werkplek,
uitleenbaar,
uitgeleend,
--res_opmerking,
--beheerder,
vervaldatum,
actief --aantal, state, statedate
FROM ins_v_udr_deel;
CREATE OR REPLACE VIEW mnnl_v_export_sf_ins
(
result,
result_order
)
AS
SELECT '"DEEL_KEY"'
|| ';"DISCIPLINE"'
|| ';"GROEP"'
|| ';"SOORT"'
|| ';"OMSCHRIJVING"'
|| ';"PLAATSEIGENAAR"'
|| ';"EIGENAAR"'
|| ';"OPMERKING"'
|| ';"LOCATIE_OMSCHRIJVING"'
|| ';"GEBOUW"'
|| ';"RUIMTENR"'
|| ';"UITLEENBAAR"'
|| ';"UITGELEEND"'
|| ';"VERVALDATUM"'
|| ';"ACTIEF"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (deel_key) || ';' -- Zonder dubbele quotes
|| DECODE (discipline, NULL, ';', '"' || REPLACE (discipline, '"', '''') || '";')
|| DECODE (groep, NULL, ';', '"' || REPLACE (groep, '"', '''') || '";')
|| DECODE (soort, NULL, ';', '"' || REPLACE (soort, '"', '''') || '";')
|| DECODE (omschrijving, NULL, ';', '"' || REPLACE (omschrijving, '"', '''') || '";')
|| DECODE (plaatseigenaar, NULL, ';', '"' || plaatseigenaar || '";')
|| DECODE (eigenaar, NULL, ';', '"' || eigenaar || '";')
|| DECODE (opmerking, NULL, ';', '"' || REPLACE (opmerking, '"', '''') || '";')
|| DECODE (locatie_omschrijving, NULL, ';', '"' || locatie_omschrijving || '";')
|| DECODE (gebouw, NULL, ';', '"' || gebouw || '";')
|| DECODE (ruimtenr, NULL, ';', '"' || ruimtenr || '";')
|| DECODE (uitleenbaar, NULL, ';', '"' || uitleenbaar || '";')
|| DECODE (uitgeleend, NULL, ';', '"' || uitgeleend || '";')
|| DECODE (vervaldatum, NULL, ';', TO_CHAR (vervaldatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (actief, NULL, ';', '"' || actief || '"'),
ROWNUM
FROM mnnl_v_rap_sf_ins
ORDER BY 2;
-- LET OP: Export met een "lege regel" voor objecten zonder kenmerken!
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ins_kmk
AS
SELECT d.ins_deel_key,
sk.ins_srtkenmerk_omschrijving kenmerknaam,
sk.ins_srtkenmerk_kenmerktype kenmerktype,
DECODE (sk.ins_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
kd.ins_kenmerkdeel_waarde)
kenmerkwaarde
FROM ins_deel d, ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE d.ins_deel_key = kd.ins_deel_key(+)
AND kd.ins_kenmerk_key = k.ins_kenmerk_key(+)
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key(+);
CREATE OR REPLACE VIEW mnnl_v_export_sf_ins_kmk
(
result,
result_order
)
AS
SELECT '"INS_DEEL_KEY"'
|| ';"KENMERKNAAM"'
|| ';"KENMERKTYPE"'
|| ';"KENMERKWAARDE"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (ins_deel_key) || ';' -- Zonder dubbele quotes
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
ROWNUM
FROM mnnl_v_rap_sf_ins_kmk
ORDER BY 2;
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld_ins
AS
SELECT mld_melding_object_key,
mld_melding_key,
ins_deel_key,
mld_melding_object_aanmaak
FROM mld_melding_object;
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld_ins
(
result,
result_order
)
AS
SELECT '"MLD_MELDING_OBJECT_KEY"'
|| ';"MLD_MELDING_KEY"'
|| ';"INS_DEEL_KEY"'
|| ';"MLD_MELDING_OBJECT_AANMAAK"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (mld_melding_object_key) || ';' -- Zonder dubbele quotes
|| TO_CHAR (mld_melding_key) || ';' -- Zonder dubbele quotes
|| TO_CHAR (ins_deel_key) || ';' -- Zonder dubbele quotes
|| TO_CHAR (mld_melding_object_aanmaak, 'dd-mm-yyyy hh24:mi:ss'), -- Zonder dubbele quotes
ROWNUM
FROM mnnl_v_rap_sf_mld_ins
ORDER BY 2;
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ord
AS
SELECT o.opdracht_key,
o.opdracht_nummer opdrachtnummer,
o.melding_key meldingnummer,
o.opdracht_kostenplaats,
o.opdracht_kostenplaats_oms,
o.opdracht_type,
o.opdracht_volgnummer,
o.opdracht_status,
o.opdracht_duur_gepland,
o.opdracht_datum,
o.opdracht_einddatum,
o.opdracht_plandatum,
o.opdracht_acceptdatum,
o.opdracht_afgemeld,
o.opdracht_doorlooptijd,
o.opdracht_accepttijd,
o.opdracht_omschrijving,
o.opdracht_opmerking,
o.opdracht_uitvoerende,
o.opdracht_uitvoerende_contact,
o.opdracht_behandelaar,
--o.opdracht_contract,
--o.opdracht_contract_versie,
o.opdracht_contactpersoon,
--o.opdracht_uren,
--o.opdracht_correctie,
--o.opdracht_materiaal,
--o.opdracht_uurtarief,
--o.opdracht_kosten,
--o.opdracht_parent_key,
--o.opdracht_parent_nummer,
--o.opdracht_parent_volgnummer,
o.opdracht_verstrektdatum,
o.opdracht_lev_doorloopdagen,
o.opdracht_lev_doorloopuren
FROM mld_v_udr_opdracht o;
CREATE OR REPLACE VIEW mnnl_v_export_sf_ord
(
result,
result_order
)
AS
SELECT '"OPDRACHT_KEY"'
|| ';"OPDRACHTNUMMER"'
|| ';"MELDINGNUMMER"'
|| ';"KOSTENPLAATS"'
|| ';"KOSTENPLAATS_OMS"'
|| ';"OPDRACHT_TYPE"'
|| ';"OPDRACHT_VOLGNUMMER"'
|| ';"OPDRACHT_STATUS"'
|| ';"OPDRACHT_DUUR_GEPLAND"'
|| ';"OPDRACHT_DATUM"'
|| ';"OPDRACHT_EINDDATUM"'
|| ';"OPDRACHT_PLANDATUM"'
|| ';"OPDRACHT_ACCEPTDATUM"'
|| ';"OPDRACHT_AFGEMELD"'
|| ';"OPDRACHT_DOORLOOPTIJD"'
|| ';"OPDRACHT_ACCEPTTIJD"'
|| ';"OPDRACHT_OMSCHRIJVING"'
|| ';"OPDRACHT_OPMERKING"'
|| ';"OPDRACHT_UITVOERENDE"'
|| ';"OPDRACHT_UITVOERENDE_CONTACT"'
|| ';"OPDRACHT_BEHANDELAAR"'
--|| ';"OPDRACHT_CONTRACT"'
--|| ';"OPDRACHT_CONTRACT_VERSIE"'
|| ';"OPDRACHT_CONTACTPERSOON"'
--|| ';"OPDRACHT_UREN"'
--|| ';"OPDRACHT_CORRECTIE"'
--|| ';"OPDRACHT_MATERIAAL"'
--|| ';"OPDRACHT_UURTARIEF"'
--|| ';"OPDRACHT_KOSTEN"'
--|| ';"OPDRACHT_PARENT_KEY"'
--|| ';"OPDRACHT_PARENT_NUMMER"'
--|| ';"OPDRACHT_PARENT_VOLGNUMMER"'
|| ';"OPDRACHT_VERSTREKTDATUM"'
|| ';"OPDRACHT_LEV_DOORLOOPDAGEN"'
|| ';"OPDRACHT_LEV_DOORLOOPUREN"',
0
FROM DUAL
UNION ALL
SELECT '"' || TO_CHAR (opdracht_key) || '";'
|| '"' || opdrachtnummer || '";'
|| '"' || TO_CHAR (meldingnummer) || '";'
|| DECODE (opdracht_kostenplaats, NULL, ';', '"' || opdracht_kostenplaats || '";')
|| DECODE (opdracht_kostenplaats_oms, NULL, ';', '"' || opdracht_kostenplaats_oms || '";')
|| '"' || opdracht_type || '";'
|| '"' || TO_CHAR (opdracht_volgnummer) || '";'
|| '"' || opdracht_status || '";'
|| TO_CHAR (opdracht_duur_gepland) || ';' -- Zonder dubbele quotes
|| DECODE (opdracht_datum, NULL, ';', TO_CHAR (opdracht_datum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (opdracht_einddatum, NULL, ';', TO_CHAR (opdracht_einddatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (opdracht_plandatum, NULL, ';', TO_CHAR (opdracht_plandatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (opdracht_acceptdatum, NULL, ';', TO_CHAR (opdracht_acceptdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| DECODE (opdracht_afgemeld, NULL, ';', TO_CHAR (opdracht_afgemeld, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| TO_CHAR (opdracht_doorlooptijd) || ';' -- Zonder dubbele quotes
|| TO_CHAR (opdracht_accepttijd) || ';' -- Zonder dubbele quotes
|| DECODE (opdracht_omschrijving, NULL, ';', '"' || REPLACE (SUBSTR (opdracht_omschrijving, 1, 200), '"', '''') || '";')
|| DECODE (opdracht_opmerking, NULL, ';', '"' || REPLACE (SUBSTR (opdracht_opmerking, 1, 200), '"', '''') || '";')
|| DECODE (opdracht_uitvoerende, NULL, ';', '"' || opdracht_uitvoerende || '";')
|| DECODE (opdracht_uitvoerende_contact, NULL, ';', '"' || opdracht_uitvoerende_contact || '";')
|| DECODE (opdracht_behandelaar, NULL, ';', '"' || opdracht_behandelaar || '";')
--|| DECODE (opdracht_contract, NULL, ';', '"' || opdracht_contract || '";')
--|| DECODE (opdracht_contract_versie, NULL, ';', '"' || opdracht_contract_versie || '";')
|| DECODE (opdracht_contactpersoon, NULL, ';', '"' || opdracht_contactpersoon || '";')
--|| TO_CHAR (opdracht_uren) || ';' -- Zonder dubbele quotes
--|| TO_CHAR (opdracht_correctie) || ';' -- Zonder dubbele quotes
--|| TO_CHAR (opdracht_materiaal) || ';' -- Zonder dubbele quotes
--|| TO_CHAR (opdracht_uurtarief) || ';' -- Zonder dubbele quotes
--|| TO_CHAR (opdracht_kosten) || ';' -- Zonder dubbele quotes
--|| DECODE (opdracht_parent_key, NULL, ';', '"' || TO_CHAR (opdracht_parent_key) || '";')
--|| DECODE (opdracht_parent_nummer, NULL, ';', '"' || opdracht_parent_nummer || '";')
--|| DECODE (opdracht_parent_volgnummer, NULL, ';', '"' || TO_CHAR (opdracht_parent_volgnummer) || '";')
|| DECODE (opdracht_verstrektdatum, NULL, ';', TO_CHAR (opdracht_verstrektdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|| TO_CHAR (opdracht_lev_doorloopdagen) || ';' -- Zonder dubbele quotes
|| TO_CHAR (opdracht_lev_doorloopuren), -- Zonder dubbele quotes
ROWNUM
FROM mnnl_v_rap_sf_ord
ORDER BY 2;
-- LET OP: Export met een "lege regel" voor opdrachten zonder kenmerken!
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ord_kmk
AS
SELECT o.mld_opdr_key,
COALESCE (k.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving)
kenmerknaam,
sk.mld_srtkenmerk_kenmerktype kenmerktype,
DECODE (sk.mld_srtkenmerk_kenmerktype,
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde),
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde),
ko.mld_kenmerkopdr_waarde)
kenmerkwaarde
FROM mld_opdr o, mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk
WHERE o.mld_opdr_key = ko.mld_opdr_key(+)
AND ko.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key(+);
CREATE OR REPLACE VIEW mnnl_v_export_sf_ord_kmk
(
result,
result_order
)
AS
SELECT '"MLD_OPDR_KEY"'
|| ';"KENMERKNAAM"'
|| ';"KENMERKTYPE"'
|| ';"KENMERKWAARDE"',
0
FROM DUAL
UNION ALL
SELECT TO_CHAR (mld_opdr_key) || ';' -- Zonder dubbele quotes
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
ROWNUM
FROM mnnl_v_rap_sf_ord_kmk
ORDER BY 2;
-- MNNL#67162: Export tbv. Flexera (kolommen in HOOFDLETTERS)!
CREATE OR REPLACE VIEW MNNL_V_RAP_FLEXERA
(
IDENTIFICATIE,
BESCHRIJVING,
AFDELING,
VOORLETTERS,
VOORNAAM,
TUSSENVOEGSEL,
ACHTERNAAM,
LOCATIECODE,
GEBOUWCODE,
VERDIEPINGVOLGNR,
RUIMTENR,
DISCIPLINE,
GROEP,
OBJECTSOORTCODE,
OBJECTSOORTOMSCHRIJVING,
ACTIEF,
STATUS,
REDENBIJSTATUS,
FNMSASSETSTATUS,
SERIENUMMER,
MODEL,
AANSCHAFDATUM,
ORDERNUMMER,
--OPMERKINGEN,
REGISTRATIEDATUM,
VERVALDATUM,
AANSCHAFWAARDE,
ORGANISATIE
)
AS
SELECT x.ins_deel_omschrijving identificatie,
x.ins_deel_opmerking beschrijving,
x.prs_afdeling_naam afdeling,
x.voorletters,
x.voornaam,
x.tussenvoegsel,
x.naam achternaam,
x.alg_locatie_code locatiecode,
x.alg_gebouw_code gebouwcode,
x.alg_verdieping_volgnr verdiepingvolgnr,
x.alg_ruimte_nr ruimtenr,
x.ins_discipline_omschrijving discipline,
x.ins_srtgroep_omschrijving groep,
x.ins_srtdeel_code objectsoortcode,
x.ins_srtdeel_omschrijving objectsoortomschrijving,
DECODE (x.ins_deel_actief, 1, 'Ja', 'Nee') actief,
--(SELECT fac_usrdata_code
-- FROM fac_v_aanwezigusrdata
-- WHERE TO_CHAR (fac_usrdata_key) = sts.ins_kenmerkdeel_waarde)
ud_sts.fac_usrdata_code status, -- Status
(SELECT fac_usrdata_code
FROM fac_v_aanwezigusrdata
WHERE TO_CHAR (fac_usrdata_key) = rbs.ins_kenmerkdeel_waarde)
redenbijstatus, -- Reden bij status
DECODE (TRIM (ud_sts.fac_usrdata_upper),
'AFTEVOEREN', 'Retired',
'GEBRUIK', 'Installed',
'TER REPARATIE', 'In storage',
'VERWIJDERD', 'Disposed',
'???')
fnmsassetstatus,
snr.ins_kenmerkdeel_waarde serienummer, -- Serienummer
mdl.ins_kenmerkdeel_waarde model, -- Model
asd.ins_kenmerkdeel_waarde aanschafdatum, -- Aanschafdatum
onr.ins_kenmerkdeel_waarde ordernummer, -- Ordernummer
--opm.ins_kenmerkdeel_waarde opmerkingen, -- Opmerkingen
x.ins_deel_aanmaak registratiedatum,
x.ins_deel_vervaldatum vervaldatum,
--x.ins_deel_verwijder verwijderdatum,
asw.ins_kenmerkdeel_waarde aanschafwaarde, -- Aanschafwaarde
x.organisatie organisatie
FROM (SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
a.prs_afdeling_naam,
-- NULL prs_perslid_oslogin,
NULL voorletters,
NULL voornaam,
NULL tussenvoegsel,
NULL naam,
NULL alg_locatie_code,
NULL alg_gebouw_code,
NULL alg_verdieping_volgnr,
NULL alg_ruimte_nr,
d.ins_deel_aanmaak,
d.ins_deel_vervaldatum,
d.ins_deel_verwijder,
d.ins_deel_actief,
NULL organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_afdeling a
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'A'
AND d.ins_alg_ruimte_key = a.prs_afdeling_key
UNION ALL
SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
NULL prs_afdeling_naam,
-- NULL prs_perslid_oslogin,
p.prs_perslid_voorletters voorletters,
p.prs_perslid_voornaam voornaam,
p.prs_perslid_tussenvoegsel tussenvoegsel,
p.prs_perslid_naam naam,
NULL alg_locatie_code,
NULL alg_gebouw_code,
NULL alg_verdieping_volgnr,
NULL alg_ruimte_nr,
d.ins_deel_aanmaak,
d.ins_deel_vervaldatum,
d.ins_deel_verwijder,
d.ins_deel_actief,
a.prs_afdeling_naam organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
prs_perslid p,
prs_afdeling a
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
UNION ALL
SELECT d.ins_deel_key,
td.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_code,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
d.ins_deel_opmerking,
NULL prs_afdeling_naam,
-- NULL prs_perslid_oslogin,
NULL voorletters,
NULL voornaam,
NULL tussenvoegsel,
NULL naam,
l.alg_locatie_code,
g.alg_gebouw_code,
v.alg_verdieping_volgnr,
r.alg_ruimte_nr,
d.ins_deel_aanmaak,
d.ins_deel_vervaldatum,
d.ins_deel_verwijder,
d.ins_deel_actief,
NULL organisatie
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_tab_discipline td,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = td.ins_discipline_key
AND td.ins_discipline_key IN (1104, 1741) -- EndUser Asset, uitleen Assets
AND d.ins_alg_ruimte_type = 'R'
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key
AND g.alg_locatie_key = l.alg_locatie_key) x
LEFT JOIN ins_v_aanwezigkenmerkdeel sts
ON x.ins_deel_key = sts.ins_deel_key
AND sts.ins_kenmerk_key = 21 -- Status
LEFT JOIN fac_usrdata ud_sts
ON fac.safe_to_number (sts.ins_kenmerkdeel_waarde) = ud_sts.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel rbs
ON x.ins_deel_key = rbs.ins_deel_key
AND rbs.ins_kenmerk_key = 81 -- Reden bij status
LEFT JOIN ins_v_aanwezigkenmerkdeel snr
ON x.ins_deel_key = snr.ins_deel_key
AND snr.ins_kenmerk_key = 22 -- Serienummer
LEFT JOIN ins_v_aanwezigkenmerkdeel mdl
ON x.ins_deel_key = mdl.ins_deel_key
AND mdl.ins_kenmerk_key = 23 -- Model
LEFT JOIN ins_v_aanwezigkenmerkdeel asd
ON x.ins_deel_key = asd.ins_deel_key
AND asd.ins_kenmerk_key = 24 -- Aanschafdatum
LEFT JOIN ins_v_aanwezigkenmerkdeel onr
ON x.ins_deel_key = onr.ins_deel_key
AND onr.ins_kenmerk_key = 25 -- Ordernummer
--LEFT JOIN ins_v_aanwezigkenmerkdeel opm
-- ON x.ins_deel_key = opm.ins_deel_key AND opm.ins_kenmerk_key = 27 -- Opmerkingen
LEFT JOIN ins_v_aanwezigkenmerkdeel asw
ON x.ins_deel_key = asw.ins_deel_key
AND asw.ins_kenmerk_key = 101 -- MNNL#53670: Aanschafwaarde
--WHERE ud_sts.fac_usrdata_key IN (592, 593, 595, 664)
;
-- MNNL#68674: CUST09-notificatie naar hard adres MBCHG@mn.nl bij afmelden van
-- elke Change(-workflowstap).
CREATE OR REPLACE VIEW MNNL_V_NOTI_CHANGE_AFM
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
NULL,
REPLACE (
REPLACE (
REPLACE (
REPLACE (sn.fac_srtnotificatie_oms,
'##KEY##', TO_CHAR (m.mld_melding_key)),
'##DISC##', md.ins_discipline_omschrijving),
'##STDMLD##', sm.mld_stdmelding_omschrijving),
'##SUBJECT##', m.mld_melding_onderwerp),
m.mld_melding_key,
NULL,
NULL,
'MBCHG@mn.nl',
NULL,
NULL
FROM fac_tracking t,
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_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 = 41 -- Change (RFC)
AND sn.fac_srtnotificatie_code = 'CUST09'
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_AFM'
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_lastrun AND nj.fac_notificatie_job_nextrun;
------ 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