From 1a49f0d536ce087edc58cea7c81b9f1c136d8e4f Mon Sep 17 00:00:00 2001 From: Suzan Wiegerinck Date: Tue, 18 Nov 2025 09:10:56 +0000 Subject: [PATCH] PZEE#90019 Personenimport voor de OMD Zeeland svn path=/Customer/trunk/; revision=70977 --- OMDZ/omdz.sql | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 OMDZ/omdz.sql diff --git a/OMDZ/omdz.sql b/OMDZ/omdz.sql new file mode 100644 index 000000000..ac3ac1d4d --- /dev/null +++ b/OMDZ/omdz.sql @@ -0,0 +1,139 @@ +-- +-- $Id$ +-- +-- Script containing customer specific sql statements for the FACILITOR database +-- + +DEFINE thisfile = 'OMDZ.SQL' +DEFINE dbuser = 'OMDZ' + +SET ECHO ON +SET DEFINE ON +COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT; +COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT; +WHENEVER SQLERROR CONTINUE; +SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL; +SPOOL &fcltlogfile +WHENEVER SQLERROR EXIT; +SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL; +WHENEVER SQLERROR CONTINUE; +--------------------------------------- +PROMPT &fcltcusttxt +--------------------------------------- +SET DEFINE OFF + +------ payload begin ------ + +CREATE OR REPLACE PROCEDURE omdz_import_perslid (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;10;2;3;5;' + || '4;0;0;0;0;6;7;9;0;1;' + || '10;8;0;0;0;0;0;0;0;0;' + || '0;0;0;0;0;0;0;0;0;0;' + || '0;0;0;0;0;0', + ---"Personeelsnummer";"Achternaam";"Voorvoegsel";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode" + '"Personeelsnummer";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode"%'); + + COMMIT; + + -- functie wordt niet gebruikt, dus deze wordt altijd 'onbekend' + UPDATE fac_imp_perslid + SET prs_srtperslid_omschrijving = 'Onbekend'; + + 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 omdz_import_perslid; +/ + + +CREATE OR REPLACE PROCEDURE omdz_update_perslid (p_import_key IN NUMBER) +IS + v_count NUMBER; + + CURSOR c_perslid IS + SELECT * + FROM fac_imp_perslid + WHERE prs_perslid_key IS NOT NULL; + + -- Alle medewerkers van de omd verwijderen die niet meer in import bestand voorkomen. + CURSOR c_del IS + SELECT p.prs_perslid_key, + p.prs_perslid_email, + pf.prs_perslid_naam_full + FROM prs_perslid p, prs_v_perslid_fullnames_all pf + WHERE pf.prs_perslid_key = p.prs_perslid_key + AND p.prs_perslid_email IS NOT NULL + AND p.prs_perslid_verwijder IS NULL + AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\' + AND NOT EXISTS + (SELECT * + FROM fac_imp_perslid i + WHERE UPPER (i.prs_perslid_email) = + UPPER (p.prs_perslid_email)); + +BEGIN + -- generic update + SELECT COUNT (*) INTO v_count FROM fac_imp_perslid; + + IF v_count < 10 + THEN + fac.imp_writelog ( + p_import_key, + 'E', + 'Het aantal te importeren personen is te klein (' + || TO_CHAR (v_count) + || ')', + 'Zie Specificatie'); + RETURN; + END IF; + + -- Match op 'e-mail' + prs.update_perslid (p_import_key, 'EMAIL', NULL); + + COMMIT; + + -- 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; + + COMMIT; + +END omdz_update_perslid; +/ + +------ payload end ------ + +SET DEFINE OFF +BEGIN adm.systrackscriptId ('$Id$', 0); END; +/ + +COMMIT; +SET ECHO OFF +SPOOL OFF +SET DEFINE ON +PROMPT Logfile of this upgrade is: &fcltlogfile