diff --git a/RWSN/rwsn.sql b/RWSN/rwsn.sql index b6c3c9bd8..819270f7a 100644 --- a/RWSN/rwsn.sql +++ b/RWSN/rwsn.sql @@ -9874,25 +9874,6 @@ AS AND d.ins_deel_key = rd.res_ins_deel_key(+) AND rd.res_discipline_key = rdi.ins_discipline_key(+); -/* DID-Bestelportaal */ -/* Formatted on 1-7-2009 8:28:15 (QP5 v5.115.810.9015) */ --- Allang niet meer gebruikt; pas droppen als 'fac_kenmerkdomein_verwijder'??? -CREATE OR REPLACE VIEW RWSN_V_DID_APPLICATIES -( - INS_DEEL_KEY, - INS_DEEL_OMS -) -AS - SELECT sd.ins_srtdeel_key, - sd.ins_srtdeel_omschrijving - || ' [' - || DECODE (sd.ins_srtgroep_key, 21, 'B-', 22, 'C-', 'CN-') - || sd.ins_srtdeel_code - || ']' - FROM ins_srtdeel sd - WHERE sd.ins_srtgroep_key IN (21, 22, 23) - AND sd.ins_srtdeel_verwijder IS NULL; - -- Veelvuldig gebruikt in MLD-module (oa. DID)! /* Formatted on 1-7-2009 8:35:48 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW RWSN_V_GEBOUWEN @@ -9971,20 +9952,6 @@ AS WHERE a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_parentkey IS NULL; --- Niet meer gebruikt; pas droppen als 'fac_kenmerkdomein_verwijder'??? -CREATE OR REPLACE VIEW RWSN_V_DID_DIENSTEN -( - DIENST_KEY, - DIENST_OMS -) -AS - SELECT a.prs_afdeling_key, a.prs_afdeling_omschrijving - FROM prs_afdeling a, fac_v_aanwezigusrdata ud - WHERE a.prs_afdeling_verwijder IS NULL - AND a.prs_afdeling_key <> 2201 -- RWSN#22219: Niet 'VWM' - AND ud.fac_usrtab_key = 421 -- Uitvoerende per dienst - AND a.prs_afdeling_key = fac.safe_to_number (ud.fac_usrdata_code); - -- Veelvuldig gebruikt in MLD- en INS-module! CREATE OR REPLACE VIEW RWSN_V_DIENSTPERSONEN ( @@ -10053,3914 +10020,6 @@ AS AND ok.alg_kenmerk_key = 1000 AND ok.alg_onrgoedkenmerk_waarde = 1; --- Nergens meer gebruikt; droppen??? -CREATE OR REPLACE VIEW RWSN_V_ICTCONTACTPERSONEN -( - PRS_PERSLID_KEY, - PRS_PERSLID_NAAM_FULL -) -AS - SELECT p.prs_perslid_key, - p.prs_perslid_naam - || DECODE (p.prs_perslid_voorletters, - NULL, '', - ', ' || p.prs_perslid_voorletters) - || DECODE (p.prs_perslid_tussenvoegsel, - NULL, '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (p.prs_perslid_voornaam, - NULL, '', - ' (' || p.prs_perslid_voornaam || ') [') - || a.prs_afdeling_omschrijving - || ']' - prs_perslid_naam_full - FROM prs_v_aanwezigperslid p, - prs_v_afdeling_familie af, - prs_afdeling a, - fac_gebruikersgroep gg - WHERE p.prs_afdeling_key = af.prs_afdeling_key - AND af.niveau = 1 - AND af.prs_afdeling_elder_key = a.prs_afdeling_key - AND a.prs_afdeling_verwijder IS NULL - AND p.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key IN (421, 422) -- ICT contactpersoon -; - --- Domein-views met applicaties per SPIV-domein voor max. 12 domeinen! --- Als de precieze SPIV-domeinen bekend zijn, dan evt. elke domein-view --- baseren op de betreffende 'ins_srtgroep_key' per SPIV-domein. -/* Formatted on 26-3-2014 14:22:08 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV0_APPL -( - vnr, - ins_srtgroep_key, - ins_srtgroep_oms, - ins_srtdeel_key, - ins_srtdeel_oms, - ins_srtdeel_vvd -) -AS - SELECT x.vnr, - appl.ins_srtgroep_key, - appl.ins_srtgroep_oms, - appl.ins_srtdeel_key, - appl.ins_srtdeel_oms, - appl.ins_srtdeel_vervaldatum - FROM ( SELECT sg1.ins_srtgroep_key, COUNT ( * ) vnr - FROM (SELECT ins_srtgroep_key - FROM ins_srtgroep - WHERE ins_discipline_key = 2361) sg1, - (SELECT ins_srtgroep_key - FROM ins_srtgroep - WHERE ins_discipline_key = 2361) sg2 - WHERE sg1.ins_srtgroep_key >= sg2.ins_srtgroep_key - GROUP BY sg1.ins_srtgroep_key) x - LEFT JOIN - (SELECT sg.ins_srtgroep_key, - sg.ins_srtgroep_omschrijving ins_srtgroep_oms, - sd.ins_srtdeel_key, - DECODE ( - sd.ins_srtdeel_verwijder, - NULL, - DECODE (SIGN (sd.ins_srtdeel_vervaldatum - SYSDATE), - -1, - 'VERVALLEN:' || sd.ins_srtdeel_omschrijving, - sd.ins_srtdeel_omschrijving), - 'VERVALLEN:' || sd.ins_srtdeel_omschrijving) - ins_srtdeel_oms, - sd.ins_srtdeel_vervaldatum - FROM ins_srtgroep sg, ins_srtdeel sd - WHERE sg.ins_discipline_key = 2361 - AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) appl - ON x.ins_srtgroep_key = appl.ins_srtgroep_key; - -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV1_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 1; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV2_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 2; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV3_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 3; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV4_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 4; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV5_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 5; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV6_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 6; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV7_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 7; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV8_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 8; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV9_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 9; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV10_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 10; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV11_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 11; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV12_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 12; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV13_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 13; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV14_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 14; -CREATE OR REPLACE VIEW RWSN_V_DID_SPIV15_APPL -AS - SELECT ins_srtdeel_key, ins_srtdeel_oms, ins_srtdeel_vvd - FROM rwsn_v_did_spiv0_appl - WHERE vnr = 15; - -/* RWSN#15835 - Automatisch aanmaken van opdrachten bij ICT aanvragen! */ -/* Formatted on 28-6-2011 11:48:04 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE FUNCTION rwsn_did_flexcontent (p_mldkey IN NUMBER, - p_deel1_vnr IN NUMBER, - p_deeln_vnr IN NUMBER) - RETURN VARCHAR2 -IS - CURSOR c1 - IS - SELECT k.mld_kenmerk_key, - COALESCE (k.mld_kenmerk_volgnummer, 0) volgnummer, - sk.mld_srtkenmerk_kenmerktype, - sk.mld_srtkenmerk_omschrijving, - sk.mld_srtkenmerk_upper, - rsk.fac_kenmerkdomein_objectnaam, - rsk.fac_kenmerkdomein_kolomnaam, - rsk.fac_kenmerkdomein_kolomtxt, - rsk.fac_usrtab_key, - k.mld_kenmerk_default - FROM mld_melding m, - mld_stdmelding sm, - mld_kenmerk k, - mld_srtkenmerk sk, - fac_kenmerkdomein rsk - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ( (sm.mld_ins_discipline_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'D') - OR (m.mld_stdmelding_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'S')) - AND (k.mld_kenmerk_volgnummer < p_deel1_vnr -- algemene deel - OR k.mld_kenmerk_volgnummer >= p_deeln_vnr) -- deel n - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_kenmerktype <> 'Q' -- blanco! - AND sk.mld_srtkenmerk_verwijder IS NULL - AND sk.fac_kenmerkdomein_key = rsk.fac_kenmerkdomein_key(+) - ORDER BY COALESCE (k.mld_kenmerk_volgnummer, 0); - - v_skip NUMBER (3); - v_flexcontent VARCHAR2 (4000); - v_kenmerk_waarde VARCHAR2 (1000); - v_ref_kenmerk_waarde VARCHAR2 (1000); - sql_stmt VARCHAR2 (1000); - v_count NUMBER (3); -BEGIN - v_skip := -1; -- wel of niet skippen nog onbepaald! - v_flexcontent := ''; - - -- bij alles tonen van een ICT aanvraag (al of niet samengesteld) wordt als - -- 'header' de betreffende meldingsoort - bovenaan - toegevoegd! - IF (p_deeln_vnr IS NULL) -- alles! - THEN - v_skip := 0; -- niet skippen! - - SELECT sm.mld_stdmelding_omschrijving - INTO v_kenmerk_waarde - FROM mld_melding m, mld_stdmelding sm - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key; - - v_flexcontent := - SUBSTR (v_kenmerk_waarde || CHR (13) || CHR (10), 1, 4000); - -- bij een deel tonen van een samengestelde ICT aanvraag wordt als 'header' - -- de betreffende label-default - bovenaan - toegevoegd! - ELSE -- een deel van een samengestelde ICT aanvraag! - SELECT k.mld_kenmerk_default - INTO v_kenmerk_waarde - FROM mld_melding m, - mld_stdmelding sm, - mld_kenmerk k - --mld_srtkenmerk sk - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ( (sm.mld_ins_discipline_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'D') - OR (m.mld_stdmelding_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'S')) - AND (k.mld_kenmerk_volgnummer < p_deel1_vnr - OR k.mld_kenmerk_volgnummer >= p_deeln_vnr) - --AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_kenmerk_volgnummer = p_deeln_vnr; - --AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - --AND sk.mld_srtkenmerk_kenmerktype = 'L' - --AND sk.mld_srtkenmerk_upper LIKE '%DEEL%'; - - v_flexcontent := - SUBSTR (v_kenmerk_waarde || CHR (13) || CHR (10), 1, 4000); - END IF; - - FOR rec IN c1 - LOOP - BEGIN - -- voor een deel van een samengestelde ICT aanvraag worden alleen de - -- kenmerken tot de volgende 'header' getoond! - IF ( rec.volgnummer > p_deeln_vnr - AND rec.mld_srtkenmerk_kenmerktype = 'L' - AND rec.mld_srtkenmerk_upper LIKE '%DEEL%') - THEN - IF (v_skip = 1) - THEN - RETURN NULL; -- break! - ELSE - RETURN v_flexcontent; -- break! - END IF; - END IF; - - SELECT COUNT (km.mld_kenmerkmelding_key) - INTO v_count - FROM mld_kenmerkmelding km - WHERE km.mld_melding_key = p_mldkey - AND km.mld_kenmerk_key = rec.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL; - - IF (v_count = 1) - THEN - SELECT km.mld_kenmerkmelding_waarde - INTO v_kenmerk_waarde - FROM mld_kenmerkmelding km - WHERE km.mld_melding_key = p_mldkey - AND km.mld_kenmerk_key = rec.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL; - - IF (rec.mld_srtkenmerk_kenmerktype IN ('R', 'S')) - THEN - -- RWSN#20852: Kenmerk-waarde is in principe nooit NULL, maar - -- soms wel, zonder dat precies duidelijk is in welke gevallen? - IF (v_kenmerk_waarde IS NOT NULL) - THEN - sql_stmt := - 'SELECT MIN(' - || rec.fac_kenmerkdomein_kolomtxt - || ')' - || ' FROM ' - || rec.fac_kenmerkdomein_objectnaam - || ' WHERE ' - || rec.fac_kenmerkdomein_kolomnaam - || ' = ' - || v_kenmerk_waarde; - - EXECUTE IMMEDIATE sql_stmt INTO v_ref_kenmerk_waarde; - END IF; - - v_flexcontent := - SUBSTR ( - v_flexcontent - || rec.mld_srtkenmerk_omschrijving - || ': ' - || v_ref_kenmerk_waarde - || CHR (13) - || CHR (10), - 1, - 4000 - ); - - IF (v_skip = -1 -- wel of niet skippen nog onbepaald! - AND rec.volgnummer > p_deeln_vnr) - THEN - IF (UPPER (v_ref_kenmerk_waarde) LIKE 'NEE%') - THEN - v_skip := 1; -- wel skippen! - ELSE - v_skip := 0; -- niet skippen! - END IF; - END IF; - ELSE - v_flexcontent := - SUBSTR ( - v_flexcontent - || rec.mld_srtkenmerk_omschrijving - || ': ' - || v_kenmerk_waarde - || CHR (13) - || CHR (10), - 1, - 4000 - ); - - IF (v_skip = -1 -- wel of niet skippen nog onbepaald! - AND rec.volgnummer > p_deeln_vnr) - THEN - v_skip := 0; -- niet skippen, want kenmerk met waarde! - END IF; - END IF; - ELSE -- geen kenmerkwaarde, dus optioneel veld of L=label - IF (rec.mld_srtkenmerk_kenmerktype = 'L') - THEN - -- bij alles tonen van een samengestelde ICT aanvraag wordt per - -- deel de label-default als 'header' tussengevoegd! - IF (p_deeln_vnr IS NULL -- alles! - AND rec.mld_srtkenmerk_upper LIKE '%DEEL%') - THEN - v_flexcontent := - SUBSTR ( - v_flexcontent - || '***' - || rec.mld_kenmerk_default - || CHR (13) - || CHR (10), - 1, - 4000 - ); - END IF; - ELSE - IF (rec.mld_srtkenmerk_kenmerktype <> 'M') - THEN - IF (p_deeln_vnr IS NULL) -- alles! - THEN - v_flexcontent := - SUBSTR ( - v_flexcontent - || rec.mld_srtkenmerk_omschrijving - || ': [leeg]' - || CHR (13) - || CHR (10), - 1, - 4000 - ); - END IF; - - IF (v_skip = -1 -- wel of niet skippen nog onbepaald! - AND rec.volgnummer > p_deeln_vnr) - THEN - v_skip := 1; -- wel skippen, want kenmerk zonder waarde! - END IF; - END IF; - END IF; - END IF; - END; - END LOOP; - - IF (v_skip = 1) - THEN - RETURN NULL; - ELSE - RETURN v_flexcontent; - END IF; -END; -/ - -/* Formatted on 11-12-2009 13:12:58 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_select_did_opdr (p_applname IN VARCHAR2, - p_applrun IN VARCHAR2) -AS -BEGIN - NULL; -END; -/ - -/* Formatted on 2008/10/23 12:12 (Formatter Plus v4.8.7) */ -CREATE OR REPLACE VIEW rwsn_v_export_did_opdr (RESULT, result_order) -AS - SELECT '', 0 - FROM DUAL - WHERE 1 = 0 -/ - -/* Formatted on 29-11-2013 10:30:50 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_export_did_opdr (p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_filedir IN VARCHAR2, - p_filename IN VARCHAR2) -AS - -- RWSN#24870: Per RWSN49 vervallen. - -- Cursor (c1) liep over !dienstspecifieke! ICT aanvragen waarvan aanvrager - -- in een andere dienst (niet geautoriseerd) en invoerder is Leidinggevende; - -- deze worden automatisch afgewezen! - -- Achtergrond: Leidinggevenden hebben (FO-)rechten op alle ICT aanvr., - -- dus ook op "niet eigen" dienstspecifieke vakgroepen! - -- RWSN#24870-einde! - - -- RWSN#27015: Per RWSN51 vervallen; afgehandeld binnen insert_mld_opdr! - -- Cursor (c2a) liep over ICT aanvragen zonder acceptatietijd of waarvan - -- invoerder is Leidinggevende; deze worden automatisch geaccepteerd! - -- RWSN#27015-einde! - - -- RWSN#27015: Per RWSN51 vervallen; afgehandeld binnen insert_mld_opdr! - -- Cursor (c2b) liep over ICT aanvragen mét acceptatietijd én waarvan - -- invoerder is géén Leidinggevende; hiervan wordt de Opmerking bijgewerkt - -- met de tekst '...ter autorisatie aangeboden aan Leidinggevende.' (en is - -- de "educated guess" dat dit veld dan altijd nog leeg=NULL zal zijn)! - -- RWSN#27015-einde! - - -- Cursor loopt over alle te accepteren en uit te geven ICT aanvragen. - CURSOR c3 - IS - SELECT m.mld_melding_key, m.mld_melding_status - FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.mld_melding_status IN (2, 3, 4) - AND NOT EXISTS - (SELECT 1 - FROM mld_opdr o - WHERE o.mld_melding_key = m.mld_melding_key) - ORDER BY m.mld_melding_key; - - -- Cursor loopt over zojuist goedgekeurde (door BEH) of gefiatteerde (door - -- LDG of DBV) ICT opdrachten; hiervan wordt de melding bijgewerkt en igv. - -- webbased-applicatie aanvragen wordt deze ook direct afgemeld. - -- RWSN#27015: Was na DBV-goedkeuring, nu na BEH-, LDG- én DBV-goedkeuring! - -- Hoe onderscheid maken? -> prs_kostenplaatsgrp/collega (DBV), - -- prs_kostenplaats (LDG), ins_kenmerkdeel (BEH) - -- Hoe eerdere goedkeuring herkennen? -> mld_melding_opmerking - -- RWSN#27015: Per RWSN51 loopt het uitgeven via (Fiatteringsverzoeken-)GUI - -- automatisch; alleen dus nog de melding bijwerken. - -- RWSN#29095: Per RWSN53 aanvragen van webbased-applicaties via aut.proces - -- 2 of 3 (waarvoor FB/KEY bestaat) direct afmelden. - -- Voor deze aanvragen geldt: kosten=1 en teverzenden=NULL! - CURSOR c4 - IS - SELECT m.mld_melding_key, - m.mld_melding_opmerking, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - SUBSTR (o.mld_opdr_omschrijving, 1, INSTR (o.mld_opdr_omschrijving, CHR (13), 1, 1) - 1) - opdracht, - o.mld_opdr_kosten, - o.mld_opdr_teverzenden, - pf.prs_perslid_naam_full fiatteur_naam, - DECODE (dbv.prs_perslid_key, NULL, 'Leidinggevende', 'DBV') - fiatteur_type - FROM mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_opdr o, - fac_tracking t, - prs_v_perslid_fullnames_all pf, - (SELECT prs_perslid_key FROM prs_kostenplaats - UNION ALL - SELECT c.prs_perslid_key_alt prs_perslid_key - FROM prs_kostenplaats kp, prs_collega c - WHERE kp.prs_perslid_key = c.prs_perslid_key) ldg, - (SELECT prs_perslid_key FROM prs_kostenplaatsgrp - UNION ALL - SELECT c.prs_perslid_key_alt prs_perslid_key - FROM prs_kostenplaatsgrp kpg, prs_collega c - WHERE kpg.prs_perslid_key = c.prs_perslid_key) dbv - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven - AND m.mld_melding_key = o.mld_melding_key - AND o.mld_opdr_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key = 167 -- ORDFOK - AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24') - AND t.prs_perslid_key = pf.prs_perslid_key - AND t.prs_perslid_key = ldg.prs_perslid_key(+) - AND t.prs_perslid_key = dbv.prs_perslid_key(+) - UNION ALL - SELECT m.mld_melding_key, - m.mld_melding_opmerking, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - SUBSTR (o.mld_opdr_omschrijving, 1, INSTR (o.mld_opdr_omschrijving, CHR (13), 1, 1) - 1) - opdracht, - o.mld_opdr_kosten, - o.mld_opdr_teverzenden, - pf.prs_perslid_naam_full fiatteur_naam, - 'Beheerder' fiatteur_type - FROM mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_opdr o, - fac_tracking t, - prs_v_perslid_fullnames_all pf - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven - AND m.mld_melding_key = o.mld_melding_key - AND o.mld_opdr_kosten = 1 -- Langs BEH, dus aut.proces 2 of 3 - AND o.mld_opdr_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key = 165 -- ORDNEW - AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24') - AND t.prs_perslid_key = pf.prs_perslid_key; - - -- Cursor loopt over zojuist afgewezen ICT opdrachten (door BEH/LDG/DBV); - -- hiervan wordt de melding bijgewerkt. - -- RWSN#27015: Was na DBV-afwijzing, nu na BEH-, LDG- én DBV-afwijzing! - -- Hoe onderscheid te maken? -> prs_kostenplaatsgrp/collega - CURSOR c5 - IS - SELECT m.mld_melding_key, - m.mld_melding_opmerking, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - SUBSTR (o.mld_opdr_omschrijving, 1, INSTR (o.mld_opdr_omschrijving, CHR (13), 1, 1) - 1) - opdracht, - TRIM (o.mld_opdr_opmerking_fiat) mld_opdr_opmerking_fiat, - pf.prs_perslid_naam_full fiatteur_naam, - DECODE (t.fac_srtnotificatie_key, 277, 'Beheerder', DECODE (dbv.prs_perslid_key, NULL, 'Leidinggevende', 'DBV')) - fiatteur_type - FROM mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_opdr o, - fac_tracking t, - prs_v_perslid_fullnames_all pf, - ( SELECT prs_perslid_key FROM prs_kostenplaatsgrp - UNION ALL - SELECT c.prs_perslid_key_alt prs_perslid_key - FROM prs_kostenplaatsgrp kpg, prs_collega c - WHERE kpg.prs_perslid_key = c.prs_perslid_key) dbv - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven - AND m.mld_melding_key = o.mld_melding_key - AND o.mld_statusopdr_key = 2 -- Niet akkoord - AND NOT EXISTS - (SELECT 1 - FROM mld_kenmerkopdr ko - WHERE ko.mld_opdr_key = o.mld_opdr_key - AND ko.mld_kenmerk_key = 1577) - AND o.mld_opdr_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key IN (168, 277) -- ORDFNO + ORDGNO - AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24') - AND t.prs_perslid_key = pf.prs_perslid_key - AND t.prs_perslid_key = dbv.prs_perslid_key(+); - - -- Cursor loopt over de verzonden ICT opdrachten; deze worden bijgewerkt. - -- RWSN#27015: Nieuw! - -- Hoe eerdere verzending herkennen? -> mld_melding_opmerking - CURSOR c6 - IS - SELECT m.mld_melding_key, - m.mld_melding_opmerking, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - SUBSTR (o.mld_opdr_omschrijving, 1, INSTR (o.mld_opdr_omschrijving, CHR (13), 1, 1) - 1) - opdracht - FROM mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_opdr o, - fac_tracking t - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.mld_melding_status = 7 -- Uitgegeven - AND m.mld_melding_key = o.mld_melding_key - AND o.mld_opdr_key = t.fac_tracking_refkey - AND t.fac_srtnotificatie_key = 171 -- ORDSNT - AND t.fac_tracking_datum > TRUNC (SYSDATE - (1 / 24), 'HH24'); - - -- Cursor loopt over alle 'Laatste actie'-kenmerkwaarden en voert deze door - -- in de Afhandeling en Opmerking van resp. de opdracht en de melding. - CURSOR c7 - IS - SELECT m.mld_melding_key, - m.mld_melding_opmerking, - o.mld_opdr_key, - o.mld_opdr_bedrijfopdr_volgnr, - SUBSTR (o.mld_opdr_omschrijving, 1, INSTR (o.mld_opdr_omschrijving, CHR (13), 1, 1) - 1) - opdracht, - o.mld_opdr_opmerking, - ko.mld_kenmerkopdr_key, - TRIM (ko.mld_kenmerkopdr_waarde) laatste_actie - FROM mld_kenmerkopdr ko, mld_opdr o, mld_melding m - WHERE ko.mld_kenmerk_key = 3767 -- Laatste actie - AND ko.mld_opdr_key = o.mld_opdr_key - AND o.mld_typeopdr_key = 1441 -- DID - AND o.mld_statusopdr_key IN (5, 6, 8) - AND o.mld_melding_key = m.mld_melding_key; - - -- Cursor loopt over alle ICT aanvragen waaronder opdrachten bestaan die - -- allemaal de status Afgewezen, Niet akkoord, Afgemeld of Verwerkt hebben; - -- deze worden automatisch afgemeld! - CURSOR c8 - IS - SELECT mld_melding_key - FROM mld_melding - WHERE mld_melding_key IN - (SELECT niet_opgelost.mld_melding_key - FROM (SELECT m.mld_melding_key, - (SELECT COUNT ( * ) - FROM mld_opdr o - WHERE mld_melding_key = m.mld_melding_key) - aanw_opdr, - (SELECT COUNT ( * ) - FROM mld_opdr o - WHERE mld_melding_key = m.mld_melding_key - AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7)) - open_opdr - FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td - WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key IN (21, 121) -- ICT/GPO - AND td.ins_discipline_key <> 532 - AND m.mld_melding_status IN (4, 7)) - niet_opgelost - WHERE aanw_opdr > 0 AND open_opdr = 0); - - c_externnr_kenmerk_key NUMBER (10) := 1577; - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - v_count NUMBER (10); - v_count_tot NUMBER (10); - v_count_upd NUMBER (10); - v_mld_opmerking VARCHAR (4000); - - -- SUBPROC - PROCEDURE insert_mld_opdr (p_applname IN VARCHAR2, - p_applrun IN VARCHAR2, - p_mldkey IN NUMBER) - AS - -- Cursor loopt over alle volgnummers van delen uit een ICT aanvraag. - CURSOR c1 - IS - SELECT COALESCE (k.mld_kenmerk_volgnummer, 0) volgnummer, - k.mld_kenmerk_default - FROM mld_melding m, mld_stdmelding sm, mld_kenmerk k - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND m.mld_stdmelding_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'S' - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_srtkenmerk_key BETWEEN 200 AND 207 - UNION ALL -- Geen delen, dan enkelvoudige ICT aanvraag! - SELECT 999 volgnummer, NULL mld_kenmerk_default - FROM DUAL - WHERE NOT EXISTS - (SELECT 1 - FROM mld_melding m, mld_stdmelding sm, mld_kenmerk k - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND m.mld_stdmelding_key = k.mld_stdmelding_key - AND k.mld_kenmerk_niveau = 'S' - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_srtkenmerk_key BETWEEN 200 AND 207) - ORDER BY 1; - - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - v_count NUMBER (10); - v_afdeling_key NUMBER (10); - v_kostenplaats_key NUMBER (10); - v_budgethouder_key NUMBER (10); - v_fiatteur_type VARCHAR2 (100); - v_kosten_appl NUMBER (12, 2) := NULL; - v_aut_proces VARCHAR2 (10) := ''; - v_webbased NUMBER (10) := -1; - v_opdr_dagen NUMBER (3); - v_stdmelding VARCHAR2 (200); - v_typeopdr_key NUMBER (10); - v_deel1_start NUMBER (3); - v_deeln_start NUMBER (3); - v_kosten_rest NUMBER (12, 2); - v_mld_flexcontent VARCHAR2 (4000); - v_opdr_key NUMBER (10); - v_mld_opmerking VARCHAR2 (4000); - v_srtnoti_oms VARCHAR2 (4000); - BEGIN - v_aanduiding := '[ICT aanvraag ' || p_mldkey || '] '; - - v_errormsg := 'Fout bepalen kostenplaats.'; - - SELECT a.prs_afdeling_key, a.prs_kostenplaats_key - INTO v_afdeling_key, v_kostenplaats_key - FROM mld_melding m, prs_perslid p, prs_afdeling a - WHERE m.mld_melding_key = p_mldkey - AND m.prs_perslid_key = p.prs_perslid_key - AND p.prs_afdeling_key = a.prs_afdeling_key; - - v_errormsg := 'Fout bepalen budgethouder.'; - - v_budgethouder_key := prs.getkpverantwoordelijke (v_kostenplaats_key, 2, -1); - - IF (v_budgethouder_key = -1) - THEN - fac.writelog (p_applname, - 'I', - v_aanduiding || 'Budgethouder ongedefinieerd.', - ''); - COMMIT; - ELSE - SELECT DECODE (COUNT ( * ), 0, 'Leidinggevende', 'DBV') - INTO v_fiatteur_type - FROM prs_kostenplaatsgrp kpg - WHERE kpg.prs_perslid_key = v_budgethouder_key; - END IF; - - -- Geen autorisatieproces, dan ook geen applicatieaanvraag! - v_errormsg := 'Fout bepalen autorisatieproces.'; - - SELECT COUNT ( * ), MIN (ud.fac_usrdata_upper) - INTO v_count, v_aut_proces - FROM mld_melding m, - mld_stdmelding sm, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - fac_usrdata ud - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd.ins_kenmerkdeel_waarde = TO_CHAR (ud.fac_usrdata_key); - - -- Logica specifiek voor Applicatieaanvragen; de kosten (v_kosten_appl) - -- bepalen uiteindelijk of opdracht via status 'Ter goedkeuring' loopt! - IF (v_count = 1) - THEN - v_errormsg := 'Fout bepalen webbased.'; - - SELECT fac_usrdata_key -- 1 = Ja; anders Nee of EXCEPTION! - INTO v_webbased - FROM mld_melding m, - mld_stdmelding sm, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - fac_usrdata ud - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 102 -- Webbased - AND ikd.ins_kenmerkdeel_waarde = TO_CHAR (ud.fac_usrdata_key) - AND ud.fac_usrtab_key = 1; - - -- Applicatie-flow wordt bepaald op basis van 'v_kosten_appl'! - -- -1 => Geen goedkeuring/fiattering en opdracht niet verzenden (als - -- [a] aut.proces=2 en webbased=J of [b] aut.proces=4)! - -- 0 => Geen goedkeuring/fiattering en opdracht direct verzenden! - -- 1 => Goedkeuring door FB/KEY, later opdracht pas verzenden! - -- 2 => Fiattering door budgethouder, later opdracht pas verzenden! - v_kosten_appl := -1; -- Aut.proces=4=Bijzonder, nader te bepalen - - IF (v_aut_proces = '0') -- Geen autorisatie nodig - THEN - v_kosten_appl := 0; - ELSIF (v_aut_proces = '1') -- Autorisatie door LDG - THEN - v_kosten_appl := 2; - ELSIF (v_aut_proces = '2') -- Autorisatie door FB - THEN - -- Bepaal aantal FBs via srtkenmerk_key=103/104/105! - v_errormsg := 'Fout bepalen aantal FBs.'; - - SELECT COUNT (*) - INTO v_count - FROM mld_melding m, - mld_stdmelding sm, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key BETWEEN 103 AND 105; -- FB123 - - IF (v_count > 0) - THEN - v_kosten_appl := 1; -- ORDGOE; FB bekend, dan langs FB! - ELSE - IF (v_webbased = 1) - THEN - v_kosten_appl := 0; -- Webbased; geen FB, dan direct door! - ELSE - v_kosten_appl := 2; -- ORDFIA; geen FB, dan langs budgethouder! - END IF; - END IF; - ELSIF (v_aut_proces = '3') -- Autorisatie door KEY - THEN - -- Bepaal aantal KEYs via eigen tabel Org2Afkorting! - v_errormsg := 'Fout bepalen aantal KEYs.'; - - SELECT COUNT (*) - INTO v_count - FROM prs_v_afdeling_boom ab, - fac_usrdata ud, - mld_melding m, - mld_stdmelding sm, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - ins_srtkenmerk isk - WHERE ab.prs_afdeling_key = v_afdeling_key - AND TO_CHAR (ab.prs_afdeling_key1) = ud.fac_usrdata_code - AND ud.fac_usrtab_key = 2 -- Org2Afkorting - AND m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key - AND isk.ins_srtkenmerk_upper LIKE '%' || UPPER (ud.fac_usrdata_omschr); - - IF (v_count > 0) - THEN - v_kosten_appl := 1; -- ORDGOE; KEY bekend, dan langs KEY! - ELSE - IF (v_webbased = 1) - THEN - v_kosten_appl := 0; -- Webbased; geen KEY, dan direct door! - ELSE - v_kosten_appl := 2; -- ORDFIA; geen KEY, dan langs budgethouder! - END IF; - END IF; - END IF; - END IF; - - v_errormsg := 'Fout bepalen uitvoertijd + stdmelding.'; - - SELECT DECODE ( - COALESCE (sm.mld_stdmelding_t_accepttijd.tijdsduur, 0), - 0, sm.mld_stdmelding_t_uitvoertijd.tijdsduur, - sm.mld_stdmelding_t_uitvoertijd.tijdsduur - (ROUND (sm.mld_stdmelding_t_accepttijd.tijdsduur / 24, 0)) - ), - sm.mld_stdmelding_omschrijving - INTO v_opdr_dagen, v_stdmelding - FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_disc_params dp - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_discipline_key = dp.mld_ins_discipline_key; - - v_errormsg := 'Fout bepalen opdrachttype.'; - - SELECT MIN (ts.mld_typeopdr_key) - INTO v_typeopdr_key - FROM mld_typeopdr_srtdiscipline ts - WHERE ts.ins_srtdiscipline_key = 21 -- ICT aanvragen - GROUP BY ts.ins_srtdiscipline_key; - - v_count := 0; - v_deel1_start := -1; - v_deeln_start := -1; - - FOR rec IN c1 - LOOP - BEGIN - v_count := v_count + 1; - v_kosten_rest := 0; - - -- Bepaal/bewaar tot waar de kenmerken in het algemene deel lopen. - IF (v_deel1_start = -1) - THEN - v_deel1_start := rec.volgnummer; - END IF; - - -- Bepaal vanaf waar de kenmerken van dit deel lopen. - IF (v_deel1_start = 999) - THEN -- Enkelvoudige ICT aanvraag - v_deeln_start := NULL; - ELSE -- Samengestelde ICT aanvraag - v_deeln_start := rec.volgnummer; - END IF; - - v_errormsg := 'Fout bepalen opdrachttekst (' || TO_CHAR (v_count) || ').'; - - v_mld_flexcontent := - rwsn_did_flexcontent (p_mldkey, v_deel1_start, v_deeln_start); - - IF (v_mld_flexcontent IS NOT NULL) - THEN - v_errormsg := 'Fout bepalen noodzaak fiattering (' || TO_CHAR (v_count) || ').'; - - -- Overige flows worden bepaald op basis van 'v_kosten_rest'! - -- 2=mét acceptatietijd én invoerder géén Leidinggevende - -- => Opdracht alleen langs Leidinggevende. - -- 3=fiat-mode <> 2 of - -- fiat-mode = 2 én aanvrager zonder SAP-id (= Extern) - -- => Opdracht alleen langs Leidinggevende én DBV-er. - SELECT MAX (kosten) - INTO v_kosten_rest - FROM (SELECT mld_melding_key, 2 kosten - FROM mld_melding m, mld_stdmelding sm - WHERE m.mld_melding_key = p_mldkey - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND COALESCE (sm.mld_stdmelding_t_accepttijd.tijdsduur, 0) > 0 - AND NOT EXISTS - (SELECT 1 - FROM fac_gebruikersgroep gg - WHERE gg.fac_groep_key IN (421, 422) -- ICT cp. - AND gg.prs_perslid_key = fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key)) - UNION ALL - SELECT mld_melding_key, 3 kosten - FROM mld_melding m, fac_v_aanwezigusrdata ud, prs_perslid p - WHERE m.mld_melding_key = p_mldkey - AND TO_CHAR (m.mld_stdmelding_key) || DECODE (v_deeln_start, NULL, '', '_' || TO_CHAR (v_deeln_start)) - = TRIM (ud.fac_usrdata_code) - AND m.prs_perslid_key = p.prs_perslid_key - AND ud.fac_usrtab_key = 463 -- Fiat-mode/opdr. - AND (COALESCE (ud.fac_usrdata_omschr, '1') <> '2' - OR (ud.fac_usrdata_omschr = '2' AND p.prs_perslid_nr IS NULL))); - - v_errormsg := 'Fout toevoegen opdracht (' || TO_CHAR (v_count) || ').'; - - INSERT INTO mld_opdr ( - mld_opdr_datumbegin, - mld_opdr_einddatum, - mld_uitvoerende_keys, - prs_contactpersoon_key, - mld_typeopdr_key, - prs_perslid_key, - mld_opdr_omschrijving, - mld_opdr_materiaal, - mld_opdr_uren, - mld_opdr_uurloon, - mld_opdr_kosten, - prs_kostenplaats_key, - mld_melding_key, - mld_opdr_module, - mld_opdr_bedrijfopdr_volgnr, - mld_opdr_teverzenden, - mld_opdr_contactpersoon - ) - VALUES ( - SYSDATE, - FAC.DatumTijdPlusUitvoerTijd (SYSDATE, COALESCE (v_opdr_dagen, 0), 'DAGEN'), - 45916, -- Alles naar TOPdesk-KCC! - NULL, - v_typeopdr_key, -- DID - 4, -- Facilitor - v_mld_flexcontent, - DECODE (v_kosten_appl, -1, 0, COALESCE (v_kosten_appl, v_kosten_rest, 0)), - 0, - 0, - DECODE (v_kosten_appl, -1, 0, COALESCE (v_kosten_appl, v_kosten_rest, 0)), - v_kostenplaats_key, - p_mldkey, - 'MLD', - MLD.bepaalopdrmeldingvolgnr (p_mldkey), - DECODE (v_kosten_appl, -1, NULL, 1, DECODE (v_webbased, 1, NULL, 1), 1), - SUBSTR ('Facilitor', 1, 30) - ) - RETURNING mld_opdr_key INTO v_opdr_key; - - COMMIT; - - -- v_kosten_appl=-1, dan doe niets en laat aangemaakte opdracht - -- "bungelen"! - IF (v_kosten_appl = -1) - THEN - BEGIN - MLD.setopdrachtstatus (v_opdr_key, 5, 4); -- Facilitor - - v_errormsg := 'Fout bijwerken toekenning (' || TO_CHAR (v_count) || ').'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || COALESCE (rec.mld_kenmerk_default, v_stdmelding) - || '" geregistreerd tbv. verdere afhandeling.'; - END; - -- v_kosten_appl=1, dan ALTIJD 'Ter goedkeuring'! - -- Of bestellimiet wel of niet voldoet doet er niet toe. - -- NB. Tenminste 1 Beheerder hier altijd bekend/gedefinieerd. - ELSIF (v_kosten_appl = 1) - THEN - BEGIN - -- Via MLD.setopdrachtstatus() naar 10 doet ORDGOE-trackaction en triggert een ORD2GO-notificatie naar iedereen met ORDGOE-rechten! - --MLD.setopdrachtstatus (v_opdr_key, 10, 4); -- Facilitor - -- Bovenstaande willen wij niet, daarom hier via UPDATE, eigen #ORDGOE-trackaction (#-prefix onderdrukt standaard notificaties) en - -- ORD2GO-notificatie naar beheerders volgt via notificatiejob! - UPDATE mld_opdr - SET mld_statusopdr_key = 10 - WHERE mld_opdr_key = v_opdr_key; - - fac.trackaction ('#ORDGOE', - v_opdr_key, - 4, - NULL, - NULL); - - v_errormsg := 'Fout bijwerken ter ORD2GO-fiattering (' || TO_CHAR (v_count) || ').'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || COALESCE (rec.mld_kenmerk_default, v_stdmelding) - || '" ter autorisatie aangeboden aan Beheerder.'; - END; - -- v_kosten_xxxx>1, dan ALTIJD 'Ter fiattering'! - -- Of budgethouder wel of niet bestaat doet er niet toe. - ELSIF (COALESCE (v_kosten_appl, v_kosten_rest, 0) > 1) - THEN - BEGIN - MLD.setopdrachtstatus (v_opdr_key, 3, 4); -- Facilitor - - -- Notificeren als budgethouder bekend! - IF (v_budgethouder_key <> -1) - THEN - v_errormsg := 'Fout bepalen MLDAP1-omschrijving.'; - - SELECT lcl.x ('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms) - INTO v_srtnoti_oms - FROM fac_srtnotificatie - WHERE fac_srtnotificatie_code = 'MLDAP1'; - - fac.putnotificationsrtprio ( - NULL, - v_budgethouder_key, - 'MLDAP1', - v_opdr_key, - mld.opdrsprintf (v_srtnoti_oms, v_opdr_key), - NULL, - NULL, - NULL, - NULL, - 2, - NULL); - END IF; - - v_errormsg := 'Fout bijwerken ter MLDAP1-fiattering (' || TO_CHAR (v_count) || ').'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || COALESCE (rec.mld_kenmerk_default, v_stdmelding) - || '" ter autorisatie aangeboden aan ' - || v_fiatteur_type - || '.'; - END; - ELSE - BEGIN - MLD.setopdrachtstatus (v_opdr_key, 5, 4); -- Facilitor - - v_errormsg := 'Fout bijwerken verzending (' || TO_CHAR (v_count) || ').'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || COALESCE (rec.mld_kenmerk_default, v_stdmelding) - || '" aangeboden aan de ICT-servicedesk.'; - END; - END IF; - - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_melding - SET mld_melding_opmerking = v_mld_opmerking || CHR (13) || CHR (10) || SUBSTR (mld_melding_opmerking, 1, (4000 - v_count)) - WHERE mld_melding_key = p_mldkey; - - BEGIN - MLD.updatemeldingstatus (p_mldkey, 0, 4); -- Facilitor - END; - - COMMIT; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; - fac.writelog (p_applname, 'E', v_aanduiding || v_errormsg, ''); - COMMIT; - END; - END LOOP; - END; -BEGIN - -- RWSN#24870: Per RWSN49 vervallen. - -- Afwijzen open !dienstspecifieke! ICT aanvragen waarvan aanvrager in een - -- andere dienst (niet geautoriseerd) en invoerder is ICT contactpersoon! - -- RWSN#24870-einde! - - -- RWSN#27015: Per RWSN51 vervallen; afgehandeld binnen insert_mld_opdr! - -- Accepteren open ICT aanvragen zonder acceptatietijd of waarvan invoerder - -- is zelf Leidinggevende (deze behoeven geen goedkeuring)! - -- RWSN#27015-einde! - - -- RWSN#27015: Per RWSN51 vervallen; afgehandeld binnen insert_mld_opdr! - -- Bijwerken voortgang van open ICT aanvragen mét acceptatietijd én waarvan - -- invoerder is zelf géén Leidinggevende! - -- RWSN#27015-einde! - - v_count_tot := 0; - v_count_upd := 0; - - -- Loop door alle te behandelen ICT aanvragen en maak - per aanvraag - 1 of - -- meer (deel)opdrachten aan, tenminste, zover een geldige uitvoerende voor - -- gekozen hoofdlocatie is geconfigureerd (anders skippen). - -- Per RWSN#27105 hier voortaan altijd eerst de melding (auto-)accepteren! - FOR rec IN c3 - LOOP - BEGIN - v_aanduiding := '[ICT aanvraag ' || rec.mld_melding_key || '] '; - v_errormsg := 'Fout controle configuratie uitvoerende.'; - - v_count_tot := v_count_tot + 1; - - -- Controleer configuratie uitvoerende voor gekozen hoofdlocatie. - SELECT COUNT ( * ) - INTO v_count - FROM prs_v_aanwezigbedrijf b - WHERE b.prs_bedrijf_key = 45916 -- Alles naar TOPdesk! - AND EXISTS (SELECT '' - FROM prs_bedrijfadres a - WHERE a.prs_bedrijfadres_type = 'O' - AND a.prs_bedrijf_key = b.prs_bedrijf_key - ); - - IF (v_count = 1) - THEN - v_errormsg := 'Fout auto-accepteren.'; - - BEGIN - MLD.setmeldingstatus (rec.mld_melding_key, 4, 4); -- Facilitor - END; - - COMMIT; - - v_errormsg := 'Fout aanmaken opdracht(en).'; - - insert_mld_opdr (p_applname, p_applrun, rec.mld_melding_key); - v_count_upd := v_count_upd + 1; - END IF; - END; - END LOOP; - - fac.writelog ( - p_applname, - 'S', - 'Proces: ' - || TO_CHAR (v_count_upd) - || ' van ' - || TO_CHAR (v_count_tot) - || ' ICT aanvragen uitgegeven', - '' - ); - COMMIT; - - -- Loop door de ter goedkeuring of ter fiattering aangeboden ICT opdrachten - -- die zojuist zijn goedgekeurd/gefiatteerd en werk melding bij. - -- Per RWSN#27015 loopt de flow (na autorisatie via de GUI) voortaan verder - -- vanzelf (gebruikmakend van standaard functionaliteit). - -- Per RWSN#29095 aanvragen van webbased-applicaties via aut.proces 2 of 3 - -- (waarvoor FB/KEY bestaat) direct afmelden. - FOR rec IN c4 - LOOP - BEGIN - v_aanduiding := - '[ICT aanvraag ' - || rec.mld_melding_key - || '/' - || rec.mld_opdr_bedrijfopdr_volgnr - || '] '; - v_errormsg := 'Fout bijwerken goedkeuring door ' || rec.fiatteur_type || '.'; - - IF (rec.mld_melding_opmerking NOT LIKE - '%goedgekeurd door ' || rec.fiatteur_naam || '%') - THEN - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || SUBSTR (rec.opdracht, 1, 60) - || '" goedgekeurd door ' - || rec.fiatteur_naam - || '.'; - - IF (rec.fiatteur_type = 'Beheerder' AND rec.mld_opdr_kosten > 1) - THEN - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || SUBSTR (rec.opdracht, 1, 60) - || '" ter autorisatie aangeboden aan Leidinggevende.' - || CHR (13) - || CHR (10) - || v_mld_opmerking; - ELSIF (rec.fiatteur_type = 'Leidinggevende' AND rec.mld_opdr_kosten > 2) - THEN - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || SUBSTR (rec.opdracht, 1, 60) - || '" ter autorisatie aangeboden aan DBV.' - || CHR (13) - || CHR (10) - || v_mld_opmerking; - END IF; - - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_melding - SET mld_melding_opmerking = - v_mld_opmerking || CHR (13) || CHR (10) - || SUBSTR (rec.mld_melding_opmerking, - 1, - (4000 - v_count)) - WHERE mld_melding_key = rec.mld_melding_key; - - IF (rec.mld_opdr_kosten = 1 AND rec.mld_opdr_teverzenden IS NULL) - THEN - BEGIN - MLD.setopdrachtstatus (rec.mld_opdr_key, 6, 4); -- Facilitor - END; - END IF; - - COMMIT; - END IF; - END; - END LOOP; - - -- Loop door de ter autorisatie aangeboden ICT opdrachten die zojuist zijn - -- afgewezen en werk melding bij. - FOR rec IN c5 - LOOP - BEGIN - v_aanduiding := - '[ICT aanvraag ' - || rec.mld_melding_key - || '/' - || rec.mld_opdr_bedrijfopdr_volgnr - || '] '; - v_errormsg := 'Fout toevoegen opdrachtkenmerk XXX.'; - - INSERT INTO mld_kenmerkopdr ( - mld_kenmerkopdr_waarde, - mld_kenmerk_key, - mld_opdr_key - ) - VALUES ('XXX', c_externnr_kenmerk_key, rec.mld_opdr_key); - - v_errormsg := 'Fout bijwerken afwijzing door ' || rec.fiatteur_type || '.'; - - IF (rec.mld_melding_opmerking NOT LIKE - '%afgewezen door ' || rec.fiatteur_naam || '%') - THEN - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || SUBSTR (rec.opdracht, 1, 60) - || '" afgewezen door ' - || rec.fiatteur_naam - || ', met als reden: ' - || SUBSTR (rec.mld_opdr_opmerking_fiat, 1, 1024); - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_melding - SET mld_melding_opmerking = - v_mld_opmerking || CHR (13) || CHR (10) - || SUBSTR (rec.mld_melding_opmerking, - 1, - (4000 - v_count)) - WHERE mld_melding_key = rec.mld_melding_key; - - COMMIT; - END IF; - END; - END LOOP; - - -- Loop door de ter autorisatie aangeboden ICT opdrachten die zojuist zijn - -- verzonden en werk melding bij. - FOR rec IN c6 - LOOP - BEGIN - v_aanduiding := - '[ICT aanvraag ' - || rec.mld_melding_key - || '/' - || rec.mld_opdr_bedrijfopdr_volgnr - || '] '; - v_errormsg := 'Fout bijwerken verzending.'; - - IF (rec.mld_melding_opmerking NOT LIKE - '%aangeboden aan de ICT-servicedesk%') - THEN - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' Opdracht "' - || SUBSTR (rec.opdracht, 1, 60) - || '" aangeboden aan de ICT-servicedesk.'; - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_melding - SET mld_melding_opmerking = - v_mld_opmerking || CHR (13) || CHR (10) - || SUBSTR (rec.mld_melding_opmerking, - 1, - (4000 - v_count)) - WHERE mld_melding_key = rec.mld_melding_key; - - COMMIT; - END IF; - END; - END LOOP; - - -- Doorvoeren 'Laatste actie' in de Afhandeling en Opmerking van resp. de - -- opdracht en de melding. - FOR rec IN c7 - LOOP - BEGIN - v_aanduiding := - '[ICT aanvraag ' - || rec.mld_melding_key - || '/' - || rec.mld_opdr_bedrijfopdr_volgnr - || '] '; - v_errormsg := 'Fout bijwerken laatste actie/melding.'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || ' / "' - || SUBSTR (rec.opdracht, 1, 60) - || '" ' - || CHR (13) - || CHR (10) - || SUBSTR (rec.laatste_actie, 1, 255); - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_melding - SET mld_melding_opmerking = - v_mld_opmerking || CHR (13) || CHR (10) - || SUBSTR (rec.mld_melding_opmerking, - 1, - (4000 - v_count)) - WHERE mld_melding_key = rec.mld_melding_key; - - v_errormsg := 'Fout bijwerken laatste actie/opdracht.'; - - v_mld_opmerking := - TO_CHAR (SYSDATE, 'dd-mm-yyyy hh24:mi:ss') - || CHR (13) - || CHR (10) - || SUBSTR (rec.laatste_actie, 1, 255); - v_count := LENGTH (v_mld_opmerking) + 5; - - -- Beetje speling qua lengte! - UPDATE mld_opdr - SET mld_opdr_opmerking = - v_mld_opmerking - || CHR (13) - || CHR (10) - || SUBSTR (rec.mld_opdr_opmerking, 1, (4000 - v_count)) - WHERE mld_opdr_key = rec.mld_opdr_key; - - DELETE FROM mld_kenmerkopdr WHERE mld_kenmerkopdr_key = rec.mld_kenmerkopdr_key; - COMMIT; - END; - END LOOP; - - -- Afmelden niet opgeloste ICT aanvragen (waaronder opdrachten bestaan die - -- allemaal de status Afgewezen, Niet akkoord, Afgemeld of Verwerkt hebben! - FOR rec IN c8 - LOOP - v_aanduiding := '[ICT aanvraag ' || rec.mld_melding_key || '] '; - v_errormsg := 'Fout auto-afmelden.'; - - BEGIN - MLD.setmeldingstatus (rec.mld_melding_key, 5, 4); -- Facilitor - - -- Handle workflow actions for completion. - MLD.mld_nextworkflowstep (rec.mld_melding_key, 1); -- 1=Completed - - COMMIT; - END; - END LOOP; -EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.writelog (p_applname, - 'E', - v_aanduiding || v_errormsg, - ''); - COMMIT; -END; -/ - --- Multi variant voor automatische import via gen_import van DID statusberichten. -/* Formatted on 11-1-2011 18:00:50 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_import_did_status (p_import_key IN NUMBER) -AS - c_delim VARCHAR2 (1) := ';'; - v_newline VARCHAR2 (1000); -- Input line - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - header_is_valid NUMBER := 0; - v_count_tot NUMBER (10) := 0; - v_count_import NUMBER (10) := 0; - v_ongeldig NUMBER (1) := 0; - -- De importvelden - v_opdrachtnr VARCHAR2 (255); -- C? - v_msg_type VARCHAR2 (255); -- C? - v_imp_log_timestamp VARCHAR2 (255); -- DATE - v_imp_log_timestamp_d DATE; -- DATE - v_externnr VARCHAR2 (255); -- C? - v_mld_info VARCHAR2 (1000); -- C? - v_mld_einddatum VARCHAR2 (255); -- DATE - v_mld_einddatum_d DATE; -- DATE - - -- Overige velden: - CURSOR c1 - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; -BEGIN - DELETE FROM rwsn_imp_didstatusmulti WHERE imp_log_run <> TO_CHAR (p_import_key); - COMMIT; - - FOR rec1 IN c1 - LOOP - BEGIN - v_newline := rec1.fac_imp_file_line; - v_errormsg := 'Fout opvragen te importeren rij'; - v_aanduiding := ''; - v_ongeldig := 0; - - -- Lees alle veldwaarden - fac.imp_getfield (v_newline, c_delim, v_opdrachtnr); - fac.imp_getfield (v_newline, c_delim, v_msg_type); - fac.imp_getfield (v_newline, c_delim, v_imp_log_timestamp); - fac.imp_getfield (v_newline, c_delim, v_externnr); - fac.imp_getfield (v_newline, c_delim, v_mld_info); - fac.imp_getfield (v_newline, c_delim, v_mld_einddatum); - v_aanduiding := - '[' - || v_msg_type - || '|' - || v_opdrachtnr - || '|' - || v_externnr - || '] '; - - -- 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 (TRIM(v_opdrachtnr)) = 'OPDRACHTNUMMER' - AND UPPER (TRIM(v_msg_type)) = 'MUTATIECODE' - AND UPPER (TRIM(v_imp_log_timestamp)) = 'MUTATIETIJDSTIP' - AND UPPER (TRIM(v_externnr)) = 'EXTERNNR' - AND UPPER (TRIM(v_mld_info)) = 'OPMERKING' - AND UPPER (TRIM(v_mld_einddatum)) = 'EINDDATUM' - THEN - header_is_valid := 1; - END IF; - ELSE - v_count_tot := v_count_tot + 1; - -- Controleer alle veldwaarden - v_errormsg := 'Fout inlezen opdrachtnummer'; - v_opdrachtnr := TRIM (v_opdrachtnr); - - IF (v_opdrachtnr IS NULL) - THEN - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Opdrachtnummer verplicht; regel wordt overgeslagen!' - ); - v_ongeldig := 1; - END IF; - - -- - v_errormsg := 'Fout inlezen mutatiecode'; - v_msg_type := TRIM (v_msg_type); - - IF (COALESCE (v_msg_type, 'XXX') != 'UPD' - AND COALESCE (v_msg_type, 'XXX') != 'AFM') - THEN - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Mutatiecode ongeldig; regel wordt overgeslagen!' - ); - v_ongeldig := 1; - END IF; - - -- - v_errormsg := 'Fout inlezen mutatietijdstip'; - v_imp_log_timestamp := TRIM (v_imp_log_timestamp); - - IF (fac.safe_to_date (v_imp_log_timestamp, 'yyyy-mm-dd hh24:mi:ss') IS NULL) - THEN - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Mutatietijdstip ongeldig; regel wordt overgeslagen!' - ); - v_ongeldig := 1; - ELSE - v_imp_log_timestamp_d := fac.safe_to_date (v_imp_log_timestamp, 'yyyy-mm-dd hh24:mi:ss'); - END IF; - - -- - v_errormsg := 'Fout inlezen externnr'; - v_externnr := TRIM (v_externnr); - - -- - v_errormsg := 'Fout inlezen opmerking'; - v_mld_info := - SUBSTR ( - TRIM (REPLACE (v_mld_info, '%%0A', CHR (13) || CHR (10))), - 1, - 500 - ); - - -- - v_errormsg := 'Fout inlezen einddatum'; - v_mld_einddatum := TRIM (v_mld_einddatum); - - IF (v_mld_einddatum IS NOT NULL) - THEN - IF (fac.safe_to_date (v_mld_einddatum, 'yyyy-mm-dd hh24:mi:ss') IS NULL) - THEN - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Einddatum ongeldig; datum wordt niet bijgewerkt!' - ); - v_mld_einddatum_d := NULL; - ELSE - v_mld_einddatum_d := fac.safe_to_date (v_mld_einddatum, 'yyyy-mm-dd hh24:mi:ss'); - END IF; - END IF; - - -- Insert geformatteerde import record - IF (v_ongeldig = 0) - THEN - BEGIN - v_errormsg := 'Fout wegschrijven importregel'; - - INSERT INTO rwsn_imp_didstatusmulti ( - imp_log_run, - imp_log_timestamp, - msg_type, - opdrachtnr, - externnr, - mld_info, - mld_einddatum - ) - VALUES ( - TO_CHAR (p_import_key), - v_imp_log_timestamp_d, - SUBSTR (v_msg_type, 1, 30), - SUBSTR (v_opdrachtnr, 1, 15), - SUBSTR (v_externnr, 1, 15), - SUBSTR (v_mld_info, 1, 1000), - v_mld_einddatum_d - ); - - 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, - 'E', - v_aanduiding || v_errormsg, - '' - ); - 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', - 'Inleesproces/#ingelezen importregels: ' - || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'Inleesproces/#ongeldige niet ingelezen importregels: ' - || TO_CHAR (v_count_tot - v_count_import), - '' - ); - END IF; - - DELETE FROM fac_imp_file 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 := - v_errormsg - || 'ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Inleesproces DID statusberichten afgebroken!'); -END; -/ - -/* Formatted on 9-11-2015 13:23:34 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE PROCEDURE rwsn_update_did_status (p_import_key IN NUMBER) -AS - -- Cursor loopt - in volgorde! - over alle ingelezen DID statusberichten. - CURSOR c1 - IS - SELECT imp_log_timestamp, - msg_type, - opdrachtnr, - externnr, - DECODE ( - mld_info, - NULL, NULL, - TO_CHAR (imp_log_timestamp, 'dd-mm-yyyy hh24:mi:ss') - || CHR (13) - || CHR (10) - || mld_info) - mld_info, - mld_einddatum - FROM rwsn_imp_didstatusmulti - WHERE imp_log_run = TO_CHAR (p_import_key) - ORDER BY 1, 2 DESC, 3; - - --c_externnr_kenmerk_key NUMBER (10) := 1577; - c_externnr_ksrtkey NUMBER (10) := 321; -- Extern nummer - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count NUMBER (10); - v_mld_key NUMBER (10); - v_opdr_key NUMBER (10); - v_typeopdr_key NUMBER (10); - v_opdr_status NUMBER (10); - v_externnr_kkey NUMBER (10); -BEGIN - -- Loop door alle geimporteerde DID statusberichten en verwerk deze. - v_count_tot := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_aanduiding := '[' || rec.msg_type || '|' || rec.opdrachtnr || '] '; - v_count_tot := v_count_tot + 1; - v_count := 0; - v_mld_key := -1; - v_opdr_key := -1; - - -- Key van melding/opdracht bepalen (alleen DID en GPO gerelateerd!). - IF (rec.opdrachtnr IS NOT NULL) - THEN - v_errormsg := 'Fout bepalen melding/opdracht.'; - - --SELECT mld_melding_key, mld_opdr_key, mld_statusopdr_key - -- INTO v_mld_key, v_opdr_key, v_opdr_status - -- FROM mld_opdr - -- WHERE mld_typeopdr_key = 1441 -- DID - -- AND mld_melding_key || '/' || mld_opdr_bedrijfopdr_volgnr = rec.opdrachtnr; - SELECT o.mld_melding_key, o.mld_opdr_key, o.mld_typeopdr_key, o.mld_statusopdr_key - INTO v_mld_key, v_opdr_key, v_typeopdr_key, v_opdr_status - FROM mld_opdr o, mld_melding m, mld_stdmelding sm, mld_discipline md - WHERE o.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_srtdiscipline_key IN (21, 121) -- ICT/GPO - AND o.mld_melding_key || '/' || o.mld_opdr_bedrijfopdr_volgnr = rec.opdrachtnr; - END IF; - - -- Alleen iets doen als melding/opdracht succesvol is bepaald. - IF (v_mld_key > 0 AND v_opdr_key > 0) - THEN - -- Externnr-kenmerk initieel opslaan bij opdracht (met externnr). - IF (rec.externnr IS NOT NULL) - THEN - v_errormsg := 'Fout bepalen externnr-bestaan.'; - - SELECT COUNT ( * ) - INTO v_count - FROM mld_kenmerk - WHERE mld_kenmerk_verwijder IS NULL - AND mld_srtkenmerk_key = c_externnr_ksrtkey - AND mld_typeopdr_key = v_typeopdr_key - AND mld_kenmerk_niveau = 'O'; - - IF (v_count = 1) - THEN - v_errormsg := 'Fout bepalen externnr-key.'; - - SELECT mld_kenmerk_key - INTO v_externnr_kkey - FROM mld_kenmerk - WHERE mld_kenmerk_verwijder IS NULL - AND mld_srtkenmerk_key = c_externnr_ksrtkey - AND mld_typeopdr_key = v_typeopdr_key - AND mld_kenmerk_niveau = 'O'; - - v_errormsg := 'Fout toevoegen externr-waarde.'; - - SELECT COUNT ( * ) - INTO v_count - FROM mld_v_aanwezigkenmerkopdr ok, mld_kenmerk k - WHERE ok.mld_opdr_key = v_opdr_key - AND ok.mld_kenmerk_key = k.mld_kenmerk_key - AND k.mld_srtkenmerk_key = c_externnr_ksrtkey; - - IF (v_count = 0) - THEN - INSERT INTO mld_kenmerkopdr (mld_kenmerkopdr_waarde, - mld_kenmerk_key, - mld_opdr_key) - VALUES (rec.externnr, v_externnr_kkey, v_opdr_key); - END IF; - END IF; - END IF; - - -- Bijwerken Opmerking met mld_info (bovenin melding en opdracht). - IF (rec.mld_info IS NOT NULL) - THEN - v_errormsg := 'Fout bijwerken opdracht-opmerking.'; - - v_count := LENGTH (rec.mld_info) + 5; -- Beetje speling qua lengte! - - UPDATE mld_opdr - SET mld_opdr_opmerking = - DECODE ( - mld_opdr_opmerking, - NULL, rec.mld_info, - rec.mld_info || CHR (13) || CHR (10) - || SUBSTR (mld_opdr_opmerking, - 1, - (4000 - v_count))) - WHERE mld_opdr_key = v_opdr_key - AND mld_statusopdr_key IN (5, 8); - - IF (rec.msg_type <> 'NOK') -- NOK voor DID - nog - ongedefinieerd! - THEN - v_errormsg := 'Fout bijwerken melding-opmerking.'; - - UPDATE mld_melding - SET mld_melding_opmerking = - DECODE ( - mld_melding_opmerking, - NULL, rec.mld_info, - rec.mld_info || CHR (13) || CHR (10) - || SUBSTR (mld_melding_opmerking, - 1, - (4000 - v_count))) - WHERE mld_melding_key = v_mld_key - AND mld_melding_status IN (4, 7); - END IF; - - COMMIT; - END IF; - - -- Plandatum van melding bijwerken volgens mld_einddatum (alleen naar - -- achteren en als msg_type=UPD). - IF (rec.msg_type = 'UPD' AND rec.mld_einddatum IS NOT NULL) - THEN - v_errormsg := 'Fout bijwerken einddatum volgens UPD.'; - - UPDATE mld_melding - SET mld_melding_einddatum = rec.mld_einddatum - WHERE mld_melding_key = v_mld_key - AND mld_melding_status IN (4, 7) - AND rec.mld_einddatum > mld_melding_einddatum; - - COMMIT; - END IF; - - -- Sluit opdracht (als msg_type=AFM); de bovenliggende melding wordt - -- eventueel gesloten tijdens db-procedure: rwsn_export_did_opdr! - IF (rec.msg_type = 'AFM') - THEN - -- Sluit opdracht! - IF (v_opdr_status = 5 OR v_opdr_status = 8) - THEN - v_errormsg := 'Fout sluiten opdracht.'; - - MLD.setopdrachtstatus (v_opdr_key, 6, 4); -- Facilitor - - COMMIT; - END IF; - END IF; - END IF; - EXCEPTION - WHEN OTHERS - THEN - oracle_err_num := SQLCODE; - oracle_err_mes := SUBSTR (SQLERRM, 1, 100); - v_errormsg := - v_errormsg - || ' ORACLE (error ' - || oracle_err_num - || '/' - || oracle_err_mes - || ')'; - fac.imp_writelog (p_import_key, - 'E', - v_aanduiding || v_errormsg, - 'Fout verwerken DID statusbericht.'); - END; - END LOOP; - - fac.imp_writelog ( - p_import_key, - 'S', - 'Proces: ' - || TO_CHAR (v_count_tot) - || ' DID statusberichten afgehandeld.', - ''); - COMMIT; -END; -/ - - -/* Formatted on 3-7-2013 13:14:15 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW RWSN_V_ICTCP_PER_AFD -( - afd_key, - prs_key, - direct, - bv -) -AS - SELECT afdx.prs_afdeling_key afd_key, - pb.prs_perslid_key prs_key, - 'Ja' direct, - 'B' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_v_aanwezigperslid pb - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = pb.prs_perslid_key - UNION ALL - SELECT afdx.prs_afdeling_key afd_key, - c.prs_perslid_key_alt prs_key, - 'Ja' direct, - 'V' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, prs_v_aanwezigkostenplaats kp, prs_collega c - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = c.prs_perslid_key - UNION ALL -- Afdelingen zonder budgethouder 1 niveau lager - SELECT afd1.prs_afdeling_key afd_key, - ap.prs_key, - 'Nee', - ap.bv - FROM (SELECT afdx.prs_afdeling_key afd_key, - kp.prs_perslid_key prs_key, - 'B' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_v_aanwezigperslid pb - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = pb.prs_perslid_key - UNION ALL - SELECT afdx.prs_afdeling_key afd_key, - c.prs_perslid_key_alt prs_key, - 'V' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_collega c - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = c.prs_perslid_key) ap, - prs_afdeling afd1, - prs_v_aanwezigkostenplaats kp1 - WHERE ap.afd_key = afd1.prs_afdeling_parentkey - AND afd1.prs_afdeling_verwijder IS NULL - AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key - AND kp1.prs_perslid_key IS NULL - UNION ALL -- Afdelingen zonder budgethouder 2 niveaux lager - SELECT afd2.prs_afdeling_key afd_key, - ap.prs_key, - 'Nee', - ap.bv - FROM (SELECT afdx.prs_afdeling_key afd_key, - kp.prs_perslid_key prs_key, - 'B' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_v_aanwezigperslid pb - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = pb.prs_perslid_key - UNION ALL - SELECT afdx.prs_afdeling_key afd_key, - c.prs_perslid_key_alt prs_key, - 'V' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_collega c - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = c.prs_perslid_key) ap, - prs_afdeling afd1, - prs_v_aanwezigkostenplaats kp1, - prs_afdeling afd2, - prs_v_aanwezigkostenplaats kp2 - WHERE ap.afd_key = afd1.prs_afdeling_parentkey - AND afd1.prs_afdeling_verwijder IS NULL - AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key - AND kp1.prs_perslid_key IS NULL - AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey - AND afd2.prs_afdeling_verwijder IS NULL - AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key - AND kp2.prs_perslid_key IS NULL - UNION ALL -- Afdelingen zonder budgethouder 3 niveaux lager - SELECT afd3.prs_afdeling_key afd_key, - ap.prs_key, - 'Nee', - ap.bv - FROM (SELECT afdx.prs_afdeling_key afd_key, - kp.prs_perslid_key prs_key, - 'B' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_v_aanwezigperslid pb - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = pb.prs_perslid_key - UNION ALL - SELECT afdx.prs_afdeling_key afd_key, - c.prs_perslid_key_alt prs_key, - 'V' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_collega c - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = c.prs_perslid_key) ap, - prs_afdeling afd1, - prs_v_aanwezigkostenplaats kp1, - prs_afdeling afd2, - prs_v_aanwezigkostenplaats kp2, - prs_afdeling afd3, - prs_v_aanwezigkostenplaats kp3 - WHERE ap.afd_key = afd1.prs_afdeling_parentkey - AND afd1.prs_afdeling_verwijder IS NULL - AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key - AND kp1.prs_perslid_key IS NULL - AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey - AND afd2.prs_afdeling_verwijder IS NULL - AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key - AND kp2.prs_perslid_key IS NULL - AND afd2.prs_afdeling_key = afd3.prs_afdeling_parentkey - AND afd3.prs_afdeling_verwijder IS NULL - AND afd3.prs_kostenplaats_key = kp3.prs_kostenplaats_key - AND kp3.prs_perslid_key IS NULL - UNION ALL -- Afdelingen zonder budgethouder 4 niveaux lager - SELECT afd4.prs_afdeling_key afd_key, - ap.prs_key, - 'Nee', - ap.bv - FROM (SELECT afdx.prs_afdeling_key afd_key, - kp.prs_perslid_key prs_key, - 'B' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_v_aanwezigperslid pb - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = pb.prs_perslid_key - UNION ALL - SELECT afdx.prs_afdeling_key afd_key, - c.prs_perslid_key_alt prs_key, - 'V' bv -- Budgethouder/Vervanger - FROM prs_afdeling afdx, - prs_v_aanwezigkostenplaats kp, - prs_collega c - WHERE afdx.prs_afdeling_verwijder IS NULL - AND afdx.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key = c.prs_perslid_key) ap, - prs_afdeling afd1, - prs_v_aanwezigkostenplaats kp1, - prs_afdeling afd2, - prs_v_aanwezigkostenplaats kp2, - prs_afdeling afd3, - prs_v_aanwezigkostenplaats kp3, - prs_afdeling afd4, - prs_v_aanwezigkostenplaats kp4 - WHERE ap.afd_key = afd1.prs_afdeling_parentkey - AND afd1.prs_afdeling_verwijder IS NULL - AND afd1.prs_kostenplaats_key = kp1.prs_kostenplaats_key - AND kp1.prs_perslid_key IS NULL - AND afd1.prs_afdeling_key = afd2.prs_afdeling_parentkey - AND afd2.prs_afdeling_verwijder IS NULL - AND afd2.prs_kostenplaats_key = kp2.prs_kostenplaats_key - AND kp2.prs_perslid_key IS NULL - AND afd2.prs_afdeling_key = afd3.prs_afdeling_parentkey - AND afd3.prs_afdeling_verwijder IS NULL - AND afd3.prs_kostenplaats_key = kp3.prs_kostenplaats_key - AND kp3.prs_perslid_key IS NULL - AND afd3.prs_afdeling_key = afd4.prs_afdeling_parentkey - AND afd4.prs_afdeling_verwijder IS NULL - AND afd4.prs_kostenplaats_key = kp4.prs_kostenplaats_key - AND kp4.prs_perslid_key IS NULL; - --- RWSN#27015: Omgebutst! -/* Formatted on 25-6-2014 13:22:56 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_noti_aut_ictaanvragen -( - code, - sender, - receiver, - text, - key, - par1, - par2, - xkey -) -AS -- ORD2GO naar FBs via srtkenmerk_key=103/104/105! - SELECT sn.fac_srtnotificatie_code, - NULL, - fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde), - REPLACE ( - REPLACE ( - lcl.x ('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms), - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - p.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_perslid p, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd1, - ins_kenmerk ik1, - fac_usrdata ap, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 276 -- ORDGOE - AND fac_tracking_refkey = o.mld_opdr_key - AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440) - AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))) - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd1.ins_deel_key) - AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key - AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd1.ins_kenmerkdeel_waarde = TO_CHAR (ap.fac_usrdata_key) - AND ap.fac_usrdata_code = '2' -- Langs FB - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123 - AND sn.fac_srtnotificatie_code = 'ORD2GO' - UNION ALL -- ORD2GO naar KEYs via eigen tabel Org2Afkorting! - SELECT sn.fac_srtnotificatie_code, - NULL, - fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde), - REPLACE ( - REPLACE ( - lcl.x ('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms), - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - p.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_perslid p, - prs_v_afdeling_boom ab, - fac_usrdata oa, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd1, - ins_kenmerk ik1, - fac_usrdata ap, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - ins_srtkenmerk isk, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 276 -- ORDGOE - AND fac_tracking_refkey = o.mld_opdr_key - AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440) - AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))) - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND p.prs_afdeling_key = ab.prs_afdeling_key - AND TO_CHAR (ab.prs_afdeling_key1) = oa.fac_usrdata_code - AND oa.fac_usrtab_key = 2 -- Org2Afkorting - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd1.ins_deel_key) - AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key - AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd1.ins_kenmerkdeel_waarde = TO_CHAR (ap.fac_usrdata_key) - AND ap.fac_usrdata_code = '3' -- Langs KEY - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key = isk.ins_srtkenmerk_key - AND isk.ins_srtkenmerk_upper LIKE '%' || UPPER (oa.fac_usrdata_omschr) - AND sn.fac_srtnotificatie_code = 'ORD2GO' - UNION ALL -- Initiele notificatie ook naar (huidige) vervangers van BH! - SELECT sn.fac_srtnotificatie_code, - NULL, - pv.prs_perslid_key, - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - pv.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - ( SELECT fac_tracking_refkey, MIN (fac_tracking_key) fac_tracking_key - FROM fac_tracking - WHERE fac_srtnotificatie_key = 166 -- ORDFIA - AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440) - AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) - GROUP BY fac_tracking_refkey) t, - prs_kostenplaats kp, - prs_kostenplaatsgrp kpg, - prs_collega c, -- Vervangers! - prs_perslid pv, -- Vervangers! - fac_gebruikersgroep gg, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 3 -- Ter fiattering! - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) - AND c.prs_perslid_key = - CASE - WHEN NOT EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 167 -- ORDFOK - AND fac_tracking_refkey = o.mld_opdr_key) - THEN - prs.getkpverantwoordelijke (kp.prs_kostenplaats_key, 2, -1) - ELSE - kpg.prs_perslid_key - END - AND c.prs_perslid_key_alt = pv.prs_perslid_key - AND pv.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 -- ICT: Fiattering namens - AND sn.fac_srtnotificatie_code = 'CUST02' - UNION ALL -- Afwijzing naar klant! - SELECT sn.fac_srtnotificatie_code, - NULL, - m.prs_perslid_key, - REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key), - m.mld_melding_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - ( SELECT fac_tracking_refkey, MAX (fac_tracking_key) fac_tracking_key - FROM fac_tracking - WHERE fac_srtnotificatie_key IN (168, 277) -- ORDFNO/GNO - AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440) - AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24')) - GROUP BY fac_tracking_refkey) t, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 2 -- Niet akkoord! - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND o.mld_opdr_key = t.fac_tracking_refkey - AND sn.fac_srtnotificatie_code = 'CUST06'; -/* RWSN#29686: In RWSN57 verwijderen (en CUST08 opruimen?)! - UNION ALL -- RWSN#29851: Tijdelijke CUST-noti naar klant (per 543 gewoon via MLDNEW-noti)! - SELECT sn.fac_srtnotificatie_code, - NULL, - m.prs_perslid_key, - REPLACE (sn.fac_srtnotificatie_oms, '##KEY##', m.mld_melding_key), - m.mld_melding_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND o.mld_opdr_kosten = 1 -- AANNAME: Status=10 en kosten=1, dan bij FBs (of KEYs)! - AND EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 276 -- ORDGOE - AND fac_tracking_refkey = o.mld_opdr_key - AND TRUNC (fac_tracking_datum) = TRUNC (SYSDATE + 5 / 1440) - AND TO_NUMBER (TO_CHAR (fac_tracking_datum, 'HH24')) + 1 = TO_NUMBER (TO_CHAR (SYSDATE + 5 / 1440, 'HH24'))) - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_melding_status IN (4, 7) -- Geaccepteerd/Uitgegeven - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND sn.fac_srtnotificatie_code = 'CUST08'; -*/ - --- RWSN#29685: Uitgebreid met ook de reminders tbv. FBs/KEYs! --- RWSN#38588: CUST07-noti ook naar oude budgethouder (van kostenplaats bij opdracht). -/* Formatted on 25-6-2014 12:06:02 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_noti_did_reminder -( - code, - sender, - receiver, - text, - key, - par1, - par2, - xkey -) -AS - WITH ordfia - AS ( SELECT fac_tracking_refkey, MAX (fac_tracking_key) fac_tracking_key - FROM fac_tracking - WHERE fac_srtnotificatie_key IN (166, 276) -- ORDFIA/ORDGOE - AND fac.count_work_days (fac_tracking_datum, SYSDATE) > 2 - AND MOD (fac.count_work_days (fac_tracking_datum, SYSDATE), 2) = 1 - AND TO_CHAR (SYSDATE, 'd') BETWEEN '2' AND '6' -- Ma t/m Vr - GROUP BY fac_tracking_refkey) -- Om de (werk)dag! - SELECT sn.fac_srtnotificatie_code, - NULL, - pf.prs_perslid_key, -- Reminder naar actuele LDG/DBV - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - pf.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - prs_perslid pm, -- Melder! - prs_afdeling a, - prs_kostenplaats kp, - prs_kostenplaatsgrp kpg, - prs_perslid pf, -- ORDFIA-fiatteur! - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 3 -- Ter fiattering! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.prs_perslid_key = pm.prs_perslid_key - AND pm.prs_afdeling_key = a.prs_afdeling_key - AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) - AND pf.prs_perslid_key = - CASE - WHEN NOT EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 167 -- ORDFOK - AND fac_tracking_refkey = o.mld_opdr_key) - THEN - prs.getkpverantwoordelijke (a.prs_kostenplaats_key, 2, -1) - ELSE - kpg.prs_perslid_key - END - AND sn.fac_srtnotificatie_code = 'CUST07' - UNION -- En reminder naar vervangers van actuele LDG/DBV - SELECT sn.fac_srtnotificatie_code, - NULL, - c.prs_perslid_key_alt, -- Vervangers van actuele LDG/DBV - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - pv.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - prs_perslid pm, -- Melder! - prs_afdeling a, - prs_kostenplaats kp, - prs_kostenplaatsgrp kpg, - prs_perslid pf, -- ORDFIA-fiatteur! - prs_collega c, -- Vervangers! - prs_perslid pv, -- Vervangers! - fac_gebruikersgroep gg, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 3 -- Ter fiattering! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.prs_perslid_key = pm.prs_perslid_key - AND pm.prs_afdeling_key = a.prs_afdeling_key - AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) - AND pf.prs_perslid_key = - CASE - WHEN NOT EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 167 -- ORDFOK - AND fac_tracking_refkey = o.mld_opdr_key) - THEN - prs.getkpverantwoordelijke (a.prs_kostenplaats_key, 2, -1) - ELSE - kpg.prs_perslid_key - END - AND pf.prs_perslid_key = c.prs_perslid_key - AND c.prs_perslid_key_alt = pv.prs_perslid_key - AND pv.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 -- ICT: Fiattering namens - AND sn.fac_srtnotificatie_code = 'CUST07' - UNION -- En reminder naar "oude" LDG/DBV (afdelingskostenplaats van melder anders dan opdrachtkostenplaats) - SELECT sn.fac_srtnotificatie_code, - NULL, - pf.prs_perslid_key, -- "Oude" LDG/DBV - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - pf.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - prs_perslid pm, -- Melder! - prs_afdeling a, - prs_kostenplaats kp, - prs_kostenplaatsgrp kpg, - prs_perslid pf, -- ORDFIA-fiatteur! - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 3 -- Ter fiattering! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.prs_perslid_key = pm.prs_perslid_key - AND pm.prs_afdeling_key = a.prs_afdeling_key - AND a.prs_kostenplaats_key <> o.prs_kostenplaats_key -- Afdelingskostenplaats van melder anders dan opdrachtkostenplaats! - AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) - AND pf.prs_perslid_key = - CASE - WHEN NOT EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 167 -- ORDFOK - AND fac_tracking_refkey = o.mld_opdr_key) - THEN - prs.getkpverantwoordelijke (o.prs_kostenplaats_key, 2, -1) - ELSE - kpg.prs_perslid_key - END - AND sn.fac_srtnotificatie_code = 'CUST07' - UNION -- En reminder naar vervangers van "oude" LDG/DBV (afdelingskostenplaats van melder anders dan opdrachtkostenplaats) - SELECT sn.fac_srtnotificatie_code, - NULL, - c.prs_perslid_key_alt, -- Vervangers van "oude" LDG/DBV - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - pv.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - prs_perslid pm, -- Melder! - prs_afdeling a, - prs_kostenplaats kp, - prs_kostenplaatsgrp kpg, - prs_perslid pf, -- ORDFIA-fiatteur! - prs_collega c, -- Vervangers! - prs_perslid pv, -- Vervangers! - fac_gebruikersgroep gg, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 3 -- Ter fiattering! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND m.prs_perslid_key = pm.prs_perslid_key - AND pm.prs_afdeling_key = a.prs_afdeling_key - AND a.prs_kostenplaats_key <> o.prs_kostenplaats_key -- Afdelingskostenplaats van melder anders dan opdrachtkostenplaats! - AND o.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_kostenplaatsgrp_key = kpg.prs_kostenplaatsgrp_key(+) - AND pf.prs_perslid_key = - CASE - WHEN NOT EXISTS - (SELECT 1 - FROM fac_tracking - WHERE fac_srtnotificatie_key = 167 -- ORDFOK - AND fac_tracking_refkey = o.mld_opdr_key) - THEN - prs.getkpverantwoordelijke (o.prs_kostenplaats_key, 2, -1) - ELSE - kpg.prs_perslid_key - END - AND pf.prs_perslid_key = c.prs_perslid_key - AND c.prs_perslid_key_alt = pv.prs_perslid_key - AND pv.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 -- ICT: Fiattering namens - AND sn.fac_srtnotificatie_code = 'CUST07' - UNION -- En reminder naar actuele FBs via srtkenmerk_key=103/104/105! - SELECT sn.fac_srtnotificatie_code, - NULL, - fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde), - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - p.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - --ins_tab_discipline td, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_perslid p, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd1, - ins_kenmerk ik1, - fac_usrdata ap, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - --AND sm.mld_ins_discipline_key = td.ins_discipline_key - --AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd1.ins_deel_key) - AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key - AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd1.ins_kenmerkdeel_waarde = TO_CHAR (ap.fac_usrdata_key) - AND ap.fac_usrdata_code = '2' -- Langs FB - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123 - AND sn.fac_srtnotificatie_code = 'CUST07' - UNION -- En reminder naar actuele KEYs via eigen tabel Org2Afkorting! - SELECT sn.fac_srtnotificatie_code, - NULL, - fac.safe_to_number (ikd2.ins_kenmerkdeel_waarde), - REPLACE ( - REPLACE ( - sn.fac_srtnotificatie_oms, - '##OPDRKEY##', - TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr)), - '##MAILTO##', - p.prs_perslid_email), - o.mld_opdr_key, - sm.mld_stdmelding_omschrijving, - NULL, - NULL - FROM mld_opdr o, - ordfia t, - mld_melding m, - mld_stdmelding sm, - --ins_tab_discipline td, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_perslid p, - prs_v_afdeling_boom ab, - fac_usrdata oa, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd1, - ins_kenmerk ik1, - fac_usrdata ap, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - ins_srtkenmerk isk, - fac_srtnotificatie sn - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND o.mld_opdr_key = t.fac_tracking_refkey - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - --AND sm.mld_ins_discipline_key = td.ins_discipline_key - --AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND p.prs_afdeling_key = ab.prs_afdeling_key - AND TO_CHAR (ab.prs_afdeling_key1) = oa.fac_usrdata_code - AND oa.fac_usrtab_key = 2 -- Org2Afkorting - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerk_key = mk.mld_kenmerk_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd1.ins_deel_key) - AND ikd1.ins_kenmerk_key = ik1.ins_kenmerk_key - AND ik1.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd1.ins_kenmerkdeel_waarde = TO_CHAR (ap.fac_usrdata_key) - AND ap.fac_usrdata_code = '3' -- Langs KEY - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key = isk.ins_srtkenmerk_key - AND isk.ins_srtkenmerk_upper LIKE '%' || UPPER (oa.fac_usrdata_omschr) - AND sn.fac_srtnotificatie_code = 'CUST07'; - --- RWSN#27015: Voorheen rwsn_v_rap_aut_ictaanvragen! -/* Formatted on 9-11-2013 21:15:20 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_aut_ictbeheer -( - nummer, - datum, - fclt_f_vakgroep, - fclt_f_melding, - melding_tekst, - fclt_f_melder, - status, - geplande_einddatum, - hide_f_mld_melding_key, - hide_f_mld_opdr_key, - fclt_3d_user_key -) -AS - -- 1 regel per FB voor applicatie in onderdeel van melder! - SELECT COALESCE (sd.ins_srtdiscipline_prefix, '') - || TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) - nummer, - TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum, - DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), - '', '', - sd.ins_srtdiscipline_prefix || '-') - || td.ins_discipline_omschrijving - vakgroep, - sm.mld_stdmelding_omschrijving melding, - o.mld_opdr_omschrijving opdracht_tekst, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - || DECODE (NVL (p.prs_perslid_nr, ''), - '', '', - ' [' || p.prs_perslid_nr || ']') - melder, - s.mld_statusopdr_omschrijving status, - m.mld_melding_einddatum geplande_einddatum, - o.mld_melding_key melding_key, - o.mld_opdr_key opdracht_key, - fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) beheerder_key - FROM mld_opdr o, - mld_statusopdr s, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - ins_srtdiscipline sd, - --mld_disc_params dp, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_v_aanwezigperslid p, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - fac_usrdata ud2 - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND o.mld_statusopdr_key = s.mld_statusopdr_key - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - --AND td.ins_discipline_key = dp.mld_ins_discipline_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123 - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd2.ins_kenmerkdeel_waarde = TO_CHAR (ud2.fac_usrdata_key) - AND ud2.fac_usrdata_code = '2' - UNION ALL -- 1 regel per KEY voor applicatie in onderdeel van melder! - SELECT COALESCE (sd.ins_srtdiscipline_prefix, '') - || TO_CHAR (o.mld_melding_key) - || '/' - || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) - nummer, - TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum, - DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), - '', '', - sd.ins_srtdiscipline_prefix || '-') - || td.ins_discipline_omschrijving - vakgroep, - sm.mld_stdmelding_omschrijving melding, - o.mld_opdr_omschrijving opdracht_tekst, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), - '', '', - ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), - '', '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), - '', '', - ' (' || p.prs_perslid_voornaam || ')') - || DECODE (NVL (p.prs_perslid_nr, ''), - '', '', - ' [' || p.prs_perslid_nr || ']') - melder, - s.mld_statusopdr_omschrijving status, - m.mld_melding_einddatum geplande_einddatum, - o.mld_melding_key melding_key, - o.mld_opdr_key opdracht_key, - fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) beheerder_key - FROM mld_opdr o, - mld_statusopdr s, - mld_melding m, - mld_stdmelding sm, - ins_tab_discipline td, - ins_srtdiscipline sd, - --mld_disc_params dp, - mld_kenmerk mk, - mld_srtkenmerk msk, - fac_kenmerkdomein kd, - prs_v_aanwezigperslid p, - prs_v_afdeling_boom ab, - fac_usrdata ud, - mld_v_aanwezigkenmerkmelding mkm, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - ins_srtkenmerk isk, - ins_v_aanwezigkenmerkdeel ikd2, - ins_kenmerk ik2, - fac_usrdata ud2 - WHERE o.mld_statusopdr_key = 10 -- Ter goedkeuring! - AND o.mld_statusopdr_key = s.mld_statusopdr_key - AND o.mld_melding_key = m.mld_melding_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - --AND td.ins_discipline_key = dp.mld_ins_discipline_key - AND ((sm.mld_stdmelding_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'S') - OR (sm.mld_ins_discipline_key = mk.mld_stdmelding_key AND mk.mld_kenmerk_niveau = 'D')) - AND mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key - AND msk.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key - AND kd.fac_kenmerkdomein_objectnaam LIKE 'RWSN_V_DID_SPIV%' - AND kd.fac_kenmerkdomein_module = 'MLD' - AND m.prs_perslid_key = p.prs_perslid_key - AND p.prs_afdeling_key = ab.prs_afdeling_key - AND TO_CHAR (ab.prs_afdeling_key1) = ud.fac_usrdata_code - AND ud.fac_usrtab_key = 2 -- Org2Afkorting - AND m.mld_melding_key = mkm.mld_melding_key - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd.ins_deel_key) - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = isk.ins_srtkenmerk_key - AND isk.ins_srtkenmerk_upper LIKE '%' || UPPER (ud.fac_usrdata_omschr) - AND mkm.mld_kenmerkmelding_waarde = TO_CHAR (ikd2.ins_deel_key) - AND ikd2.ins_kenmerk_key = ik2.ins_kenmerk_key - AND ik2.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND ikd2.ins_kenmerkdeel_waarde = TO_CHAR (ud2.fac_usrdata_key) - AND ud2.fac_usrdata_code = '3'; - -/* Formatted on 23-7-2010 14:32:13 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_rap_orphan_ictaanvragen -( - nummer, - datum, - fclt_f_vakgroep, - fclt_f_melding, - melding_tekst, - fclt_f_melder, - status, - geplande_einddatum, - hide_f_mld_melding_key -) -AS - SELECT DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), '', '', sd.ins_srtdiscipline_prefix) - || TO_CHAR (m.mld_melding_key) - nummer, - TO_CHAR (m.mld_melding_datum, 'dd-mm-yyyy') datum, - DECODE (COALESCE (sd.ins_srtdiscipline_prefix, ''), '', '', sd.ins_srtdiscipline_prefix || '-') - || td.ins_discipline_omschrijving - vakgroep, - sm.mld_stdmelding_omschrijving melding, - rwsn_did_flexcontent (m.mld_melding_key, 999, NULL) melding_tekst, - p.prs_perslid_naam - || DECODE (NVL (p.prs_perslid_voorletters, ''), '', '', ', ' || p.prs_perslid_voorletters) - || DECODE (NVL (p.prs_perslid_tussenvoegsel, ''), '', '', ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (NVL (p.prs_perslid_voornaam, ''), '', '', ' (' || p.prs_perslid_voornaam || ')') - || DECODE (NVL (p.prs_perslid_nr, ''), '', '', ' [' || p.prs_perslid_nr || ']') - melder, - s.mld_statuses_omschrijving status, - m.mld_melding_einddatum geplande_einddatum, - m.mld_melding_key mld_key - FROM mld_melding m, - mld_statuses s, - mld_stdmelding sm, - ins_tab_discipline td, - ins_srtdiscipline sd, - prs_v_aanwezigperslid p - WHERE m.mld_melding_status IN (2, 3) -- Te behandelen! - AND m.mld_melding_status = s.mld_statuses_key - AND m.mld_stdmelding_key = sm.mld_stdmelding_key - AND COALESCE (sm.mld_stdmelding_t_accepttijd.tijdsduur, 0) > 0 - AND sm.mld_ins_discipline_key = td.ins_discipline_key - AND td.ins_srtdiscipline_key = 21 -- ICT aanvragen - AND td.ins_discipline_key <> 532 -- Niet standaard aanvraag - AND td.ins_srtdiscipline_key = sd.ins_srtdiscipline_key - AND m.prs_perslid_key = p.prs_perslid_key - AND p.prs_afdeling_key NOT IN (SELECT cp.afd_key - FROM rwsn_v_ictcp_per_afd cp) - AND NOT EXISTS - (SELECT 1 - FROM fac_gebruikersgroep gg - WHERE gg.fac_groep_key IN (421, 422) -- ICT cp. - AND gg.prs_perslid_key = fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key)); - -CREATE OR REPLACE VIEW RWSN_V_RAP_ICTCP_OVERZICHT -( - FCLT_F_DIENST, - FCLT_F_AFDELING_CODE, - FCLT_F_AFDELING_OMSCHRIJVING, - FCLT_F_NIVO, - FCLT_F_DIRECT, - FCLT_F_NAAM, - EMAIL, - FCLT_F_ROL -) -AS - SELECT COALESCE (b.dienst, '-'), - COALESCE (b.afd_naam, '-'), - COALESCE (b.afd_oms, '-'), - COALESCE (TO_CHAR (b.nivo), '-'), - COALESCE (b.direct, '-'), - DECODE (a.prs_perslid_key, NULL, b.naam_full, a.naam_full) - naam_full, - DECODE (a.prs_perslid_key, NULL, b.email, a.email) - email, - DECODE (a.prs_perslid_key, NULL, 'Nee', 'Ja') - rol - FROM (SELECT p.prs_perslid_key, - p.prs_perslid_naam - || DECODE (p.prs_perslid_voorletters, - NULL, '', - ', ' || p.prs_perslid_voorletters) - || DECODE (p.prs_perslid_tussenvoegsel, - NULL, '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (p.prs_perslid_voornaam, - NULL, '', - ' (' || p.prs_perslid_voornaam || ')') - naam_full, - p.prs_perslid_email - email, - a.prs_afdeling_omschrijving - dienst - FROM prs_v_aanwezigperslid p, - prs_v_afdeling_familie af, - prs_afdeling a, - fac_gebruikersgroep gg - WHERE p.prs_afdeling_key = af.prs_afdeling_key - AND af.niveau = 1 - AND af.prs_afdeling_elder_key = a.prs_afdeling_key - AND a.prs_afdeling_verwijder IS NULL - AND p.prs_perslid_key = gg.prs_perslid_key - AND gg.fac_groep_key IN (421, 422)) a -- ICT cp. - FULL JOIN - (SELECT cp.prs_key, - p.prs_perslid_naam - || DECODE (p.prs_perslid_voorletters, - NULL, '', - ', ' || p.prs_perslid_voorletters) - || DECODE (p.prs_perslid_tussenvoegsel, - NULL, '', - ' ' || p.prs_perslid_tussenvoegsel) - || DECODE (p.prs_perslid_voornaam, - NULL, '', - ' (' || p.prs_perslid_voornaam || ')') - naam_full, - p.prs_perslid_email - email, - a1.prs_afdeling_omschrijving - dienst, - a2.prs_afdeling_naam - afd_naam, - a2.prs_afdeling_omschrijving - afd_oms, - af2.niveau - nivo, - cp.direct - FROM rwsn_v_ictcp_per_afd cp, - prs_v_aanwezigperslid p, - prs_v_afdeling_familie af1, - prs_afdeling a1, - prs_v_afdeling_familie af2, - prs_afdeling a2 - WHERE cp.prs_key = p.prs_perslid_key - AND cp.afd_key = af1.prs_afdeling_key - AND af1.niveau = 1 - AND af1.prs_afdeling_elder_key = a1.prs_afdeling_key - AND cp.afd_key = af2.prs_afdeling_key - AND af2.prs_afdeling_key = af2.prs_afdeling_elder_key - AND af2.prs_afdeling_elder_key = a2.prs_afdeling_key) b - ON a.prs_perslid_key = b.prs_key; - -/* Formatted on 25-7-2011 17:04:48 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_did_mi_ordafm -( - fclt_f_maand, - fclt_f_dienst, - nummer, - aanmaak, - fclt_f_status, - fclt_f_vakgroep, - fclt_f_melding, - organisatie, - naam, - fclt_f_applicatie, - fclt_f_hardware, - doorloop_icp, - doorloop_dbv, - doorloop_klant, - doorloop_aanvr, - doorloop_did -) -AS - SELECT DECODE ( - opdr.status_key, - NULL, - DECODE (meld.status_key, - 1, TO_CHAR (meld.mldrej_date, 'yyyy-mm'), - 5, TO_CHAR (meld.mldafm_date, 'yyyy-mm'), - 6, TO_CHAR (meld.mldafm_date, 'yyyy-mm'), - 'Lopend'), - 1, - TO_CHAR ( - COALESCE (ordfno.fac_tracking_datum, opdr.ordcan_date), - 'yyyy-mm' - ), - 2, - TO_CHAR (ordfno.fac_tracking_datum, 'yyyy-mm'), - 6, - TO_CHAR (opdr.ordafm_date, 'yyyy-mm'), - 7, - TO_CHAR (opdr.ordafm_date, 'yyyy-mm'), - 'Lopend' - ) - maand, - meld.dienst, - meld.mld_key - || DECODE (opdr.volgnr, NULL, NULL, '/' || opdr.volgnr), - TO_CHAR (meld.mldnew_date, 'dd-mm-yyyy hh24:mi'), - DECODE (opdr.status_key, - NULL, (SELECT mld_statuses_omschrijving - FROM mld_statuses - WHERE mld_statuses_key = meld.status_key), - 1, 'Geannuleerd', - 2, 'Afgewezen', - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr - WHERE mld_statusopdr_key = opdr.status_key)), - meld.vakgroep, - COALESCE (opdr.melding, meld.melding), - meld.organisatie, - meld.naam, - applicatie.oms, - hardware.oms, - DECODE ( - COALESCE (meld.mldacp_date, meld.mldrej_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldacp_date, meld.mldrej_date) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldacp_date, - meld.mldrej_date) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldacp_date, - meld.mldrej_date) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_icp, - DECODE ( - COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_dbv, - DECODE ( - COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_klant, - DECODE ( - COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_aanvr, - DECODE ( - COALESCE (opdr.ordcan_date, opdr.ordafm_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (opdr.ordcan_date, opdr.ordafm_date) - - opdr.verzonden)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (opdr.ordcan_date, - opdr.ordafm_date) - - opdr.verzonden) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (opdr.ordcan_date, - opdr.ordafm_date) - - opdr.verzonden) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_did - FROM (SELECT m.mld_key, - m.vakgroep_oms vakgroep, - m.stdmld_key, - m.stdmld_oms melding, - m.mld_sla norm_sla, - m.mld_status_key status_key, - m.mld_plan_date plandatum, - pf.prs_perslid_naam_full naam, - org.prs_afdeling_omschrijving - organisatie, - dienst.prs_afdeling_omschrijving - dienst, - m.mldnew_date, - m.mldacp_date, - m.mldrej_date, - m.mldafm_date - FROM rwsn_mld_freeze m, - prs_perslid p, - prs_v_perslid_fullnames_all pf, - prs_afdeling org, - prs_v_afdeling_boom ab, - prs_afdeling dienst - WHERE m.vakgroeptype_key = 21 - AND m.melder_userkey = - p.prs_perslid_key - AND p.prs_perslid_key = - pf.prs_perslid_key - AND p.prs_afdeling_key = - org.prs_afdeling_key - AND p.prs_afdeling_key = - ab.prs_afdeling_key - AND ab.prs_afdeling_key1 = - dienst.prs_afdeling_key) - meld - LEFT JOIN - (SELECT o.mld_key, - o.opdr_key, - o.opdr_volgnr volgnr, - o.opdr_status_key status_key, - b.prs_bedrijf_naam bedrijf, - SUBSTR (o.opdr_oms, - 1, - INSTR (o.opdr_oms, - CHR (13), - 1, - 1) - - 1) - melding, - o.ord_verz_date verzonden, - o.ordnew_date, - o.ord_fiat_date, - o.ordcan_date, - o.ordafm_date - FROM rwsn_opdr_freeze o, prs_bedrijf b - WHERE o.opdr_uv_key = b.prs_bedrijf_key) - opdr - ON meld.mld_key = opdr.mld_key - LEFT JOIN - fac_tracking ordfia - ON opdr.opdr_key = ordfia.fac_tracking_refkey - AND ordfia.fac_srtnotificatie_key = 166 - LEFT JOIN - fac_tracking ordfok - ON opdr.opdr_key = ordfok.fac_tracking_refkey - AND ordfok.fac_srtnotificatie_key = 167 - LEFT JOIN - fac_tracking ordfno - ON opdr.opdr_key = ordfno.fac_tracking_refkey - AND ordfno.fac_srtnotificatie_key = 168 - LEFT JOIN - (SELECT km.mld_melding_key, ud.fac_usrdata_omschr oms - FROM mld_srtkenmerk sk, - mld_kenmerk k, - mld_kenmerkmelding km, - fac_usrdata ud - WHERE UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%APPLICATIE%' - AND sk.mld_srtkenmerk_kenmerktype IN - ('R', 'S') - AND sk.fac_kenmerkdomein_key != 1 -- Ja/Nee - AND sk.mld_srtkenmerk_verwijder IS NULL - AND sk.mld_srtkenmerk_key = - k.mld_srtkenmerk_key - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL - AND fac.safe_to_number ( - km.mld_kenmerkmelding_waarde - ) = ud.fac_usrdata_key) applicatie - ON meld.mld_key = applicatie.mld_melding_key - LEFT JOIN - (SELECT k.mld_stdmelding_key stdmld_key, - COALESCE (k.mld_kenmerk_volgnummer, 0) volgnr, - k.mld_kenmerk_default melding - FROM mld_kenmerk k, mld_srtkenmerk sk - WHERE k.mld_kenmerk_niveau = 'S' - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_kenmerktype = 'L' - AND sk.mld_srtkenmerk_upper LIKE '%DEEL%' - AND sk.mld_srtkenmerk_verwijder IS NULL) - onderdeel - ON meld.stdmld_key = onderdeel.stdmld_key - AND opdr.melding = onderdeel.melding - LEFT JOIN - (SELECT km.mld_melding_key, - COALESCE (k.mld_kenmerk_volgnummer, 0) volgnr, - ud.fac_usrdata_omschr oms - FROM mld_srtkenmerk sk, - mld_kenmerk k, - mld_kenmerkmelding km, - fac_usrdata ud - WHERE (UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%APPARATUUR%' - OR UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%PRODUCTKEUZE%' - OR UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%WERKPLEK%') - AND sk.mld_srtkenmerk_kenmerktype IN ('R', 'S') - AND sk.fac_kenmerkdomein_key != 1 -- Ja/Nee - AND sk.mld_srtkenmerk_verwijder IS NULL - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL - AND fac.safe_to_number ( - km.mld_kenmerkmelding_waarde - ) = ud.fac_usrdata_key) hardware - ON meld.mld_key = hardware.mld_melding_key - AND (onderdeel.volgnr IS NULL - OR hardware.volgnr BETWEEN onderdeel.volgnr - AND onderdeel.volgnr + 10) - WHERE onderdeel.volgnr IS NULL -- Enkelvoudige ICT Aanvraag - OR opdr.mld_key IS NOT NULL -- Opdracht bij melding - OR hardware.oms IS NOT NULL -- ICT Aanvraag voor hardware -/ - -/* Formatted on 25-7-2011 17:04:48 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_did_mi_ordnew -( - fclt_f_maand, - fclt_f_dienst, - nummer, - aanmaak, - fclt_f_status, - fclt_f_vakgroep, - fclt_f_melding, - organisatie, - naam, - fclt_f_applicatie, - fclt_f_hardware, - doorloop_icp, - doorloop_dbv, - doorloop_klant, - doorloop_aanvr, - doorloop_did -) -AS - SELECT TO_CHAR (meld.mldnew_date, 'yyyy-mm') maand, - meld.dienst, - meld.mld_key - || DECODE (opdr.volgnr, NULL, NULL, '/' || opdr.volgnr), - TO_CHAR (meld.mldnew_date, 'dd-mm-yyyy hh24:mi'), - DECODE (opdr.status_key, - NULL, (SELECT mld_statuses_omschrijving - FROM mld_statuses - WHERE mld_statuses_key = meld.status_key), - 1, 'Geannuleerd', - 2, 'Afgewezen', - (SELECT mld_statusopdr_omschrijving - FROM mld_statusopdr - WHERE mld_statusopdr_key = opdr.status_key)), - meld.vakgroep, - COALESCE (opdr.melding, meld.melding), - meld.organisatie, - meld.naam, - applicatie.oms, - hardware.oms, - DECODE ( - COALESCE (meld.mldacp_date, meld.mldrej_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldacp_date, meld.mldrej_date) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldacp_date, - meld.mldrej_date) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldacp_date, - meld.mldrej_date) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_icp, - DECODE ( - COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (ordfok.fac_tracking_datum, - ordfno.fac_tracking_datum) - - ordfia.fac_tracking_datum) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_dbv, - DECODE ( - COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.verzonden) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_klant, - DECODE ( - COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (meld.mldrej_date, - ordfno.fac_tracking_datum, - opdr.ordafm_date) - - meld.mldnew_date) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_aanvr, - DECODE ( - COALESCE (opdr.ordcan_date, opdr.ordafm_date), - NULL, - NULL, - TO_CHAR(FLOOR(COALESCE (opdr.ordcan_date, opdr.ordafm_date) - - opdr.verzonden)) - || 'd-' - || TO_CHAR(MOD ( - FLOOR( (COALESCE (opdr.ordcan_date, - opdr.ordafm_date) - - opdr.verzonden) - * 24), - 24 - )) - || 'u-' - || TO_CHAR(MOD ( - ROUND ( - (COALESCE (opdr.ordcan_date, - opdr.ordafm_date) - - opdr.verzonden) - * 24 - * 60, - 0 - ), - 60 - )) - || 'm' - ) - doorloop_did - FROM (SELECT m.mld_key, - m.vakgroep_oms vakgroep, - m.stdmld_key, - m.stdmld_oms melding, - m.mld_sla norm_sla, - m.mld_status_key status_key, - m.mld_plan_date plandatum, - pf.prs_perslid_naam_full naam, - org.prs_afdeling_omschrijving - organisatie, - dienst.prs_afdeling_omschrijving - dienst, - m.mldnew_date, - m.mldacp_date, - m.mldrej_date, - m.mldafm_date - FROM rwsn_mld_freeze m, - prs_perslid p, - prs_v_perslid_fullnames_all pf, - prs_afdeling org, - prs_v_afdeling_boom ab, - prs_afdeling dienst - WHERE m.vakgroeptype_key = 21 - AND m.melder_userkey = - p.prs_perslid_key - AND p.prs_perslid_key = - pf.prs_perslid_key - AND p.prs_afdeling_key = - org.prs_afdeling_key - AND p.prs_afdeling_key = - ab.prs_afdeling_key - AND ab.prs_afdeling_key1 = - dienst.prs_afdeling_key) - meld - LEFT JOIN - (SELECT o.mld_key, - o.opdr_key, - o.opdr_volgnr volgnr, - o.opdr_status_key status_key, - b.prs_bedrijf_naam bedrijf, - SUBSTR (o.opdr_oms, - 1, - INSTR (o.opdr_oms, - CHR (13), - 1, - 1) - - 1) - melding, - o.ord_verz_date verzonden, - o.ordnew_date, - o.ord_fiat_date, - o.ordcan_date, - o.ordafm_date - FROM rwsn_opdr_freeze o, prs_bedrijf b - WHERE o.opdr_uv_key = b.prs_bedrijf_key) - opdr - ON meld.mld_key = opdr.mld_key - LEFT JOIN - fac_tracking ordfia - ON opdr.opdr_key = ordfia.fac_tracking_refkey - AND ordfia.fac_srtnotificatie_key = 166 - LEFT JOIN - fac_tracking ordfok - ON opdr.opdr_key = ordfok.fac_tracking_refkey - AND ordfok.fac_srtnotificatie_key = 167 - LEFT JOIN - fac_tracking ordfno - ON opdr.opdr_key = ordfno.fac_tracking_refkey - AND ordfno.fac_srtnotificatie_key = 168 - LEFT JOIN - (SELECT km.mld_melding_key, ud.fac_usrdata_omschr oms - FROM mld_srtkenmerk sk, - mld_kenmerk k, - mld_kenmerkmelding km, - fac_usrdata ud - WHERE UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%APPLICATIE%' - AND sk.mld_srtkenmerk_kenmerktype IN - ('R', 'S') - AND sk.fac_kenmerkdomein_key != 1 -- Ja/Nee - AND sk.mld_srtkenmerk_verwijder IS NULL - AND sk.mld_srtkenmerk_key = - k.mld_srtkenmerk_key - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL - AND fac.safe_to_number ( - km.mld_kenmerkmelding_waarde - ) = ud.fac_usrdata_key) applicatie - ON meld.mld_key = applicatie.mld_melding_key - LEFT JOIN - (SELECT k.mld_stdmelding_key stdmld_key, - COALESCE (k.mld_kenmerk_volgnummer, 0) volgnr, - k.mld_kenmerk_default melding - FROM mld_kenmerk k, mld_srtkenmerk sk - WHERE k.mld_kenmerk_niveau = 'S' - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key - AND sk.mld_srtkenmerk_kenmerktype = 'L' - AND sk.mld_srtkenmerk_upper LIKE '%DEEL%' - AND sk.mld_srtkenmerk_verwijder IS NULL) - onderdeel - ON meld.stdmld_key = onderdeel.stdmld_key - AND opdr.melding = onderdeel.melding - LEFT JOIN - (SELECT km.mld_melding_key, - COALESCE (k.mld_kenmerk_volgnummer, 0) volgnr, - ud.fac_usrdata_omschr oms - FROM mld_srtkenmerk sk, - mld_kenmerk k, - mld_kenmerkmelding km, - fac_usrdata ud - WHERE (UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%APPARATUUR%' - OR UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%PRODUCTKEUZE%' - OR UPPER (sk.mld_srtkenmerk_omschrijving) LIKE - '%WERKPLEK%') - AND sk.mld_srtkenmerk_kenmerktype IN ('R', 'S') - AND sk.fac_kenmerkdomein_key != 1 -- Ja/Nee - AND sk.mld_srtkenmerk_verwijder IS NULL - AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key - AND k.mld_kenmerk_verwijder IS NULL - AND k.mld_kenmerk_key = km.mld_kenmerk_key - AND km.mld_kenmerkmelding_verwijder IS NULL - AND fac.safe_to_number ( - km.mld_kenmerkmelding_waarde - ) = ud.fac_usrdata_key) hardware - ON meld.mld_key = hardware.mld_melding_key - AND (onderdeel.volgnr IS NULL - OR hardware.volgnr BETWEEN onderdeel.volgnr - AND onderdeel.volgnr + 10) - WHERE onderdeel.volgnr IS NULL -- Enkelvoudige ICT Aanvraag - OR opdr.mld_key IS NOT NULL -- Opdracht bij melding - OR hardware.oms IS NOT NULL -- ICT Aanvraag voor hardware -/ - --- RWSN#27943 - Via product/dienst in eigen tabel naar alle contactpersonen in --- autorisatiegroep en daarvan de contactgegevens! -/* Formatted on 31-10-2013 17:16:08 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_civ_specials -( - fclt_f_product, - contactpersoon, - telefoon, - email -) -AS - SELECT ud.fac_usrdata_code, - pf.prs_perslid_naam_full, - COALESCE (p.prs_perslid_telefoonnr, p.prs_perslid_mobiel), - p.prs_perslid_email - FROM fac_usrdata ud, - fac_gebruikersgroep gg, - prs_perslid p, - prs_v_perslid_fullnames_all pf - WHERE ud.fac_usrtab_key = 2302 -- CIV-specials - AND fac.safe_to_number (ud.fac_usrdata_omschr) = gg.fac_groep_key - AND gg.prs_perslid_key = p.prs_perslid_key - AND p.prs_perslid_key = pf.prs_perslid_key; - --- RWSN#29240 - Per applicaties van elke FB123 de contactgegevens! -/* Formatted on 18-4-2014 13:08:32 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_rap_fb_spiv_appl -( - fclt_f_spiv_domein, - applicatiecode, - fclt_f_applicatienaam, - contactpersoon, - telefoon, - email, - vervaldatum -) -AS - SELECT sg.ins_srtgroep_omschrijving, - sd.ins_srtdeel_code, - sd.ins_srtdeel_omschrijving, - pf.prs_perslid_naam_full, - COALESCE (p.prs_perslid_telefoonnr, p.prs_perslid_mobiel), - p.prs_perslid_email, - sd.ins_srtdeel_vervaldatum - FROM ins_srtgroep sg, - ins_v_aanwezigsrtdeel sd, - ins_v_aanwezigkenmerkdeel ikd, - ins_kenmerk ik, - prs_perslid p, - prs_v_perslid_fullnames_all pf - WHERE sg.ins_discipline_key = 2361 -- Geconsolideerde applicaties - AND sg.ins_srtgroep_key = sd.ins_srtgroep_key - AND sd.ins_srtdeel_vervaldatum IS NULL -- Geen vervallen objecten - AND sd.ins_srtdeel_key = ikd.ins_deel_key - AND ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key BETWEEN 103 AND 105 -- FB123 - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = p.prs_perslid_key - AND p.prs_perslid_key = pf.prs_perslid_key; - --- RWSN#33690 - Objectsoorten-rapportage! -/* Formatted on 11-11-2015 14:32:28 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_rap_appl_geg -( - fclt_f_spiv_domein, - applicatiecode, - fclt_f_applicatienaam, - autorisatieproces, - fb1_mail, - fb2_mail, - fb3_mail, - fclt_f_webbased, - vervaldatum -) -AS - SELECT x.ins_srtgroep_omschrijving, - x.ins_srtdeel_code, - x.ins_srtdeel_omschrijving, - aut.fac_usrdata_omschr autproc, - fb1.prs_perslid_email, - fb2.prs_perslid_email, - fb3.prs_perslid_email, - web.fac_usrdata_omschr webbased, - x.ins_srtdeel_vervaldatum - FROM (SELECT sd.ins_srtdeel_key, - sg.ins_srtgroep_omschrijving, - sd.ins_srtdeel_code, - sd.ins_srtdeel_omschrijving, - sd.ins_srtdeel_vervaldatum - FROM ins_srtgroep sg, ins_srtdeel sd - WHERE sg.ins_discipline_key = 2361 -- Geconsolideerde applicaties - AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) x - LEFT JOIN (SELECT ikd.ins_deel_key, ud.fac_usrdata_omschr - FROM ins_v_aanwezigkenmerkdeel ikd, ins_kenmerk ik, fac_usrdata ud - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 101 -- Autorisatieproces - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key) aut - ON x.ins_srtdeel_key = aut.ins_deel_key - LEFT JOIN (SELECT ikd.ins_deel_key, ud.fac_usrdata_omschr - FROM ins_v_aanwezigkenmerkdeel ikd, ins_kenmerk ik, fac_usrdata ud - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 102 -- Webbased - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key) web - ON x.ins_srtdeel_key = web.ins_deel_key - LEFT JOIN (SELECT ikd.ins_deel_key, p.prs_perslid_email - FROM ins_v_aanwezigkenmerkdeel ikd, ins_kenmerk ik, prs_perslid p - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 103 -- FB1 - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = p.prs_perslid_key) fb1 - ON x.ins_srtdeel_key = fb1.ins_deel_key - LEFT JOIN (SELECT ikd.ins_deel_key, p.prs_perslid_email - FROM ins_v_aanwezigkenmerkdeel ikd, ins_kenmerk ik, prs_perslid p - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 104 -- FB2 - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = p.prs_perslid_key) fb2 - ON x.ins_srtdeel_key = fb2.ins_deel_key - LEFT JOIN (SELECT ikd.ins_deel_key, p.prs_perslid_email - FROM ins_v_aanwezigkenmerkdeel ikd, ins_kenmerk ik, prs_perslid p - WHERE ikd.ins_kenmerk_key = ik.ins_kenmerk_key - AND ik.ins_srtkenmerk_key = 105 -- FB3 - AND fac.safe_to_number (ikd.ins_kenmerkdeel_waarde) = p.prs_perslid_key) fb3 - ON x.ins_srtdeel_key = fb3.ins_deel_key; - - -- Import van partners uit het IKD CREATE OR REPLACE PROCEDURE rwsn_import_partners ( p_import_key IN NUMBER @@ -16477,25 +12536,6 @@ AS WHERE il.fac_import_key = fi.fac_import_key(+) AND fi.fac_import_app_key = fia.fac_import_app_key(+); --- RWSN#29000: Logging CMDB-import (= 202). -/* Formatted on 14-4-2014 12:50:16 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_imp_log_cmdb -( - datum, - fclt_f_status, - omschrijving, - hint -) -AS - SELECT il.imp_log_datum, - il.imp_log_status, - il.imp_log_omschrijving, - il.imp_log_hint - FROM imp_log il - WHERE il.fac_import_key = (SELECT MAX (fac_import_key) - FROM fac_import - WHERE fac_import_app_key = 202); - -- Dummy export NACHT_WERK! /* Formatted on 29-11-2010 16:25:20 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_export_nacht_werk (RESULT, result_order) @@ -17228,329 +13268,6 @@ BEGIN COMMIT; - -- RWSN#27015: Bijwerken vervangers van budgethouders=leidinggevenden in - -- afdelingskenmerken 1020/1021/1022 (max. 3 op alfabetische - -- volgorde)! - FOR rc1 - IN (SELECT x.prs_afdeling_key, - x.prs_perslid_key budgethouder_key, - v1.prs_kenmerklink_key v1_kenmerklink_key, - v1.prs_kenmerk_key v1_kenmerk_key, - fac.safe_to_number (v1.prs_kenmerklink_waarde) - v1_perslid_key, - v2.prs_kenmerklink_key v2_kenmerklink_key, - v2.prs_kenmerk_key v2_kenmerk_key, - fac.safe_to_number (v2.prs_kenmerklink_waarde) - v2_perslid_key, - v3.prs_kenmerklink_key v3_kenmerklink_key, - v3.prs_kenmerk_key v3_kenmerk_key, - fac.safe_to_number (v3.prs_kenmerklink_waarde) - v3_perslid_key - FROM (SELECT a.prs_afdeling_key, kp.prs_perslid_key - FROM prs_kostenplaats kp, prs_afdeling a - WHERE a.prs_kostenplaats_key = kp.prs_kostenplaats_key - AND kp.prs_perslid_key IS NOT NULL - AND a.prs_afdeling_verwijder IS NULL - AND kp.prs_kostenplaats_verwijder IS NULL) x - LEFT JOIN -- 1020 = 1e vervanger! - prs_v_aanwezigkenmerklink v1 - ON x.prs_afdeling_key = v1.prs_link_key - AND v1.prs_kenmerk_key = 1020 - LEFT JOIN -- 1021 = 2e vervanger! - prs_v_aanwezigkenmerklink v2 - ON x.prs_afdeling_key = v2.prs_link_key - AND v2.prs_kenmerk_key = 1021 - LEFT JOIN -- 1022 = 3e vervanger! - prs_v_aanwezigkenmerklink v3 - ON x.prs_afdeling_key = v3.prs_link_key - AND v3.prs_kenmerk_key = 1022) - LOOP -- Alleen over afdelingen met een budgethouder! - BEGIN - FOR rc2 - IN ( SELECT x.vnr, v.prs_perslid_key_alt, v.prs_perslid_naam_full - FROM ( SELECT LEVEL vnr - FROM DUAL - CONNECT BY LEVEL <= 3) x - LEFT JOIN - (SELECT ROWNUM vnr, - prs_perslid_key_alt, - prs_perslid_naam_full - FROM ( SELECT c.prs_perslid_key_alt, - pc.prs_perslid_naam_full - FROM prs_collega c, - fac_gebruikersgroep gg, - prs_v_perslid_fullnames pc - WHERE c.prs_perslid_key = - rc1.budgethouder_key - AND c.prs_perslid_key_alt = - gg.prs_perslid_key - AND gg.fac_groep_key = 1219 - AND c.prs_perslid_key_alt = - pc.prs_perslid_key - ORDER BY 2)) v - ON x.vnr = v.vnr - ORDER BY 1) - LOOP -- Altijd alfabetisch over 3 echte of lege vervangers! - IF rc2.vnr = 1 - THEN - v_kenmerklink_key := rc1.v1_kenmerklink_key; - v_kenmerk_key := 1020; -- 1e vervanger - v_cur_perslid_key := rc1.v1_perslid_key; - ELSIF rc2.vnr = 2 - THEN - v_kenmerklink_key := rc1.v2_kenmerklink_key; - v_kenmerk_key := 1021; -- 2e vervanger - v_cur_perslid_key := rc1.v2_perslid_key; - ELSE -- rc2.vnr = 3 - v_kenmerklink_key := rc1.v3_kenmerklink_key; - v_kenmerk_key := 1022; -- 3e vervanger - v_cur_perslid_key := rc1.v3_perslid_key; - END IF; - - IF (rc2.prs_perslid_key_alt IS NOT NULL) - THEN -- Er is een vervanger - IF (v_kenmerklink_key IS NULL) -- Was geen vervanger->insert - THEN - v_errormsg := 'Fout toevoegen vervanger-' || TO_CHAR (rc2.vnr); - - INSERT INTO prs_kenmerklink (prs_link_key, - prs_kenmerklink_niveau, - prs_kenmerk_key, - prs_kenmerklink_waarde) - VALUES (rc1.prs_afdeling_key, - 'A', - v_kenmerk_key, - TO_CHAR (rc2.prs_perslid_key_alt)); - ELSIF (v_cur_perslid_key != rc2.prs_perslid_key_alt) - THEN -- Was andere vervanger->update - v_errormsg := 'Fout bijwerken vervanger-' || TO_CHAR (rc2.vnr); - - UPDATE prs_kenmerklink - SET prs_kenmerklink_waarde = - TO_CHAR (rc2.prs_perslid_key_alt) - WHERE prs_kenmerklink_key = v_kenmerklink_key; - END IF; - ELSE -- Er is geen vervanger - IF (v_kenmerklink_key IS NOT NULL) -- Was wel vervanger->delete - THEN - v_errormsg := 'Fout verwijderen vervanger-' || TO_CHAR (rc2.vnr); - - DELETE FROM prs_kenmerklink WHERE prs_kenmerklink_key = v_kenmerklink_key; - END IF; - END IF; - END LOOP; - - COMMIT; - 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', v_errormsg, ''); - COMMIT; - END; - END LOOP; - - COMMIT; - - -- RWSN#27015: Toevoegen nieuwe BH-vervangers aan 1219=ICT:Fiattering namens. - INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) - SELECT DISTINCT 1219, c.prs_perslid_key_alt - FROM prs_kostenplaats kp, - prs_afdeling a, - prs_v_afdeling_boom ab, - prs_collega c, - prs_v_aanwezigperslid pl, - prs_v_aanwezigperslid pv - WHERE kp.prs_kostenplaats_verwijder IS NULL - AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key -- PRS-KPN - AND a.prs_afdeling_verwijder IS NULL - AND a.prs_afdeling_key = ab.prs_afdeling_key - AND ab.prs_afdeling_key1 IN -- Afdeling onder Troux-regime - (SELECT fac.safe_to_number (fac_usrdata_code) - FROM fac_usrdata - WHERE fac_usrtab_key = 2) - AND kp.prs_perslid_key = c.prs_perslid_key -- BH met collega's - AND c.prs_perslid_key = pl.prs_perslid_key -- Actief - AND c.prs_perslid_key_alt = pv.prs_perslid_key -- Actief - AND NOT EXISTS -- Nog niet in autorisatiegroep - (SELECT 1 - FROM fac_gebruikersgroep - WHERE fac_groep_key = 1219 -- ICT:Fiattering namens - AND prs_perslid_key = c.prs_perslid_key_alt) - UNION - SELECT DISTINCT 1219, c.prs_perslid_key_alt - FROM prs_kostenplaatsgrp kpg, - prs_collega c, - prs_v_aanwezigperslid pl, - prs_v_aanwezigperslid pv - WHERE kpg.prs_perslid_key = c.prs_perslid_key -- BH met collega's - AND c.prs_perslid_key = pl.prs_perslid_key -- Actief - AND c.prs_perslid_key_alt = pv.prs_perslid_key -- Actief - AND NOT EXISTS -- Nog niet in autorisatiegroep - (SELECT 1 - FROM fac_gebruikersgroep - WHERE fac_groep_key = 1219 -- ICT:Fiattering namens - AND prs_perslid_key = c.prs_perslid_key_alt); - - COMMIT; - - -- RWSN#27015: Verwijderen oude BH-vervangers uit 1219=ICT:Fiattering namens. - DELETE FROM fac_gebruikersgroep gg - WHERE gg.fac_groep_key = 1219 -- ICT:Fiattering namens - AND NOT EXISTS - (SELECT 1 - FROM prs_collega c, prs_kostenplaats kp - WHERE c.prs_perslid_key_alt = gg.prs_perslid_key - AND c.prs_perslid_key = kp.prs_perslid_key) - AND NOT EXISTS - (SELECT 1 - FROM prs_collega c, prs_kostenplaatsgrp kpg - WHERE c.prs_perslid_key_alt = gg.prs_perslid_key - AND c.prs_perslid_key = kpg.prs_perslid_key); - - COMMIT; - - -- RWSN#27015: Bijwerken profielen van alle (aanwezige) medewerkers zonder - -- een profiel of met een profiel_key <= 4! - UPDATE prs_perslid p - SET p.fac_profiel_key = 1 - WHERE p.prs_perslid_verwijder IS NULL - AND COALESCE (p.fac_profiel_key, 0) < 1; - - UPDATE prs_perslid p - SET p.fac_profiel_key = 2 - WHERE p.prs_perslid_verwijder IS NULL - AND COALESCE (p.fac_profiel_key, 0) < 2 - AND EXISTS - (SELECT 1 - FROM ins_kenmerkdeel kd, ins_kenmerk k - WHERE kd.ins_kenmerkdeel_waarde = TO_CHAR (p.prs_perslid_key) - AND kd.ins_kenmerkdeel_verwijder IS NULL - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key BETWEEN 103 AND 200); - - UPDATE prs_perslid p - SET p.fac_profiel_key = 1 - WHERE p.prs_perslid_verwijder IS NULL AND p.fac_profiel_key = 2 - AND NOT EXISTS - (SELECT 1 - FROM ins_kenmerkdeel kd, ins_kenmerk k - WHERE kd.ins_kenmerkdeel_waarde = TO_CHAR (p.prs_perslid_key) - AND kd.ins_kenmerkdeel_verwijder IS NULL - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key BETWEEN 103 AND 200); - - UPDATE prs_perslid p - SET p.fac_profiel_key = 3 - WHERE p.prs_perslid_verwijder IS NULL - AND COALESCE (p.fac_profiel_key, 0) < 3 - AND (EXISTS - (SELECT 1 - FROM prs_kostenplaats - WHERE prs_perslid_key = p.prs_perslid_key - AND prs_kostenplaats_verwijder IS NULL) - OR EXISTS - (SELECT 1 - FROM prs_collega c, - fac_gebruikersgroep gg, - prs_kostenplaats kp - WHERE c.prs_perslid_key_alt = p.prs_perslid_key - AND c.prs_perslid_key_alt = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 - AND c.prs_perslid_key = kp.prs_perslid_key)); - - UPDATE prs_perslid p - SET p.fac_profiel_key = 1 - WHERE p.prs_perslid_verwijder IS NULL AND p.fac_profiel_key = 3 - AND NOT EXISTS - (SELECT 1 - FROM prs_kostenplaats - WHERE prs_perslid_key = p.prs_perslid_key - AND prs_kostenplaats_verwijder IS NULL) - AND NOT EXISTS - (SELECT 1 - FROM prs_collega c, - fac_gebruikersgroep gg, - prs_kostenplaats kp - WHERE c.prs_perslid_key_alt = p.prs_perslid_key - AND c.prs_perslid_key_alt = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 - AND c.prs_perslid_key = kp.prs_perslid_key); - - UPDATE prs_perslid p - SET p.fac_profiel_key = 4 - WHERE p.prs_perslid_verwijder IS NULL - AND COALESCE (p.fac_profiel_key, 0) < 4 - AND (EXISTS (SELECT 1 - FROM prs_kostenplaatsgrp - WHERE prs_perslid_key = p.prs_perslid_key) - OR EXISTS - (SELECT 1 - FROM prs_collega c, - fac_gebruikersgroep gg, - prs_kostenplaatsgrp kpg - WHERE c.prs_perslid_key_alt = p.prs_perslid_key - AND c.prs_perslid_key_alt = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 - AND c.prs_perslid_key = kpg.prs_perslid_key)); - - UPDATE prs_perslid p - SET p.fac_profiel_key = 1 - WHERE p.prs_perslid_verwijder IS NULL - AND p.fac_profiel_key = 4 - AND NOT EXISTS (SELECT 1 - FROM prs_kostenplaatsgrp - WHERE prs_perslid_key = p.prs_perslid_key) - AND NOT EXISTS - (SELECT 1 - FROM prs_collega c, - fac_gebruikersgroep gg, - prs_kostenplaatsgrp kpg - WHERE c.prs_perslid_key_alt = p.prs_perslid_key - AND c.prs_perslid_key_alt = gg.prs_perslid_key - AND gg.fac_groep_key = 1219 - AND c.prs_perslid_key = kpg.prs_perslid_key); - - COMMIT; - - -- RWSN#27015: Toekennen/afnemen Beheerder-autorisatiegroep (key=2661)! - INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) - SELECT 2661, p.prs_perslid_key - FROM prs_perslid p - WHERE p.prs_perslid_verwijder IS NULL AND p.fac_profiel_key = 2 - AND EXISTS - (SELECT 1 - FROM ins_kenmerkdeel kd, ins_kenmerk k - WHERE kd.ins_kenmerkdeel_waarde = TO_CHAR (p.prs_perslid_key) - AND kd.ins_kenmerkdeel_verwijder IS NULL - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key BETWEEN 103 AND 200) - AND NOT EXISTS - (SELECT 1 - FROM fac_gebruikersgroep - WHERE prs_perslid_key = p.prs_perslid_key - AND fac_groep_key = 2661); - - DELETE FROM fac_gebruikersgroep gg - WHERE gg.fac_groep_key = 2661 - AND NOT EXISTS - (SELECT 1 - FROM ins_kenmerkdeel kd, ins_kenmerk k - WHERE kd.ins_kenmerkdeel_waarde = TO_CHAR (gg.prs_perslid_key) - AND kd.ins_kenmerkdeel_verwijder IS NULL - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key BETWEEN 103 AND 200); - - COMMIT; - v_count := 0; -- Auto-afmeld 'Zelfservice-IVB'-opdrachten incl. bovenliggende melding! @@ -17596,7 +13313,6 @@ EXCEPTION END; / - /* Formatted on 24-6-2010 12:55:55 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_kenmerksoorten ( @@ -17995,1417 +13711,6 @@ AS WHERE cn.prs_perslid_key = p.prs_perslid_key) notitie ON basis.cnt_contract_key = notitie.cnt_contract_key; -/* Formatted on 5-6-2012 16:32:48 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_import_cmdb (p_import_key IN NUMBER) -IS - c_delim VARCHAR2 (1) := ';'; - v_newline VARCHAR2 (1000); -- Input line - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - header_is_valid NUMBER; - v_count_tot NUMBER (10); - v_count_import NUMBER (10); - v_ongeldig NUMBER (1); - v_aanduiding VARCHAR (200); - -- De importvelden: - v_ins_discipline_omschrijving VARCHAR2 (255); -- C30 - v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60 - v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100 - v_ins_deel_omschrijving VARCHAR2 (255); -- C60 - v_prs_perslid_email VARCHAR2 (255); -- C30 - v_merk VARCHAR2 (255); -- C50 - v_type VARCHAR2 (255); -- C50 - v_serienummer VARCHAR2 (255); -- C50 - - CURSOR c1 - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; -BEGIN - DELETE FROM rwsn_imp_cmdb; - COMMIT; - - v_count_tot := 0; - v_count_import := 0; - header_is_valid := 0; - - 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_omschrijving); - fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving); - fac.imp_getfield (v_newline, c_delim, v_prs_perslid_email); - fac.imp_getfield (v_newline, c_delim, v_merk); - fac.imp_getfield (v_newline, c_delim, v_type); - fac.imp_getfield (v_newline, c_delim, v_serienummer); - - v_aanduiding := - '[' - || v_ins_discipline_omschrijving - || '|' - || v_ins_srtgroep_omschrijving - || '|' - || v_ins_srtdeel_omschrijving - || '|' - || v_ins_deel_omschrijving - || '|' - || v_prs_perslid_email - || '] '; - - -- 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) = 'OBJECTDISCIPLINE' - AND UPPER (v_ins_srtgroep_omschrijving) = 'OBJECTGROEP' - AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORT' - AND UPPER (v_ins_deel_omschrijving) = 'REGISTRATIENUMMER' - AND UPPER (v_prs_perslid_email) = 'EMAIL' - AND UPPER (v_merk) = 'MERK' - AND UPPER (v_type) = 'TYPE' - AND UPPER (v_serienummer) = 'SERIENUMMER' - 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 := '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 := 'Email ongeldig; ongedefinieerd of te lang'; - v_prs_perslid_email := TRIM (v_prs_perslid_email); - - IF v_prs_perslid_email IS NULL OR LENGTH (v_prs_perslid_email) > 50 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Merk ongeldig'; - v_merk := TRIM (v_merk); - - IF LENGTH (v_merk) > 50 - THEN - v_merk := SUBSTR (v_merk, 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Merk wordt afgebroken tot [' || v_merk || ']' - ); - END IF; - - -- - v_errormsg := 'Type ongeldig'; - v_type := TRIM (v_type); - - IF LENGTH (v_type) > 50 - THEN - v_type := SUBSTR (v_type, 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Type wordt afgebroken tot [' || v_type || ']' - ); - END IF; - - -- - v_errormsg := 'Serienummer ongeldig'; - v_serienummer := TRIM (v_serienummer); - - IF LENGTH (v_serienummer) > 50 - THEN - v_serienummer := SUBSTR (v_serienummer, 1, 50); - fac.imp_writelog ( - p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Serienummer wordt afgebroken tot [' - || v_serienummer - || ']' - ); - END IF; - - -- Insert geformatteerde import record - IF v_ongeldig = 0 - THEN - BEGIN - v_errormsg := 'Fout wegschrijven importregel'; - - INSERT INTO rwsn_imp_cmdb (ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_omschrijving, - ins_deel_omschrijving, - prs_perslid_email, - merk, - TYPE, - serienummer) - VALUES (v_ins_discipline_omschrijving, - v_ins_srtgroep_omschrijving, - v_ins_srtdeel_omschrijving, - v_ins_deel_omschrijving, - v_prs_perslid_email, - v_merk, - v_type, - v_serienummer); - - 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', - 'ICT-objecten/#ingelezen importregels: ' - || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'ICT-objecten/#ongeldige niet ingelezen importregels: ' - || TO_CHAR (v_count_tot - v_count_import), - '' - ); - END IF; - - COMMIT; -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 ICT-objecten afgebroken!'); -END rwsn_import_cmdb; -/ - -/* Formatted on 14-6-2012 19:24:32 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_update_cmdb (p_import_key IN NUMBER) -AS - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - - -- 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 rwsn_imp_cmdb - GROUP BY UPPER (ins_discipline_omschrijving); - - v_errormsg VARCHAR2 (1024); - v_discipline_key NUMBER (10); - ccount NUMBER (10); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - 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)) = - UPPER (TRIM (rec.ins_discipline_omschrijving)); - - 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 rwsn_imp_cmdb - GROUP BY UPPER (ins_discipline_omschrijving), - UPPER (ins_srtgroep_omschrijving); - - v_errormsg VARCHAR2 (1024); - v_discipline_key NUMBER (10); - ccount NUMBER (10); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - 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)) = - UPPER (TRIM (rec.ins_discipline_omschrijving)); - - 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)) = - UPPER (TRIM (rec.ins_srtgroep_omschrijving)); - - 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(UPPER( SUBSTR (ins_srtgroep_omschrijving, 1, 4) - || '-' - || SUBSTR (ins_srtdeel_omschrijving, 1, 5))) - new_srtdeel_code_upper, - MAX (ins_discipline_omschrijving) - ins_discipline_omschrijving, - MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving, - MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving - FROM rwsn_imp_cmdb - GROUP BY UPPER (ins_discipline_omschrijving), - UPPER (ins_srtgroep_omschrijving), - UPPER (ins_srtdeel_omschrijving); - - v_errormsg VARCHAR2 (1024); - v_discipline_key NUMBER (10); - v_srtgroep_key NUMBER (10); - ccount NUMBER (10); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count_update NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_update := 0; - - 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)) = - UPPER (TRIM (rec.ins_discipline_omschrijving)); - - 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)) = - UPPER (TRIM (rec.ins_srtgroep_omschrijving)); - - 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)) = - UPPER (TRIM (rec.ins_srtdeel_omschrijving)); - - IF ccount = 0 - THEN - -- Binding 16 betekent persoonsgebonden (Persoon-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', - rec.new_srtdeel_code_upper, - rec.ins_srtdeel_omschrijving, - 16); - - 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 - CURSOR c1 - IS - SELECT ins_discipline_omschrijving, - ins_srtgroep_omschrijving, - ins_srtdeel_omschrijving, - ins_deel_omschrijving, - prs_perslid_email, - merk, - TYPE, - serienummer - FROM rwsn_imp_cmdb; - - v_errormsg VARCHAR2 (1024); - c_merk_srtkey NUMBER (10) := 5; - c_type_srtkey NUMBER (10) := 6; - c_serienummer_srtkey NUMBER (10) := 7; - v_discipline_key NUMBER (10); - v_srtgroep_key NUMBER (10); - v_srtdeel_key NUMBER (10); - v_new_perslid_key NUMBER (10); -- volgens import op basis van email - v_cur_perslid_key NUMBER (10); -- zoals nu geregistreerd in FACILITOR - v_deel_key NUMBER (10); - v_deel_oms VARCHAR2 (60); - v_kenmerk_key NUMBER (10); - ccount NUMBER (10); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count_tot NUMBER (10); - v_count_create NUMBER (10); - v_count_update NUMBER (10); - v_aanduiding VARCHAR (200); - BEGIN - v_count_tot := 0; - v_count_create := 0; - v_count_update := 0; - v_aanduiding := ''; - - 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_omschrijving - || '|' - || rec.ins_deel_omschrijving - || '|' - || rec.prs_perslid_email - || '] '; - 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 (TRIM (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 (TRIM (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 (TRIM (rec.ins_srtdeel_omschrijving)); - - v_errormsg := 'Fout bepalen persoon [' || rec.prs_perslid_email || ']'; - - SELECT p.prs_perslid_key - INTO v_new_perslid_key - FROM prs_perslid p - WHERE p.prs_perslid_verwijder IS NULL - AND EXISTS - (SELECT 1 - FROM prs_v_aanwezigkenmerklink - WHERE prs_link_key = p.prs_perslid_key - AND prs_kenmerk_key = 1160) - AND UPPER (p.prs_perslid_email) LIKE - UPPER (rec.prs_perslid_email) || '%'; - - -- Persoonsgebonden objecten hebben een unieke ID - v_errormsg := 'Fout (uniek) bepalen INS-object'; - - SELECT COUNT ( * ) - INTO ccount - 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); - - 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_alg_ruimte_key, - ins_alg_ruimte_type, - ins_alg_locatie_key) - VALUES (v_discipline_key, - v_srtdeel_key, - 'INS', - rec.ins_deel_omschrijving, - v_new_perslid_key, - 'P', - NULL) - RETURNING ins_deel_key INTO v_deel_key; - - COMMIT; - - v_count_create := v_count_create + 1; - ELSE -- Object bestaat reeds! - SELECT d.ins_deel_key, ins_alg_ruimte_key - INTO v_deel_key, v_cur_perslid_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); - - IF v_new_perslid_key <> v_cur_perslid_key - THEN - v_errormsg := 'Fout bijwerken INS-object'; - - UPDATE ins_deel - SET ins_deel_omschrijving = rec.ins_deel_omschrijving, - ins_alg_ruimte_key = v_new_perslid_key, - ins_alg_ruimte_type = 'P', - ins_alg_locatie_key = NULL - WHERE ins_deel_key = v_deel_key; - - COMMIT; - - v_count_update := v_count_update + 1; - END IF; - END IF; - - -- MERK toevoegen/bijwerken; NOOIT naar NULL via import! - IF rec.merk IS NOT NULL - THEN - v_errormsg := 'Fout bepalen merk-kenmerk'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_merk_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - - IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! - THEN - v_errormsg := 'Fout toevoegen merk-kenmerk'; - - INSERT INTO ins_kenmerk (ins_srtkenmerk_key, - ins_srtinstallatie_key, - ins_kenmerk_niveau, - ins_kenmerk_volgnummer) - VALUES (c_merk_srtkey, - v_srtdeel_key, - 'S', - 100) - RETURNING ins_kenmerk_key INTO v_kenmerk_key; - - fac.imp_writelog ( - p_import_key, - 'I', - 'INS-Objecten/Merk-kenmerk toegevoegd voor: ' - || rec.ins_srtdeel_omschrijving, - '' - ); - COMMIT; - ELSE - SELECT k.ins_kenmerk_key - INTO v_kenmerk_key - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_merk_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = - v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - END IF; - - v_errormsg := 'Fout bepalen huidige merk'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerkdeel - WHERE ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - IF ccount = 0 - THEN - v_errormsg := 'Fout toevoegen merk'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (v_deel_key, v_kenmerk_key, rec.merk); - - COMMIT; - ELSE - v_errormsg := 'Fout bijwerken merk'; - - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_waarde = rec.merk - WHERE ins_kenmerkdeel_verwijder IS NULL - AND ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - COMMIT; - END IF; - END IF; - - -- TYPE toevoegen/bijwerken; NOOIT naar NULL via import! - IF rec.TYPE IS NOT NULL - THEN - v_errormsg := 'Fout bepalen type-kenmerk'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_type_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - - IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! - THEN - v_errormsg := 'Fout toevoegen type-kenmerk'; - - INSERT INTO ins_kenmerk (ins_srtkenmerk_key, - ins_srtinstallatie_key, - ins_kenmerk_niveau, - ins_kenmerk_volgnummer) - VALUES (c_type_srtkey, - v_srtdeel_key, - 'S', - 105) - RETURNING ins_kenmerk_key INTO v_kenmerk_key; - - fac.imp_writelog ( - p_import_key, - 'I', - 'INS-Objecten/Type-kenmerk toegevoegd voor: ' - || rec.ins_srtdeel_omschrijving, - '' - ); - COMMIT; - ELSE - SELECT k.ins_kenmerk_key - INTO v_kenmerk_key - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_type_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = - v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - END IF; - - v_errormsg := 'Fout bepalen huidige type'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerkdeel - WHERE ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - IF ccount = 0 - THEN - v_errormsg := 'Fout toevoegen type'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (v_deel_key, v_kenmerk_key, rec.TYPE); - - COMMIT; - ELSE - v_errormsg := 'Fout bijwerken type'; - - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_waarde = rec.TYPE - WHERE ins_kenmerkdeel_verwijder IS NULL - AND ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - COMMIT; - END IF; - END IF; - - -- SERIENUMMER toevoegen/bijwerken; NOOIT naar NULL via import! - IF rec.serienummer IS NOT NULL - THEN - v_errormsg := 'Fout bepalen serienummer-kenmerk'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_serienummer_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - - IF ccount = 0 -- Kenmerk bestaat niet; dan aanmaken! - THEN - v_errormsg := 'Fout toevoegen serienummer-kenmerk'; - - INSERT INTO ins_kenmerk (ins_srtkenmerk_key, - ins_srtinstallatie_key, - ins_kenmerk_niveau, - ins_kenmerk_volgnummer) - VALUES (c_serienummer_srtkey, - v_srtdeel_key, - 'S', - 110) - RETURNING ins_kenmerk_key INTO v_kenmerk_key; - - fac.imp_writelog ( - p_import_key, - 'I', - 'INS-Objecten/Serienummer-kenmerk toegevoegd voor: ' - || rec.ins_srtdeel_omschrijving, - '' - ); - COMMIT; - ELSE - SELECT k.ins_kenmerk_key - INTO v_kenmerk_key - FROM ins_v_aanwezigkenmerk k - WHERE k.ins_srtkenmerk_key = c_serienummer_srtkey - AND ( (k.ins_srtinstallatie_key = v_srtdeel_key - AND k.ins_kenmerk_niveau = 'S') - OR (k.ins_srtinstallatie_key = v_srtgroep_key - AND k.ins_kenmerk_niveau = 'G') - OR (k.ins_srtinstallatie_key = - v_discipline_key - AND k.ins_kenmerk_niveau = 'D')); - END IF; - - v_errormsg := 'Fout bepalen huidige serienummer'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_v_aanwezigkenmerkdeel - WHERE ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - IF ccount = 0 - THEN - v_errormsg := 'Fout toevoegen serienummer'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (v_deel_key, v_kenmerk_key, rec.serienummer); - - COMMIT; - ELSE - v_errormsg := 'Fout bijwerken serienummer'; - - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_waarde = rec.serienummer - WHERE ins_kenmerkdeel_verwijder IS NULL - AND ins_deel_key = v_deel_key - AND ins_kenmerk_key = v_kenmerk_key; - - COMMIT; - 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, - ''); - 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_omschrijving, - d.ins_deel_omschrijving, - p.prs_perslid_email, - d.ins_deel_key - FROM ins_v_aanwezigdeel d, - ins_v_aanwezigsrtdeel sd, - ins_v_aanwezigsrtgroep sg, - ins_discipline id, - prs_perslid p - WHERE 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_omschrijving = 'CMDB' - AND TO_CHAR (id.ins_discipline_aanmaak, 'yyyy') = '2012' - AND d.ins_alg_ruimte_key = p.prs_perslid_key - AND NOT EXISTS - (SELECT 1 - FROM rwsn_imp_cmdb 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); - - v_errormsg VARCHAR2 (1024); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_count_delete NUMBER (10); - v_aanduiding VARCHAR (200); - BEGIN - v_count_delete := 0; - v_aanduiding := ''; - - FOR rec IN c1 - LOOP - BEGIN - v_aanduiding := - '[' - || rec.ins_discipline_omschrijving - || '|' - || rec.ins_srtgroep_omschrijving - || '|' - || rec.ins_srtdeel_omschrijving - || '|' - || rec.ins_deel_omschrijving - || '|' - || rec.prs_perslid_email - || '] '; - v_errormsg := 'Fout verwijderen INS-object'; - - DELETE FROM ins_deel 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 - 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 ICT-objecten afgebroken!'); -END rwsn_update_cmdb; -/ - --- RWSN#23799 -/* Formatted on 25-7-2012 15:10:15 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_cmdb -( - fclt_f_medewerker, - fclt_f_dienst, - fclt_f_afdeling, - fclt_x_nivo, - fclt_f_omschrijving, - registratienummer, - merk, - TYPE, - serienummer -) -AS - SELECT x.prs_perslid_naam_full, - x.dienst, - x.afd_oms, - TO_CHAR (x.nivo), - x.ins_srtdeel_omschrijving, - x.ins_deel_omschrijving, - kd1.ins_kenmerkdeel_waarde merk, - kd2.ins_kenmerkdeel_waarde TYPE, - kd3.ins_kenmerkdeel_waarde serienummer - FROM (SELECT d.ins_deel_key, - d.ins_deel_omschrijving, - sd.ins_srtdeel_omschrijving, - a1.prs_afdeling_omschrijving dienst, - a2.prs_afdeling_upper afd_code, - a2.prs_afdeling_omschrijving afd_oms, - af2.niveau nivo, - pf.prs_perslid_naam_full - FROM ins_v_aanwezigdeel d, - ins_srtdeel sd, - ins_srtgroep sg, - ins_tab_discipline td, - prs_perslid p, - prs_v_afdeling_familie af1, - prs_afdeling a1, - prs_v_afdeling_familie af2, - prs_afdeling a2, - prs_v_perslid_fullnames pf - 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_omschrijving = 'CMDB' - --AND d.ins_alg_ruimte_type = 'P' - AND d.ins_alg_ruimte_key = p.prs_perslid_key - AND p.prs_afdeling_key = af1.prs_afdeling_key - AND af1.niveau = 1 - AND af1.prs_afdeling_elder_key = - a1.prs_afdeling_key - AND p.prs_afdeling_key = af2.prs_afdeling_key - AND af2.prs_afdeling_key = - af2.prs_afdeling_elder_key - AND af2.prs_afdeling_elder_key = - a2.prs_afdeling_key - AND p.prs_perslid_key = pf.prs_perslid_key) x - LEFT JOIN - (SELECT kd1.ins_deel_key, kd1.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd1, ins_kenmerk k - WHERE kd1.ins_kenmerkdeel_verwijder IS NULL - AND kd1.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 5) kd1 -- Merk - ON x.ins_deel_key = kd1.ins_deel_key - LEFT JOIN - (SELECT kd2.ins_deel_key, kd2.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd2, ins_kenmerk k - WHERE kd2.ins_kenmerkdeel_verwijder IS NULL - AND kd2.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 6) kd2 -- Type - ON x.ins_deel_key = kd2.ins_deel_key - LEFT JOIN - (SELECT kd3.ins_deel_key, kd3.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd3, ins_kenmerk k - WHERE kd3.ins_kenmerkdeel_verwijder IS NULL - AND kd3.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 7) kd3 -- Serienummer - ON x.ins_deel_key = kd3.ins_deel_key; - -/* Formatted on 25-7-2012 15:10:45 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE VIEW rwsn_v_rap_cmdb_per_ictcp -( - fclt_3d_user_key, - fclt_f_medewerker, - fclt_f_dienst, - fclt_f_afdeling, - fclt_f_omschrijving, - registratienummer, - merk, - TYPE, - serienummer -) -AS - SELECT cp.prs_key, - x.prs_perslid_naam_full, - x.dienst, - x.afd_oms, - x.ins_srtdeel_omschrijving, - x.ins_deel_omschrijving, - kd1.ins_kenmerkdeel_waarde merk, - kd2.ins_kenmerkdeel_waarde TYPE, - kd3.ins_kenmerkdeel_waarde serienummer - FROM (SELECT d.ins_deel_key, - d.ins_deel_omschrijving, - sd.ins_srtdeel_omschrijving, - a1.prs_afdeling_omschrijving dienst, - a2.prs_afdeling_key afd_key, - a2.prs_afdeling_upper afd_code, - a2.prs_afdeling_omschrijving afd_oms, - pf.prs_perslid_naam_full - FROM ins_v_aanwezigdeel d, - ins_srtdeel sd, - ins_srtgroep sg, - ins_tab_discipline td, - prs_perslid p, - prs_v_afdeling_familie af1, - prs_afdeling a1, - prs_v_afdeling_familie af2, - prs_afdeling a2, - prs_v_perslid_fullnames pf - 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_omschrijving = 'CMDB' - --AND d.ins_alg_ruimte_type = 'P' - AND d.ins_alg_ruimte_key = - p.prs_perslid_key - AND p.prs_afdeling_key = - af1.prs_afdeling_key - AND af1.niveau = 1 - AND af1.prs_afdeling_elder_key = - a1.prs_afdeling_key - AND p.prs_afdeling_key = - af2.prs_afdeling_key - AND af2.prs_afdeling_key = - af2.prs_afdeling_elder_key - AND af2.prs_afdeling_elder_key = - a2.prs_afdeling_key - AND p.prs_perslid_key = pf.prs_perslid_key) - x - LEFT JOIN - (SELECT kd1.ins_deel_key, - kd1.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd1, ins_kenmerk k - WHERE kd1.ins_kenmerkdeel_verwijder IS NULL - AND kd1.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 5) kd1 -- Merk - ON x.ins_deel_key = kd1.ins_deel_key - LEFT JOIN - (SELECT kd2.ins_deel_key, kd2.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd2, ins_kenmerk k - WHERE kd2.ins_kenmerkdeel_verwijder IS NULL - AND kd2.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 6) kd2 -- Type - ON x.ins_deel_key = kd2.ins_deel_key - LEFT JOIN - (SELECT kd3.ins_deel_key, kd3.ins_kenmerkdeel_waarde - FROM ins_kenmerkdeel kd3, ins_kenmerk k - WHERE kd3.ins_kenmerkdeel_verwijder IS NULL - AND kd3.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_srtkenmerk_key = 7) kd3 -- Serienummer - ON x.ins_deel_key = kd3.ins_deel_key - LEFT JOIN - rwsn_v_ictcp_per_afd cp - ON x.afd_key = cp.afd_key; - --- RWSN#30371 -/* Formatted on 12-9-2014 17:00:30 (QP5 v5.136.908.31019) */ -CREATE OR REPLACE VIEW rwsn_v_rap_ldg_per_medewerker -( - fclt_f_medewerker, - email_medewerker, - fclt_f_leidinggevende, - email_leidinggevende, - fclt_f_onderdeel, - fclt_f_afdeling -) -AS - WITH a2ldg - AS (SELECT a.prs_afdeling_key, - a.prs_afdeling_parentkey, - a.prs_afdeling_omschrijving, - pf.prs_perslid_key, - pf.prs_perslid_naam_full, - p.prs_perslid_email - FROM rwsn_v_ictcp_per_afd v, - prs_afdeling a, - prs_perslid p, - prs_v_perslid_fullnames pf - WHERE v.bv = 'B' -- Geen V = Vervangers - AND v.afd_key = a.prs_afdeling_key - AND v.prs_key = p.prs_perslid_key - AND p.prs_perslid_key = pf.prs_perslid_key) - SELECT pf.prs_perslid_naam_full, - p.prs_perslid_email, - DECODE ( - p.prs_perslid_key, - a.prs_perslid_key, -- MDW = LDG eigen - DECODE (p.prs_perslid_key, - ap.prs_perslid_key, 'Geen', -- MDW = LDG ouder - ap.prs_perslid_naam_full), - a.prs_perslid_naam_full), - DECODE ( - p.prs_perslid_key, - a.prs_perslid_key, -- MDW = LDG eigen - DECODE (p.prs_perslid_key, - ap.prs_perslid_key, 'Geen', -- MDW = LDG ouder - ap.prs_perslid_email), - a.prs_perslid_email), - d.prs_afdeling_omschrijving, - a.prs_afdeling_omschrijving - FROM prs_v_aanwezigperslid p, - prs_v_perslid_fullnames pf, - prs_v_afdeling_boom ab, - a2ldg a, -- LDG per eigen afdeling - a2ldg ap, -- LDG per ouder afdeling - prs_afdeling d - WHERE p.prs_perslid_key = pf.prs_perslid_key - AND p.prs_afdeling_key = ab.prs_afdeling_key - AND ab.prs_afdeling_key = a.prs_afdeling_key(+) - AND a.prs_afdeling_parentkey = ap.prs_afdeling_key(+) - AND ab.prs_afdeling_key1 = d.prs_afdeling_key; - -- RWSN#23256 /* Formatted on 24-7-2012 14:55:44 (QP5 v5.115.810.9015) */ CREATE OR REPLACE VIEW rwsn_v_rap_beo_doorloop @@ -21671,1164 +15976,6 @@ AS ON x.alg_locatie_key = e.alg_onrgoed_key AND e.alg_kenmerk_key = 1381; -/* Formatted on 21-11-2013 10:42:16 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_import_appl (p_import_key IN NUMBER) -IS - c_delim VARCHAR2 (1) := ';'; - v_newline VARCHAR2 (1000); -- Input line - v_errormsg VARCHAR2 (1000); - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - header_is_valid NUMBER; - v_count_tot NUMBER (10); - v_count_import NUMBER (10); - v_ongeldig NUMBER (1); - v_aanduiding VARCHAR (200); - -- De importvelden: - v_spiv_domein VARCHAR2 (255); -- C60 - v_applicatiecode VARCHAR2 (255); -- C10 - v_applicatienaam VARCHAR2 (255); -- C100 - v_aut_proces VARCHAR2 (255); -- C10; feitelijk 1! - v_beh_type VARCHAR2 (255); -- C10 - v_beh_mail VARCHAR2 (255); -- C60 - v_beh_org VARCHAR2 (255); -- C10 - v_webbased VARCHAR2 (255); -- C10; feitelijk 1! - v_vervaldatum VARCHAR2 (255); -- C10 - v_vervaldatum_d DATE; - - CURSOR c1 - IS - SELECT * - FROM fac_imp_file - WHERE fac_import_key = p_import_key - ORDER BY fac_imp_file_index; -BEGIN - DELETE FROM rwsn_imp_appl; - COMMIT; - - v_count_tot := 0; - v_count_import := 0; - header_is_valid := 0; - - 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_spiv_domein); - fac.imp_getfield (v_newline, c_delim, v_applicatiecode); - fac.imp_getfield (v_newline, c_delim, v_applicatienaam); - fac.imp_getfield (v_newline, c_delim, v_aut_proces); - fac.imp_getfield (v_newline, c_delim, v_beh_type); - fac.imp_getfield (v_newline, c_delim, v_beh_mail); - fac.imp_getfield (v_newline, c_delim, v_beh_org); - fac.imp_getfield (v_newline, c_delim, v_webbased); - fac.imp_getfield (v_newline, c_delim, v_vervaldatum); - - v_aanduiding := - '[' - || v_spiv_domein - || '|' - || v_applicatiecode - || '|' - || v_applicatienaam - || '|' - || v_aut_proces - || '] '; - - -- 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_spiv_domein) = 'SPIV_DOMEIN' - AND UPPER (v_applicatiecode) = 'APPLICATIECODE' - AND UPPER (v_applicatienaam) = 'APPLICATIENAAM' - AND UPPER (v_aut_proces) = 'AUTORISATIEPROCES' - AND UPPER (v_beh_type) = 'BEHEERDER_TYPE' - AND UPPER (v_beh_mail) = 'BEHEERDER_MAIL' - AND UPPER (v_beh_org) = 'BEHEERDER_ORG' - AND UPPER (v_webbased) = 'WEBBASED' - AND UPPER (v_vervaldatum) = 'VERVALDATUM' - THEN - header_is_valid := 1; - END IF; - ELSE - v_count_tot := v_count_tot + 1; - -- Controleer alle veldwaarden - v_errormsg := 'SPIV-domein ongeldig; ongedefinieerd of te lang'; - v_spiv_domein := TRIM (v_spiv_domein); - - IF v_spiv_domein IS NULL OR LENGTH (v_spiv_domein) > 60 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Applicatiecode ongeldig; ongedefinieerd of te lang'; - v_applicatiecode := TRIM (v_applicatiecode); - - IF v_applicatiecode IS NULL OR LENGTH (v_applicatiecode) > 10 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Applicatienaam ongeldig; ongedefinieerd of te lang'; - v_applicatienaam := TRIM (v_applicatienaam); - - IF v_applicatienaam IS NULL OR LENGTH (v_applicatienaam) > 100 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := - 'Autorisatieproces ongeldig; ongedefinieerd of te lang'; - v_aut_proces := TRIM (v_aut_proces); - - IF v_aut_proces IS NULL OR LENGTH (v_aut_proces) > 1 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Beheerder-type ongeldig; ongedefinieerd'; - v_beh_type := TRIM (v_beh_type); - - IF UPPER (v_beh_type) != 'FB' AND UPPER (v_beh_type) != 'KEY' - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Beheerder-mail ongeldig'; - v_beh_mail := TRIM (v_beh_mail); - - IF UPPER (v_beh_type) = 'FB' OR UPPER (v_beh_type) = 'KEY' - THEN - IF v_beh_mail IS NULL OR LENGTH (v_beh_org) > 60 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - ELSE - IF v_ongeldig = 0 AND LENGTH (v_beh_mail) > 0 - THEN - v_beh_mail := NULL; - fac.imp_writelog (p_import_key, - 'I', - v_aanduiding || v_errormsg, - 'Beheerder-mail wordt genegeerd'); - END IF; - END IF; - - -- - v_errormsg := 'Beheerder-organisatie ongeldig'; - v_beh_org := TRIM (v_beh_org); - - IF UPPER (v_beh_type) = 'KEY' - THEN - IF v_beh_org IS NULL OR LENGTH (v_beh_org) > 10 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - ELSE - IF v_ongeldig = 0 AND LENGTH (v_beh_org) > 0 - THEN - v_beh_org := NULL; - fac.imp_writelog (p_import_key, - 'I', - v_aanduiding || v_errormsg, - 'Beheerder-organisatie wordt genegeerd'); - END IF; - END IF; - - -- - v_errormsg := 'Webbased-eigenschap ongeldig; ongedefinieerd of te lang'; - v_webbased := TRIM (v_webbased); - - IF v_webbased IS NULL OR LENGTH (v_webbased) > 1 - THEN - v_ongeldig := 1; - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Regel wordt overgeslagen!'); - END IF; - - -- - v_errormsg := 'Vervaldatum ongeldig'; - v_vervaldatum := TRIM (v_vervaldatum); - v_vervaldatum_d := fac.safe_to_date (v_vervaldatum, 'dd-mm-yyyy'); - - IF v_vervaldatum IS NOT NULL AND v_vervaldatum_d IS NULL - THEN - fac.imp_writelog (p_import_key, - 'W', - v_aanduiding || v_errormsg, - 'Vervaldatum wordt genegeerd'); - END IF; - - -- Insert geformatteerde import record - IF v_ongeldig = 0 - THEN - BEGIN - v_errormsg := 'Fout wegschrijven importregel'; - - INSERT INTO rwsn_imp_appl (spiv_domein, - applicatiecode, - applicatienaam, - aut_proces, - beh_type, - beh_mail, - beh_org, - webbased, - vervaldatum) - VALUES (v_spiv_domein, - v_applicatiecode, - v_applicatienaam, - v_aut_proces, - v_beh_type, - v_beh_mail, - v_beh_org, - v_webbased, - v_vervaldatum_d); - - 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', - 'DID-applicaties/#ingelezen importregels: ' - || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'DID-applicaties/#ongeldige niet ingelezen importregels: ' - || TO_CHAR (v_count_tot - v_count_import), - '' - ); - END IF; - - COMMIT; -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 DID-applicaties afgebroken!'); -END rwsn_import_appl; -/ - -/* Formatted on 12-12-2013 15:52:25 (QP5 v5.115.810.9015) */ -CREATE OR REPLACE PROCEDURE rwsn_update_appl (p_import_key IN NUMBER) -AS - c_appl_discipline NUMBER (10) := 2361; - c_aut_proces_srtkey NUMBER (10) := 101; - c_webbased_srtkey NUMBER (10) := 102; - c_fb1_srtkey NUMBER (10) := 103; - c_fb2_srtkey NUMBER (10) := 104; - c_fb3_srtkey NUMBER (10) := 105; - c_min_key_srtkey NUMBER (10) := 121; -- Keyuser1 NN - c_max_key_srtkey NUMBER (10) := 195; -- Keyuser5 RvR - v_errormsg VARCHAR2 (1000) := '-'; - oracle_err_num NUMBER; - oracle_err_mes VARCHAR2 (200); - v_aanduiding VARCHAR2 (200); - - -- SUBPROC - PROCEDURE add_srtgroep (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT UPPER (spiv_domein) spiv_domein_upper, - MAX (spiv_domein) spiv_domein - FROM rwsn_imp_appl - GROUP BY UPPER (spiv_domein) - ORDER BY 1; - - v_count_tot NUMBER (10); - v_count_new NUMBER (10); - v_discipline_key NUMBER (10); - ccount NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_new := 0; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_errormsg := 'Fout bepalen INS-discipline [' || TO_CHAR (c_appl_discipline) || ']'; - - 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 = c_appl_discipline; - - v_errormsg := 'Fout toevoegen SPIV-domein [' || rec.spiv_domein || ']'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_srtgroep - WHERE ins_discipline_key = v_discipline_key - AND UPPER (TRIM (ins_srtgroep_omschrijving)) = - rec.spiv_domein_upper; - - IF (ccount = 0) - THEN - INSERT INTO ins_srtgroep ( - ins_discipline_key, - ins_srtgroep_module, - ins_srtgroep_omschrijving - ) - VALUES (v_discipline_key, 'INS', rec.spiv_domein); - - v_count_new := v_count_new + 1; - ELSE -- Reanimeer eventueel verwijderde groep! - UPDATE ins_srtgroep - SET ins_srtgroep_verwijder = NULL - WHERE ins_srtgroep_verwijder IS NOT NULL - AND ins_discipline_key = v_discipline_key - AND UPPER (TRIM (ins_srtgroep_omschrijving)) = - rec.spiv_domein_upper; - END IF; - - COMMIT; - 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', - 'SPIV-domeinen/#ingelezen: ' || TO_CHAR (v_count_tot), - '' - ); - fac.imp_writelog ( - p_import_key, - 'S', - 'SPIV-domeinen/#toegevoegd: ' || TO_CHAR (v_count_new), - '' - ); - COMMIT; - END; - - -- SUBPROC - PROCEDURE upsert_inskenmerk (p_srtdeel_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_objectnaam VARCHAR2 (30); - v_kolomnaam VARCHAR2 (30); - v_kolomtxt VARCHAR2 (30); - sql_stmt VARCHAR2 (1000); - v_new_waarde VARCHAR2 (1000); - v_kenmerkdeel_key NUMBER; - v_cur_waarde VARCHAR2 (4000); - BEGIN - v_errormsg := 'Fout bepalen D-kenmerksoort [' || p_srtkenmerk_key || ']'; - - SELECT k.ins_kenmerk_key, sk.ins_srtkenmerk_kenmerktype - INTO v_kenmerk_key, v_srtkenmerk_type - FROM ins_srtdeel sd, - ins_srtgroep sg, - ins_v_aanwezigkenmerk k, - ins_v_aanwezigsrtkenmerk sk - WHERE sd.ins_srtdeel_key = p_srtdeel_key - AND sd.ins_srtgroep_key = sg.ins_srtgroep_key - AND k.ins_srtkenmerk_key = p_srtkenmerk_key - AND k.ins_srtinstallatie_key = sg.ins_discipline_key - AND k.ins_kenmerk_niveau = 'D' - AND k.ins_kenmerk_bewerkniveau = 'S' - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key; - - IF (v_srtkenmerk_type IN ('R', 'S') AND p_waarde IS NOT NULL) - 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; p_waarde is code! - SELECT TO_CHAR (ud.fac_usrdata_key) - INTO v_new_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); - ELSE -- FACILITOR view/tabel; p_waarde is omschrijving! - 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 (''' - || p_waarde - || ''')'; - - EXECUTE IMMEDIATE sql_stmt INTO v_new_waarde; - END IF; - ELSE -- C(haracter)/D(ate)/N(umeric) - v_new_waarde := p_waarde; - END IF; - - v_errormsg := 'Fout bepalen huidige waarde'; - - SELECT COUNT ( * ), - MAX (ins_kenmerkdeel_key), - MAX (ins_kenmerkdeel_waarde) - INTO ccount, v_kenmerkdeel_key, v_cur_waarde - FROM ins_v_aanwezigkenmerkdeel - WHERE ins_deel_key = p_srtdeel_key - AND ins_kenmerk_key = v_kenmerk_key; - - IF (ccount = 0) - THEN - IF (v_new_waarde IS NOT NULL) - THEN - v_errormsg := 'Fout toevoegen waarde [' || v_new_waarde || ']'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (p_srtdeel_key, v_kenmerk_key, v_new_waarde); - - COMMIT; - END IF; - ELSIF (COALESCE (v_cur_waarde, -1) <> COALESCE (v_new_waarde, -1)) - THEN - IF (v_new_waarde IS NOT NULL) - THEN - v_errormsg := 'Fout bijwerken waarde [' || v_new_waarde || ']'; - - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_waarde = v_new_waarde - WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; - ELSE -- v_new_waarde IS NULL - v_errormsg := 'Fout verwijderen waarde [' || v_cur_waarde || ']'; - - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_verwijder = SYSDATE - WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key; - END IF; - - COMMIT; - 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'); - END; - - -- SUBPROC - -- Aanmaken/bijwerken applicaties (incl. aut.proces + webbased)! - PROCEDURE upd_srtdeel (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT DISTINCT - spiv_domein, - applicatiecode, - applicatienaam, - aut_proces aut_proc_code, -- '0' t/m '4' - DECODE (UPPER (webbased), 'J', 1, 'N', 0, NULL) - webbased_code, - vervaldatum - FROM rwsn_imp_appl - ORDER BY 1, 2, 3; - - v_discipline_key NUMBER (10); - v_srtgroep_key NUMBER (10); - v_srtdeel_key NUMBER (10); - ccount NUMBER (10); - v_count_tot NUMBER (10); - v_count_new NUMBER (10); - v_count_upd NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_new := 0; - v_count_upd := 0; - v_aanduiding := ''; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := - '[' - || rec.spiv_domein - || '|' - || rec.applicatiecode - || '|' - || rec.applicatienaam - || '] '; - v_errormsg := 'Fout bepalen INS-discipline [' || TO_CHAR (c_appl_discipline) || ']'; - - 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 = c_appl_discipline; - - v_errormsg := 'Fout bepalen SPIV-domein'; - - 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.spiv_domein); - - -- Applicaties hebben unieke code/naam per SPIV-domein??? - -- In FACILITOR naam leidend/uniek en in Troux code leidend/uniek, - -- dus wat te doen? -> Als 1 of meer namen per code voorkomen, dan - -- accepteren wij maar dat dit fouten tot gevolg heeft! - v_errormsg := 'Fout (uniek) bepalen applicatie'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_srtdeel - WHERE ins_srtdeel_module = 'INS' - AND ins_srtgroep_key = v_srtgroep_key - --AND UPPER (TRIM (ins_srtdeel_omschrijving)) = - -- UPPER (rec.applicatienaam) - AND TRIM (ins_srtdeel_code_upper) = - UPPER (rec.applicatiecode); - - IF (ccount = 0) - THEN - v_errormsg := 'Fout toevoegen applicatie'; - - -- Binding 16 betekent persoonsgebonden (Persoon-vinkje)! - INSERT INTO ins_srtdeel (ins_srtgroep_key, - ins_srtdeel_module, - ins_srtdeel_code, - ins_srtdeel_omschrijving, - ins_srtdeel_binding, - ins_srtdeel_vervaldatum) - VALUES (v_srtgroep_key, - 'INS', - UPPER (rec.applicatiecode), - rec.applicatienaam, - 16, - rec.vervaldatum) - RETURNING ins_srtdeel_key INTO v_srtdeel_key; - - COMMIT; - - --v_srtnoti_code := 'INSNEW'; - v_count_new := v_count_new + 1; - ELSE -- Objectsoort bestaat reeds en reanimeer eventueel! - SELECT MAX (ins_srtdeel_key) - INTO v_srtdeel_key - FROM ins_srtdeel - WHERE ins_srtdeel_module = 'INS' - AND ins_srtgroep_key = v_srtgroep_key - --AND UPPER (TRIM (ins_srtdeel_omschrijving)) = - -- UPPER (rec.applicatienaam) - AND TRIM (ins_srtdeel_code_upper) = - UPPER (rec.applicatiecode); - - v_errormsg := 'Fout bijwerken applicatie'; - - UPDATE ins_srtdeel - SET ins_srtdeel_verwijder = NULL, - ins_srtdeel_omschrijving = rec.applicatienaam, - ins_srtdeel_vervaldatum = rec.vervaldatum - WHERE ins_srtdeel_key = v_srtdeel_key; - - COMMIT; - - --v_srtnoti_code := 'INSUPD'; - v_count_upd := v_count_upd + 1; - END IF; - - upsert_inskenmerk (v_srtdeel_key, - c_aut_proces_srtkey, - rec.aut_proc_code); - upsert_inskenmerk (v_srtdeel_key, - c_webbased_srtkey, - rec.webbased_code); - 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', - 'Applicaties/#ingelezen: ' || TO_CHAR (v_count_tot), - ''); - fac.imp_writelog (p_import_key, - 'S', - 'Applicaties/#toegevoegd: ' || TO_CHAR (v_count_new), - ''); - fac.imp_writelog (p_import_key, - 'S', - 'Applicaties/#bijgewerkt: ' || TO_CHAR (v_count_upd), - ''); - COMMIT; - END; - - -- SUBPROC - PROCEDURE insert_FB (p_srtdeel_key IN NUMBER, p_beh_mail IN VARCHAR2) - AS - v_perslid_key NUMBER; - v_kenmerk_key NUMBER; - BEGIN - -- Bepalen fb-user op basis van e-mail. - v_errormsg := 'Fout bepalen fb-user [' || p_beh_mail || ']'; - - SELECT prs_perslid_key - INTO v_perslid_key - FROM prs_v_aanwezigperslid - WHERE INSTR (UPPER (prs_perslid_email), UPPER (p_beh_mail)) > 0 - AND prs_perslid_oslogin IS NOT NULL; - - -- Bepalen eerstvrije=niet gevulde fb-veld (max. 3). - v_errormsg := 'Fout bepalen fb-veld'; - - SELECT MIN (ins_kenmerk_key) eerstvrije - INTO v_kenmerk_key - FROM (SELECT k.ins_kenmerk_key - FROM ins_v_aanwezigkenmerk k, ins_srtkenmerk sk - WHERE k.ins_kenmerk_bewerkniveau = 'S' - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key - AND sk.ins_srtkenmerk_key IN - (c_fb1_srtkey, c_fb2_srtkey, c_fb3_srtkey) - MINUS - SELECT k.ins_kenmerk_key - FROM ins_v_aanwezigkenmerkdeel kd, - ins_v_aanwezigkenmerk k, - ins_srtkenmerk sk - WHERE kd.ins_deel_key = p_srtdeel_key - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_kenmerk_bewerkniveau = 'S' - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key - AND sk.ins_srtkenmerk_key IN - (c_fb1_srtkey, c_fb2_srtkey, c_fb3_srtkey)); - - -- Toevoegen (vullen) key-veldwaarde met fb-user. - v_errormsg := 'Fout toevoegen fb-veldwaarde'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (p_srtdeel_key, v_kenmerk_key, v_perslid_key); - - COMMIT; - --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, - -- 'insert_FB'); - END; - - -- SUBPROC - PROCEDURE insert_KEY (p_srtdeel_key IN NUMBER, - p_beh_mail IN VARCHAR2, - p_beh_org IN VARCHAR2) - AS - v_perslid_key NUMBER; - v_kenmerk_key NUMBER; - BEGIN - -- Bepalen key-user op basis van e-mail. - v_errormsg := 'Fout bepalen key-user [' || p_beh_mail || ']'; - - SELECT prs_perslid_key - INTO v_perslid_key - FROM prs_v_aanwezigperslid - WHERE INSTR (UPPER (prs_perslid_email), UPPER (p_beh_mail)) > 0 - AND prs_perslid_oslogin IS NOT NULL; - - -- Bepalen eerstvrije=niet gevulde key-veld voor onderdeel (max. 5). - v_errormsg := 'Fout bepalen key-veld [' || p_beh_org || ']'; - - SELECT MIN (ins_kenmerk_key) eerstvrije - INTO v_kenmerk_key - FROM (SELECT k.ins_kenmerk_key - FROM ins_v_aanwezigkenmerk k, ins_srtkenmerk sk - WHERE k.ins_kenmerk_bewerkniveau = 'S' - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key - AND sk.ins_srtkenmerk_key BETWEEN c_min_key_srtkey - AND c_max_key_srtkey - AND UPPER (TRIM (sk.ins_srtkenmerk_omschrijving)) LIKE - '%' || p_beh_org - MINUS - SELECT k.ins_kenmerk_key - FROM ins_v_aanwezigkenmerkdeel kd, - ins_v_aanwezigkenmerk k, - ins_srtkenmerk sk - WHERE kd.ins_deel_key = p_srtdeel_key - AND kd.ins_kenmerk_key = k.ins_kenmerk_key - AND k.ins_kenmerk_bewerkniveau = 'S' - AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key - AND sk.ins_srtkenmerk_key BETWEEN c_min_key_srtkey - AND c_max_key_srtkey - AND UPPER (TRIM (sk.ins_srtkenmerk_omschrijving)) LIKE - '%' || p_beh_org); - - -- Toevoegen (vullen) key-veldwaarde met key-user voor onderdeel. - v_errormsg := 'Fout toevoegen key-veldwaarde'; - - INSERT INTO ins_kenmerkdeel ( - ins_deel_key, - ins_kenmerk_key, - ins_kenmerkdeel_waarde - ) - VALUES (p_srtdeel_key, v_kenmerk_key, v_perslid_key); - - COMMIT; - --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, - -- 'insert_KEY'); - END; - - -- SUBPROC - -- Bijwerken beheerders! - PROCEDURE upd_beheerder (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT DISTINCT spiv_domein, - applicatiecode, - applicatienaam, - beh_type, - beh_mail, - beh_org - FROM rwsn_imp_appl - WHERE beh_type = 'FB' OR beh_type = 'KEY' - ORDER BY 1, 2, 3; - - v_errorhint VARCHAR2 (1000) := '-'; - v_discipline_key NUMBER (10); - v_srtgroep_key NUMBER (10); - v_srtdeel_key NUMBER (10); - ccount NUMBER (10); - v_count_tot NUMBER (10); - v_count_upd NUMBER (10); - BEGIN - v_count_tot := 0; - v_count_upd := 0; - v_aanduiding := ''; - - -- Verwijder -elke import opnieuw- alle beheerders (FB + KEY) en maak de - -- mogelijk gewijzigde set beheerders vervolgens weer aan! - -- Aanname: Import buiten werktijd ('s nachts) om samenloop te voorkomen - -- met notificaties en goedkeuring/afwijzing van opdrachten. - v_errormsg := 'Fout verwijderen beheerders (huidige)'; - - SELECT COUNT ( * ) - INTO ccount - FROM ins_kenmerkdeel - WHERE ins_kenmerk_key IN - (SELECT ins_kenmerk_key - FROM ins_kenmerk - WHERE ins_kenmerk_bewerkniveau = 'S' - AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey - AND c_max_key_srtkey); - - --DELETE FROM ins_kenmerkdeel - -- WHERE ins_kenmerkdeel_verwijder IS NULL - -- AND ins_kenmerk_key IN - -- (SELECT ins_kenmerk_key - -- FROM ins_kenmerk - -- WHERE ins_kenmerk_bewerkniveau = 'S' - -- AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey - -- AND c_max_key_srtkey); - UPDATE ins_kenmerkdeel - SET ins_kenmerkdeel_verwijder = SYSDATE - WHERE ins_kenmerkdeel_verwijder IS NULL - AND ins_kenmerk_key IN - (SELECT ins_kenmerk_key - FROM ins_kenmerk - WHERE ins_kenmerk_bewerkniveau = 'S' - AND ins_srtkenmerk_key BETWEEN c_fb1_srtkey - AND c_max_key_srtkey); - - fac.imp_writelog (p_import_key, - 'S', - 'Beheerders/#verwijderd: ' || TO_CHAR (ccount), - ''); - COMMIT; - - FOR rec IN c1 - LOOP - BEGIN - v_count_tot := v_count_tot + 1; - v_aanduiding := - '[' - || rec.spiv_domein - || '|' - || rec.applicatiecode - || '|' - || rec.applicatienaam - || '] '; - v_errormsg := 'Fout bepalen INS-discipline [' || TO_CHAR (c_appl_discipline) || ']'; - - 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 = c_appl_discipline; - - v_errormsg := 'Fout bepalen SPIV-domein'; - - 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.spiv_domein); - - v_errormsg := 'Fout (uniek) bepalen applicatie'; - - 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.applicatienaam); - - IF (rec.beh_type = 'FB') - THEN - v_errorhint := 'insert_FB'; - insert_FB (v_srtdeel_key, rec.beh_mail); - ELSE - v_errorhint := 'insert_KEY'; - insert_KEY (v_srtdeel_key, rec.beh_mail, rec.beh_org); - END IF; - - v_count_upd := v_count_upd + 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', - 'Beheerders/#ingelezen: ' || TO_CHAR (v_count_tot), - ''); - fac.imp_writelog (p_import_key, - 'S', - 'Beheerders/#toegevoegd: ' || TO_CHAR (v_count_upd), - ''); - COMMIT; - END; - - -- SUBPROC - -- Verwijderen applicaties (incl. alle gegevens???) op basis van code! - -- Wat met lopende ICT aanvragen? Voorstel om in view op applicaties, de - -- verwijderde applicaties te prefixen met 'VERVALLEN:'? - PROCEDURE del_srtdeel (p_import_key IN NUMBER) - AS - CURSOR c1 - IS - SELECT sg.ins_srtgroep_omschrijving, - sd.ins_srtdeel_code, - sd.ins_srtdeel_omschrijving, - sd.ins_srtdeel_key - FROM ins_v_aanwezigsrtgroep sg, ins_v_aanwezigsrtdeel sd - WHERE sg.ins_discipline_key = c_appl_discipline - AND sg.ins_srtgroep_key = sd.ins_srtgroep_key - AND NOT EXISTS - (SELECT 1 - FROM rwsn_imp_appl - WHERE UPPER (spiv_domein) = - TRIM (sg.ins_srtgroep_upper) - --AND UPPER (applicatienaam) = - -- TRIM (sd.ins_srtdeel_upper)) - AND UPPER (applicatiecode) = - TRIM (sd.ins_srtdeel_code_upper)) - ORDER BY 1, 2, 3; - - v_count_del NUMBER (10); - BEGIN - v_count_del := 0; - v_aanduiding := ''; - - FOR rec IN c1 - LOOP - BEGIN - v_aanduiding := - '[' - || rec.ins_srtgroep_omschrijving - || '|' - || rec.ins_srtdeel_omschrijving - || '] '; - v_errormsg := 'Fout verwijderen applicatie'; - - --DELETE FROM ins_srtdeel WHERE ins_srtdeel_key = rec.ins_srtdeel_key; - UPDATE ins_srtdeel - SET ins_srtdeel_vervaldatum = - DECODE (ins_srtdeel_vervaldatum, - NULL, SYSDATE, - ins_srtdeel_vervaldatum), - ins_srtdeel_verwijder = SYSDATE - WHERE ins_srtdeel_key = rec.ins_srtdeel_key; - - --UPDATE ins_kenmerkdeel kd - -- SET kd.ins_kenmerkdeel_verwijder = SYSDATE - -- WHERE kd.ins_kenmerkdeel_verwijder IS NULL - -- AND kd.ins_deel_key = rec.ins_srtdeel_key - -- AND EXISTS - -- (SELECT 1 - -- FROM ins_kenmerk - -- WHERE ins_kenmerk_key = kd.ins_kenmerk_key - -- AND ins_kenmerk_bewerkniveau = 'S'); - - COMMIT; - - v_count_del := v_count_del + 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', - 'Applicaties/#verwijderd: ' || TO_CHAR (v_count_del), - '' - ); - COMMIT; - END; --- MAIN -BEGIN - add_srtgroep (p_import_key); - upd_srtdeel (p_import_key); - upd_beheerder (p_import_key); - del_srtdeel (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 DID-applicaties afgebroken!'); -END rwsn_update_appl; -/ - - -- RWSN#33267 Import werkplekken (4e variant van een object-import tbv. RWS, -- maar - helaas - net weer anders dan CMDB, INS en APPL). /* Formatted on 30-9-2015 10:44:14 (QP5 v5.136.908.31019) */