MNNL#52790 PRS-import/Mobiele nummers niet wissen
svn path=/Customer/trunk/; revision=37519
This commit is contained in:
115
MNNL/mnnl.sql
115
MNNL/mnnl.sql
@@ -22,46 +22,44 @@ SET DEFINE OFF
|
||||
--------------------------------------------------------------------------------------------------
|
||||
|
||||
--- ACTIVE DIRECTORY -----------------------------------------------------------
|
||||
|
||||
CREATE OR REPLACE PROCEDURE mnnl_import_prs (p_import_key IN NUMBER)
|
||||
AS
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
v_ruimte_key NUMBER;
|
||||
v_errormsg VARCHAR2 (1000);
|
||||
v_errorhint VARCHAR2 (1000);
|
||||
oracle_err_num NUMBER;
|
||||
oracle_err_mes VARCHAR2 (200);
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'Generieke import';
|
||||
|
||||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend')
|
||||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure.
|
||||
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend'.)
|
||||
prs.import_perslid (p_import_key,
|
||||
'8;0;0;0;0;0;5;4;0;3;' ||
|
||||
'0;0;0;0;0;7;0;6;0;0;' ||
|
||||
'3;1;0;0;0;0;0;0;0;0;'||
|
||||
'0;0;0;0;0;0;0;0;0;0;'||
|
||||
'3;1;0;0;0;0;0;0;0;0;' ||
|
||||
'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"%'
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
v_errorhint := 'Verrijken import';
|
||||
|
||||
-- Ontbrekende/afwijkende zaken rechtzetten...
|
||||
-- Ontbrekende/afwijkende zaken rechtzetten:
|
||||
-- - vul functie met 'Onbekend'
|
||||
-- - TODO: tussenvoegsels?
|
||||
-- - vul titel/geslacht/personeelsnummer/mobiel/dienstverband met huidige waarde (om wissen te voorkomen)
|
||||
UPDATE fac_imp_perslid p
|
||||
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving
|
||||
FROM prs_srtperslid
|
||||
WHERE prs_srtperslid_key = 1)
|
||||
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = 1),
|
||||
(prs_perslid_titel, prs_perslid_geslacht, prs_perslid_nr, prs_perslid_mobiel, prs_perslid_dienstverband) =
|
||||
(SELECT MAX(prs_perslid_titel), MAX(prs_perslid_geslacht), MAX(prs_perslid_nr), MAX(prs_perslid_mobiel), MAX(prs_perslid_dienstverband)
|
||||
FROM prs_v_aanwezigperslid
|
||||
WHERE prs_perslid_oslogin = UPPER(p.prs_perslid_oslogin))
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Werkplek toekennen, door locatiecode, gebouwcode, verdiepingvolgnr en ruimtenr in
|
||||
--importabel te zetten.
|
||||
-- Heeft de persoon al een werkplek op deze locatie? Dan kiezen we die -- met als netto
|
||||
-- importabel te zetten.
|
||||
-- Heeft de persoon al een werkplek op deze locatie? Dan kiezen we die, met als netto
|
||||
-- resultaat dat er niets gebeurt.
|
||||
-- Anders bepalen we de alfabetisch eerste ruimte op locatie en kiezen we die.
|
||||
UPDATE fac_imp_perslid ip
|
||||
@@ -69,26 +67,21 @@ BEGIN
|
||||
(SELECT rg.alg_locatie_code, rg.alg_gebouw_upper, rg.alg_verdieping_volgnr, rg.alg_ruimte_nr
|
||||
FROM alg_v_ruimte_gegevens rg
|
||||
WHERE alg_ruimte_aanduiding = COALESCE(
|
||||
-- Eventuele bestaande werkplek op locatie
|
||||
-- Eventuele bestaande werkplek op locatie.
|
||||
(SELECT MAX(rg.alg_ruimte_aanduiding)
|
||||
FROM alg_v_ruimte_gegevens rg,
|
||||
prs_werkplek w,
|
||||
prs_perslidwerkplek pw,
|
||||
prs_perslid p
|
||||
WHERE rg.alg_locatie_omschrijving = ip.alg_locatie_code
|
||||
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
|
||||
FROM prs_perslid p, prs_perslidwerkplek pw, prs_werkplek w, alg_v_ruimte_gegevens rg
|
||||
WHERE p.prs_perslid_key = pw.prs_perslid_key
|
||||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||||
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin) ),
|
||||
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste)
|
||||
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
|
||||
AND rg.alg_locatie_omschrijving = ip.alg_locatie_code
|
||||
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin)),
|
||||
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste).
|
||||
(SELECT MIN(alg_ruimte_aanduiding)
|
||||
FROM alg_v_ruimte_gegevens
|
||||
WHERE alg_locatie_omschrijving = ip.alg_locatie_code
|
||||
AND UPPER(alg_ruimte_nr) = '_WP') ) )
|
||||
AND UPPER(alg_ruimte_nr) = '_WP')))
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
COMMIT;
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
@@ -99,42 +92,35 @@ EXCEPTION
|
||||
END mnnl_import_prs;
|
||||
/
|
||||
|
||||
|
||||
CREATE OR REPLACE PROCEDURE mnnl_update_prs (p_import_key IN NUMBER)
|
||||
IS
|
||||
-- Alle personen binnen bedrijf "MN" verwijderen die niet meer in import bestand voorkomen.
|
||||
-- prs_bedrijf MN 5
|
||||
CURSOR c_del
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
|
||||
FROM fac_imp_perslid i,
|
||||
prs_perslid p,
|
||||
prs_v_perslid_fullnames_all pf,
|
||||
prs_v_afdeling_boom ab
|
||||
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin(+))
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\'
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = 5
|
||||
AND i.prs_perslid_oslogin IS NULL
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
|
||||
FROM fac_imp_perslid i, prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab
|
||||
WHERE p.prs_perslid_oslogin = UPPER (i.prs_perslid_oslogin(+))
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\'
|
||||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = 5
|
||||
AND i.prs_perslid_oslogin IS NULL
|
||||
UNION ALL
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
|
||||
FROM prs_perslid p,
|
||||
prs_v_perslid_fullnames_all pf,
|
||||
prs_v_afdeling_boom ab
|
||||
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = 5
|
||||
AND p.prs_perslid_oslogin IS NULL
|
||||
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM prs_v_verplichting_keys pv
|
||||
WHERE p.prs_perslid_key = pv.prs_perslid_key)
|
||||
ORDER BY 2;
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, pf.prs_perslid_naam_full
|
||||
FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_v_afdeling_boom ab
|
||||
WHERE pf.prs_perslid_key = p.prs_perslid_key
|
||||
AND ab.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = 5
|
||||
AND p.prs_perslid_oslogin IS NULL
|
||||
AND p.prs_perslid_naam LIKE 'INACTIEF:%'
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM prs_v_verplichting_keys pv
|
||||
WHERE p.prs_perslid_key = pv.prs_perslid_key)
|
||||
ORDER BY 2;
|
||||
|
||||
v_count NUMBER;
|
||||
|
||||
BEGIN
|
||||
-- Generic update
|
||||
SELECT COUNT(*)
|
||||
@@ -143,12 +129,9 @@ BEGIN
|
||||
|
||||
IF v_count < 300
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
'Het aantal te importeren personen is te klein ('
|
||||
|| TO_CHAR (v_count) || ')',
|
||||
'Zie specificatie'
|
||||
);
|
||||
fac.imp_writelog (p_import_key, 'E',
|
||||
'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')',
|
||||
'Zie specificatie');
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user