MNNL#78061 PRS-import/Uitbreiden met P-kolom

svn path=/Customer/trunk/; revision=68565
This commit is contained in:
Maarten van der Heide
2025-03-27 13:45:45 +00:00
parent 1b839c3257
commit 46692139b9

View File

@@ -188,11 +188,11 @@ BEGIN
prs.import_perslid (p_import_key,
'8;0;0;0;0;0;5;4;0;3;' || -- Locatiecode=8/Email=6/Afdeling=5/Achternaam=4/Voornaam=3
'0;0;0;0;0;7;0;6;0;10;' || -- Telefoon=7/Email=6/Personeelsnummer=10
'3;1;0;0;0;0;0;0;0;0;' || -- Functie=3/Login=1
'3;1;0;0;0;0;11;0;0;0;' || -- Functie=3/Login=1/Woon-Werk-afstand=11
'0;0;0;0;0;0;0;0;0;0;' ||
'0;0;0;0;0;0',
--1 2 3 4 5 6 7 8
'"sAMAccountName";"name";"givenname";"sn";"department";"mail";"telephoneNumber";"L"%' -- Daarna nog ;"Company";"EmployeeID"
--1 2 3 4 5 6 7 8 9 10 11
'"sAMAccountName";"name";"givenname";"sn";"department";"mail";"telephoneNumber";"L"%' -- Daarna nog ;"Company";"EmployeeID";"WW"
);
v_errorhint := 'Verrijken import';
@@ -272,6 +272,14 @@ END mnnl_import_prs;
CREATE OR REPLACE PROCEDURE mnnl_update_prs (p_import_key IN NUMBER)
IS
c_ww_kkey NUMBER (10) := 1000; -- 'Woon-Werk-afstand'-kenmerk!
c_pp_gkey NUMBER (10) := 2461; -- 'Reserveer parkeerplek'-autorisatiegroep!
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
-- Verwijderen personen *binnen MN* die niet meer in importbestand voorkomen.
CURSOR c_del
IS
@@ -286,6 +294,21 @@ IS
WHERE UPPER (prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
ORDER BY 1;
-- Bijwerken Woon-Werk-afstand (= kenmerk1).
CURSOR c_prs
IS
SELECT '[' || TO_CHAR (x.prs_perslid_key) || '|' || x.prs_perslid_oslogin || '] ' aanduiding,
x.prs_perslid_key, kl.prs_kenmerklink_key, ROUND (fac.safe_to_number (x.prs_kenmerk1), 2) afstand_ww
FROM fac_imp_perslid x,
prs_v_aanwezigperslid p,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
WHERE fac.safe_to_number (x.prs_kenmerk1) IS NOT NULL
AND x.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_inactief IS NULL
AND p.prs_perslid_key = kl.prs_link_key(+)
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) != fac.safe_to_number (x.prs_kenmerk1) -- Afstand gewijzigd?
ORDER BY 2;
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
CURSOR c_no_default
IS
@@ -303,12 +326,6 @@ IS
AND TO_CHAR (p.prs_afdeling_key) = ud.fac_usrdata_code
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- ' tbv. opmaak
ORDER BY 2;
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
BEGIN
-- Generic update
SELECT COUNT(*) INTO v_count FROM fac_imp_perslid;
@@ -348,6 +365,69 @@ BEGIN
FROM fac_imp_perslid
WHERE UPPER (prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin));
-- Bijwerken extra persoonsvelden (niet ondersteund door standaard import).
v_count := 0;
FOR rec IN c_prs
LOOP
BEGIN
--IF rec.prs_kenmerklink_key IS NULL
--THEN
-- v_errorhint := 'Fout toevoegen Woon-Werk-afstand';
-- INSERT INTO prs_kenmerklink (prs_link_key, prs_kenmerklink_niveau, prs_kenmerk_key, prs_kenmerklink_waarde)
-- VALUES (rec.prs_perslid_key, 'P', c_ww_kkey, TO_CHAR (rec.afstand_ww));
--ELSE
-- v_errorhint := 'Fout bijwerken Woon-Werk-afstand';
-- UPDATE prs_kenmerklink
-- SET prs_kenmerklink_waarde = TO_CHAR (rec.afstand_ww)
-- WHERE prs_kenmerklink_key = rec.prs_kenmerklink_key;
--END IF;
v_errorhint := 'Fout bijwerken Woon-Werk-afstand';
prs.upsertkenmerk (c_ww_kkey, rec.prs_perslid_key, TO_CHAR (rec.afstand_ww)); -- Woon-Werk-afstand
v_count := v_count + 1;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key, 'S', 'Woon-Werk/#bijgewerkt: ' || TO_CHAR (v_count), '');
/*
-- Afnemen PP-autorisatiegroep als geldt woon-werk-afstand <8km!
v_errorhint := 'Fout afnemen PP-autorisatiegroep';
DELETE FROM fac_gebruikersgroep gg
WHERE gg.fac_groep_key = c_pp_gkey -- PP-autorisatiegroep
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 5 -- MN
AND p.prs_perslid_key = kl.prs_link_key(+)
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) < 8
AND p.prs_perslid_key = gg.prs_perslid_key);
-- Toekennen PP-autorisatiegroep als geldt woon-werk-afstand >=8km!
v_errorhint := 'Fout toekennen PP-autorisatiegroep';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT c_pp_gkey, p.prs_perslid_key -- PP-autorisatiegroep
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab,
(SELECT * FROM prs_v_aanwezigkenmerklink WHERE prs_kenmerk_key = c_ww_kkey) kl
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 5 -- MN
AND p.prs_perslid_key = kl.prs_link_key(+)
AND COALESCE (fac.safe_to_number (kl.prs_kenmerklink_waarde), -1) >= 8
AND NOT EXISTS -- Niet al in PP-autorisatiegroep!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = c_pp_gkey -- PP-autorisatiegroep
AND prs_perslid_key = p.prs_perslid_key);
*/
-- Afnemen 2101=_Default_VB van medewerkers niet onder VB (op niveau 1)!
v_errorhint := 'Fout afnemen _Default_VB';
@@ -435,11 +515,11 @@ BEGIN
AND prs_perslid_key = p.prs_perslid_key);
COMMIT;
-- Afnemen 2343=_Default_FRS & EC van medewerkers niet onder FRS of EC (op niveau 1)!
v_errorhint := 'Fout afnemen _Default_FRS & EC';
-- Afnemen 2343=_Default_FRS + EC van medewerkers niet onder FRS of EC (op niveau 1)!
v_errorhint := 'Fout afnemen _Default_FRS + EC';
DELETE FROM fac_gebruikersgroep gg
WHERE gg.fac_groep_key = 2343 -- _Default_FRS & EC
WHERE gg.fac_groep_key = 2343 -- _Default_FRS + EC
AND EXISTS
(SELECT 1
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
@@ -448,19 +528,19 @@ BEGIN
AND p.prs_perslid_key = gg.prs_perslid_key);
COMMIT;
-- Toekennen 2343=_Default_FRS & EC aan medewerkers onder FRS of EC (op niveau 1)!
v_errorhint := 'Fout toekennen _Default_FRS & EC';
-- Toekennen 2343=_Default_FRS + EC aan medewerkers onder FRS of EC (op niveau 1)!
v_errorhint := 'Fout toekennen _Default_FRS + EC';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
SELECT 2343, p.prs_perslid_key -- _Default_FRS & EC
SELECT 2343, p.prs_perslid_key -- _Default_FRS + EC
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_oslogin IS NOT NULL
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 IN (1061, 1041) -- Afdeling-1 met code=FRS of EC!
AND NOT EXISTS -- Niet al in _Default_FRS & EC!
AND NOT EXISTS -- Niet al in _Default_FRS + EC!
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 2343 -- _Default_FRS & EC
WHERE fac_groep_key = 2343 -- _Default_FRS + EC
AND prs_perslid_key = p.prs_perslid_key);
COMMIT;
@@ -471,7 +551,7 @@ BEGIN
v_errorhint := 'Fout afnemen _Default(s)';
DELETE FROM fac_gebruikersgroep
WHERE fac_groep_key IN (1, 2101, 2341, 2342, 2343) -- _Default/_Default_VB/_Default_IV/_Default_PV/_Default_FRS & EC
WHERE fac_groep_key IN (1, 2101, 2341, 2342, 2343) -- _Default/_Default_VB/_Default_IV/_Default_PV/_Default_FRS + EC
AND prs_perslid_key = rec.prs_perslid_key;
EXCEPTION
WHEN OTHERS
@@ -4121,7 +4201,7 @@ END mnnl_update_eua;
/
-- MNNL#69794: CERT-import (CERTificaten)!
-- Title;CommonName;Beheerteam (Facilitor);Aanvrager;Installateur;EindDatum;Omgeving;Uitgever;Product;Definition;Omschrijving certificaat
-- "Title";"CommonName";"Beheerteam (Facilitor)";"Aanvrager";"Installateur";"EindDatum";"Product";"Omgeving";"Uitgever";"Definition";"Omschrijving certificaat"
CREATE OR REPLACE PROCEDURE mnnl_import_cert (p_import_key IN NUMBER)
IS
c_delim VARCHAR2 (1) := ';';