FSN#53955 PERSLID-import optimalisatie

svn path=/Customer/trunk/; revision=38743
This commit is contained in:
Maarten van der Heide
2018-08-07 13:58:30 +00:00
parent b5b8d5905a
commit 96cc8b6e9d

View File

@@ -3,7 +3,7 @@
--
-- Script containing customer specific db-configuration for BSSC.
DEFINE thisfile = 'BSSC.SQL'
DEFINE dbuser = '^BLCC'
DEFINE dbuser = '^BSSC'
SET ECHO ON
SET DEFINE ON
@@ -79,9 +79,9 @@ BEGIN
'0;0;0;0;0;0;3;4;5;6;'
|| '0;0;0;0;10;7;8;9;0;0;'
|| '11;1;2;0;0;0;12;13;14;15;'
|| '16;17;18;0;0;0;0;0;0;0;'
|| '16;17;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'Loginnaam;Wachtwoord;Afdelingscode;Achternaam;Tussenvoegsel;Voornaam;Telefoon;Mobiel;Email;Geslacht;Functie;Taal;SSC FOBO;SSC Digireceptiemedewerker;SSC Huurderadministrator%');
'Loginnaam;Wachtwoord;Afdelingscode;Achternaam;Tussenvoegsel;Voornaam;Telefoon;Mobiel;Email;Geslacht;Functie;Taal;SSC FOBO;SSC Digireceptiemedewerker;SSC Huurderadministrator;SSC Bezoekersparkeerplaats;SSC Etage 4%');
-- Klantspecifieke aanpassingen.
EXCEPTION
@@ -143,7 +143,9 @@ AS
CURSOR c_rol (
p_ssc_fobo_key IN NUMBER,
p_ssc_dmedew_key IN NUMBER,
p_ssc_hadmin_key IN NUMBER)
p_ssc_hadmin_key IN NUMBER,
p_ssc_bezprk_key IN NUMBER,
p_ssc_etage4_key IN NUMBER)
IS
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk2), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_fobo_key fac_groep_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
@@ -162,13 +164,25 @@ AS
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
UNION ALL
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk5), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_bezprk_key fac_groep_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
UNION ALL
SELECT p.prs_perslid_key, DECODE (UPPER (i.prs_kenmerk6), 'J', 1, 'Y', 1, 0) aanuit, p_ssc_etage4_key fac_groep_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
UNION ALL -- Afnemen _Default
SELECT p.prs_perslid_key, 0 aanuit, 1 fac_groep_key -- _Default
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
WHERE p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
UNION ALL -- Toewijzen SSC FE (LABS-key=241 en PROD-key=321)
UNION ALL -- Toewijzen SSC FE
SELECT p.prs_perslid_key, 1 aanuit, 321 fac_groep_key -- SSC FE
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i
WHERE p.prs_afdeling_key = a.prs_afdeling_key
@@ -176,10 +190,25 @@ AS
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
ORDER BY 1, 3;
c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie (LABS-key=2243 en PROD-key=2204)
c_ssc_fobo_key NUMBER := 341; -- SSC FOBO (LABS-key=241 en PROD-key=341)
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
CURSOR c_vlan
IS
SELECT p.prs_perslid_key, fac.safe_to_number (ud.fac_usrdata_upper) fac_groep_key
FROM prs_v_aanwezigperslid p, prs_afdeling a, fac_imp_perslid i, fac_v_aanwezigusrdata ud
WHERE 1 = 1 -- TRUNC (p.prs_perslid_aanmaak) = TRUNC (SYSDATE)
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_upper = UPPER (i.prs_afdeling_naam)
AND UPPER (p.prs_perslid_oslogin) = UPPER (i.prs_perslid_oslogin)
AND a.prs_afdeling_upper = UPPER (ud.fac_usrdata_omschr)
AND EXISTS (SELECT 1 FROM fac_groep WHERE TO_CHAR (fac_groep_key) = ud.fac_usrdata_code)
ORDER BY 1;
c_ruimte_key NUMBER := 2204; -- Fictieve ruimte op SSCH-locatie
c_ssc_fobo_key NUMBER := 341; -- SSC FOBO
c_ssc_dmedew_key NUMBER := 361; -- SSC Digireceptiemedewerker
c_ssc_hadmin_key NUMBER := 362; -- SSC Huurderadministrator
c_ssc_bezprk_key NUMBER := 1721; -- SSC Bezoekersparkeerplaats
c_ssc_etage4_key NUMBER := 1482; -- SSC Etage 4
v_bedrijf_key NUMBER (10) := -1;
v_afdeling_naam VARCHAR2 (15) := '';
BEGIN
@@ -192,7 +221,7 @@ BEGIN
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_afdeling_key = ab.prs_afdeling_key;
IF v_bedrijf_key IN (1981, 2442) -- LABS-key+PROD-key van Huurders SSC-bedrijf; TODO: LABS-key nog een keer verwijderen!
IF v_bedrijf_key = 2442 -- Huurders SSC-bedrijf!
THEN -- Import door Huurderadministrator!
UPDATE fac_imp_perslid
SET prs_afdeling_naam = v_afdeling_naam;
@@ -236,7 +265,7 @@ BEGIN
COMMIT;
-- Bijwerken autorisatiegroepen van personen (volgens importbestand)!
FOR rec IN c_rol (c_ssc_fobo_key, c_ssc_dmedew_key, c_ssc_hadmin_key)
FOR rec IN c_rol (c_ssc_fobo_key, c_ssc_dmedew_key, c_ssc_hadmin_key, c_ssc_bezprk_key, c_ssc_etage4_key)
LOOP
IF rec.aanuit = 1
THEN
@@ -254,10 +283,23 @@ BEGIN
AND prs_perslid_key = rec.prs_perslid_key;
END IF;
END LOOP;
-- Toekennen VLAN-autorisatiegroep (volgens eigen tabel met key=481)!
-- NB. VLAN-autorisatiegroep wordt nooit automatisch afgenomen!
FOR rec IN c_vlan
LOOP
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT rec.fac_groep_key, rec.prs_perslid_key
FROM DUAL
WHERE NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = rec.fac_groep_key
AND prs_perslid_key = rec.prs_perslid_key);
END LOOP;
END bssc_update_perslid;
/
/* Formatted on 7-6-2016 13:24:42 (QP5 v5.136.908.31019) */
CREATE OR REPLACE VIEW bssc_v_autorisatiegroepen
(
fac_groep_key,