PCHW#57730 Personenkoppeling AD Westland
svn path=/Customer/trunk/; revision=48436
This commit is contained in:
118
PCHW/pchw.sql
118
PCHW/pchw.sql
@@ -2402,6 +2402,124 @@ AS
|
||||
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE pchw_import_prs_westland (p_import_key IN NUMBER)
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
v_aantal_in_fclt NUMBER;
|
||||
BEGIN
|
||||
v_errorhint := 'Generieke update';
|
||||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc
|
||||
prs.import_perslid (
|
||||
p_import_key,
|
||||
'0;0;0;0;0;0;5;2;3;1;'
|
||||
|| '0;0;0;0;11;12;13;10;0;0;'
|
||||
|| '7;4;0;0;0;0;6;8;9;0;'
|
||||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0',
|
||||
'FirstName;Last Name;Middle Name;Login;Department Code;Department Name;Job Name;Location name;Cost Center Number;Email Adress;Gender;Work Phone;Mobile');
|
||||
|
||||
-- Loginnaam afleiden van emailadres
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin =
|
||||
(SUBSTR (prs_perslid_email,
|
||||
0,
|
||||
INSTR (prs_perslid_email, '@') - 1))
|
||||
WHERE UPPER (prs_perslid_email) LIKE '%GEMEENTEWESTLAND.NL%';
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END pchw_import_prs_westland;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE PROCEDURE pchw_update_prs_westland (p_import_key IN NUMBER)
|
||||
IS
|
||||
-- Alle personen verwijderen die niet meer in het import import bestand voorkomen
|
||||
-- Alleen personen verwijderen met emailadres met @GemeenteWestland.nl. Omdat anders bijv. DGS gebruikers verwijderd zouden worden.
|
||||
-- Personen in de juiste autorisatiegroep zetten.
|
||||
-- Match bij PCHW is Email.
|
||||
-- Geen acties tenzij het aantal records in de importtabel meer dan 800 medewerkers betreft.
|
||||
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, pf.prs_perslid_naam_full
|
||||
FROM prs_perslid p, prs_v_perslid_fullnames_all pf
|
||||
WHERE UPPER (p.prs_perslid_email) LIKE '%GEMEENTEWESTLAND.NL%'
|
||||
AND UPPER (p.prs_perslid_email) NOT IN
|
||||
(SELECT UPPER (prs_perslid_email) FROM fac_imp_perslid)
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key;
|
||||
|
||||
v_count NUMBER;
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
BEGIN
|
||||
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
||||
|
||||
SELECT COUNT ( * ) INTO v_count FROM fac_imp_perslid;
|
||||
|
||||
IF v_count >= 800
|
||||
THEN
|
||||
v_errorhint := 'Verwerken persoonsgegevens';
|
||||
|
||||
-- Geldig importbestand wat betreft aantal personen
|
||||
|
||||
-- Eerst de regels die niet van toepassing zijn verwijderen. Dit zijn bijv. raadsleden/vrijwilligers die nooit hoeven in te loggen in Facilitor.
|
||||
DELETE FROM fac_imp_perslid
|
||||
WHERE prs_perslid_email IS NULL;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- generic update
|
||||
-- 'EMAIL' betekent dat op basis van Email wordt gematched.
|
||||
-- 'NULL' betekent altijd geen werkplekken verwijderen
|
||||
prs.update_perslid (p_import_key, 'EMAIL', NULL);
|
||||
|
||||
v_errorhint := 'Verwijderen persoonsgegevens';
|
||||
|
||||
-- Verwijder personen die niet meer in de import voorkomen.
|
||||
FOR rec IN c_del
|
||||
LOOP
|
||||
BEGIN
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
END;
|
||||
END LOOP;
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
COMMIT;
|
||||
END IF;
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes;
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_errormsg,
|
||||
v_errorhint);
|
||||
END pchw_update_prs_westland;
|
||||
/
|
||||
|
||||
------ payload end ------
|
||||
|
||||
SET DEFINE OFF
|
||||
|
||||
Reference in New Issue
Block a user