ALLI#31511 Implementatie FZ ALLI -- import uit AD
ALLI#31862 BES: Bedrijfskleding -- leidinggevende in AD-import svn path=/Customer/trunk/; revision=24989
This commit is contained in:
132
ALLI/alli.sql
132
ALLI/alli.sql
@@ -50,6 +50,7 @@ IS
|
||||
v_prs_perslid_email VARCHAR2 (256);
|
||||
v_prs_perslid_oslogin VARCHAR2 (256);
|
||||
v_prs_perslid_bedrijfsdeel VARCHAR2 (256);
|
||||
v_prs_perslid_leidinggevende VARCHAR2 (256);
|
||||
|
||||
-- Overig:
|
||||
v_alg_locatie_code VARCHAR2 (256);
|
||||
@@ -78,44 +79,47 @@ BEGIN
|
||||
v_errorhint := 'Fout bij opvragen te importeren rij';
|
||||
v_ongeldig := 0;
|
||||
-- Lees alle veldwaarden
|
||||
|
||||
-- 01 - Usernaam/login
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
|
||||
-- 01, 02, 03, 04 - Naam van medewerkers in de 1e 4 kolommen: voornaam, voorletters, tussenvoegsels, achternaam.
|
||||
-- 02, 03, 04 - voornaam, achternaam, tussenvoegsel.
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voornaam);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
|
||||
|
||||
-- 05 - Peroneelsnr
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
|
||||
-- 06 - Afdelingscode
|
||||
-- 05 - Afdelingscode
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_code);
|
||||
|
||||
-- 07 - Afdelingsnaam (niet de code!)
|
||||
-- 06 - Afdelingsnaam (niet de code!)
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_afdeling_naam);
|
||||
|
||||
-- 08 - Functieomschrijving van medewerker
|
||||
-- 07 - Functieomschrijving van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_srtperslid_omschrijving);
|
||||
|
||||
-- 08 - Peroneelsnr
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_nr);
|
||||
|
||||
-- 09 - Email adres van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
|
||||
|
||||
-- 10 - Mobiel van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
|
||||
|
||||
-- 11 - Telenr (035) van medewerker
|
||||
-- 10 - Telenr (035) van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_telefoonnr);
|
||||
|
||||
-- 11 - Mobiel van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
|
||||
|
||||
-- 12 - Bedrijfsonderdeel van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_bedrijfsdeel);
|
||||
|
||||
-- 13 - Leidinggevende van medewerker
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_leidinggevende);
|
||||
|
||||
-- 14 - Voorletters
|
||||
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_voorletters);
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
-- xx - Usernaam/login
|
||||
-- fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
|
||||
v_prs_perslid_oslogin := NULL;
|
||||
|
||||
|
||||
|
||||
-- xx - Locatiecode werkplek van medewerker
|
||||
--fac.imp_getfield (v_newline, c_fielddelimitor, v_alg_locatie_code);
|
||||
v_alg_locatie_code := NULL;
|
||||
@@ -125,14 +129,14 @@ BEGIN
|
||||
v_alg_gebouw_code := NULL;
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
--
|
||||
v_aanduiding :=
|
||||
'['
|
||||
|| v_prs_perslid_nr
|
||||
|| '|'
|
||||
|| v_prs_perslid_naam
|
||||
|| '|'
|
||||
|| v_prs_perslid_oslogin
|
||||
|| '] ';
|
||||
|
||||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||||
@@ -140,15 +144,18 @@ BEGIN
|
||||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||||
IF (header_is_valid = 0)
|
||||
THEN
|
||||
IF UPPER (v_prs_perslid_voornaam) = 'ROEPNAAM'
|
||||
AND UPPER (v_prs_perslid_naam) = 'ACHTERNAAM'
|
||||
AND UPPER (v_prs_perslid_nr) = 'PERSNR.'
|
||||
AND UPPER (v_prs_afdeling_code) = 'AFDNR.'
|
||||
AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
|
||||
IF UPPER (v_prs_perslid_oslogin) = 'SAMACCOUNTNAME'
|
||||
AND UPPER (v_prs_perslid_voornaam) = 'GIVENNAME'
|
||||
AND UPPER (v_prs_perslid_naam) = 'SN'
|
||||
AND UPPER (v_prs_afdeling_code) = 'DEPARTMENTCODE'
|
||||
AND UPPER (v_prs_afdeling_naam) = 'DEPARTMENTNAME'
|
||||
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTIE'
|
||||
AND UPPER (v_prs_perslid_email) = 'E-MAIL'
|
||||
AND UPPER (v_prs_perslid_nr) = 'PERSONEELSNR'
|
||||
AND UPPER (v_prs_perslid_email) = 'MAIL'
|
||||
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEPHONENUMBER'
|
||||
AND UPPER (v_prs_perslid_mobiel) = 'MOBILE'
|
||||
AND UPPER (v_prs_perslid_telefoonnr) = 'TELEFOON'
|
||||
AND UPPER (v_prs_perslid_leidinggevende) = 'LEIDINGGEVENDE'
|
||||
AND UPPER (v_prs_perslid_voorletters) = 'VOORLETTERS'
|
||||
THEN
|
||||
header_is_valid := 1;
|
||||
END IF;
|
||||
@@ -185,9 +192,8 @@ BEGIN
|
||||
COMMIT;
|
||||
|
||||
--
|
||||
|
||||
v_errorhint := 'Ongeldig loginnaam';
|
||||
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_email, 1, INSTR (v_prs_perslid_email, '@', 1, 1) - 1);
|
||||
--v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_email, 1, INSTR (v_prs_perslid_email, '@', 1, 1) - 1);
|
||||
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
||||
|
||||
IF LENGTH (v_prs_perslid_oslogin) > 30
|
||||
@@ -247,7 +253,6 @@ BEGIN
|
||||
END IF;
|
||||
COMMIT;
|
||||
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldig tussenvoegsel';
|
||||
v_prs_perslid_tussenvoegsel := TRIM (v_prs_perslid_tussenvoegsel);
|
||||
@@ -268,14 +273,12 @@ BEGIN
|
||||
|
||||
--
|
||||
v_errorhint := 'Ongeldige voorletters';
|
||||
-- Deze regel zou desnoodd kunnen indien ALLI de achternaam, voorletters en tussenvoegsel zelf niet kan splitsen:
|
||||
|
||||
v_prs_perslid_voorletters := TRIM (v_prs_perslid_voorletters);
|
||||
|
||||
IF LENGTH (v_prs_perslid_voorletters) > 10
|
||||
IF LENGTH (v_prs_perslid_voorletters) > 15
|
||||
THEN
|
||||
v_prs_perslid_voorletters :=
|
||||
SUBSTR (v_prs_perslid_voorletters, 1, 10);
|
||||
SUBSTR (v_prs_perslid_voorletters, 1, 15);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Voorletters te lang',
|
||||
@@ -305,9 +308,6 @@ BEGIN
|
||||
COMMIT;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
v_errorhint := 'Ongeldige afdelingcode';
|
||||
v_prs_afdeling_code := TRIM (v_prs_afdeling_code);
|
||||
|
||||
@@ -486,6 +486,32 @@ BEGIN
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
v_errorhint := 'Ongeldige leidinggevende';
|
||||
v_prs_perslid_leidinggevende := TRIM (v_prs_perslid_leidinggevende);
|
||||
|
||||
IF LENGTH (v_prs_perslid_leidinggevende) > 30
|
||||
THEN
|
||||
v_prs_perslid_leidinggevende := SUBSTR (v_prs_perslid_leidinggevende, 1, 30);
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
v_aanduiding || 'Login leidinggevende te lang',
|
||||
'Login leidinggevende wordt afgebroken tot ['
|
||||
|| v_prs_perslid_leidinggevende
|
||||
|| ']'
|
||||
);
|
||||
ELSE
|
||||
IF (v_prs_perslid_leidinggevende IS NULL)
|
||||
THEN
|
||||
v_ongeldig := 1;
|
||||
fac.imp_writelog
|
||||
(p_import_key,
|
||||
'E',
|
||||
v_aanduiding || 'Login leidinggevende onbekend',
|
||||
'Login leidinggevende is verplicht; regel wordt overgeslagen!'
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
COMMIT;
|
||||
|
||||
|
||||
@@ -509,7 +535,8 @@ BEGIN
|
||||
prs_perslid_mobiel,
|
||||
prs_perslid_email,
|
||||
prs_perslid_oslogin,
|
||||
prs_perslid_bedrijfsdeel
|
||||
prs_perslid_bedrijfsdeel,
|
||||
prs_perslid_leidinggevende
|
||||
)
|
||||
VALUES (v_prs_perslid_nr, v_prs_perslid_naam,
|
||||
v_prs_perslid_tussenvoegsel,
|
||||
@@ -523,7 +550,8 @@ BEGIN
|
||||
v_prs_perslid_mobiel,
|
||||
v_prs_perslid_email,
|
||||
v_prs_perslid_oslogin,
|
||||
v_prs_perslid_bedrijfsdeel
|
||||
v_prs_perslid_bedrijfsdeel,
|
||||
v_prs_perslid_leidinggevende
|
||||
);
|
||||
COMMIT;
|
||||
v_count_import := v_count_import + 1;
|
||||
@@ -619,6 +647,7 @@ IS
|
||||
v_afdeling_key NUMBER (10);
|
||||
v_fac_usrdata_key NUMBER (10);
|
||||
v_srtperslid_key NUMBER (10);
|
||||
v_leidinggevende_key NUMBER (10);
|
||||
v_oslogin VARCHAR2 (30);
|
||||
v_wachtwoord VARCHAR2 (30);
|
||||
v_locatie_key NUMBER (10);
|
||||
@@ -676,6 +705,7 @@ IS
|
||||
AND UPPER (ip.prs_perslid_nr) = UPPER (p.prs_perslid_nr);
|
||||
|
||||
-- Alle actieve personen met personeelsnummer (ie. de import-doelgroep) zonder een werkplek
|
||||
-- PKO: Niemand heeft een werkplek; check weglaten.
|
||||
CURSOR cnowp
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_nr, p.prs_perslid_naam,
|
||||
@@ -685,7 +715,8 @@ IS
|
||||
AND p.prs_perslid_naam NOT LIKE c_persoon_inactief || '%'
|
||||
AND NOT EXISTS (SELECT 1
|
||||
FROM prs_perslidwerkplek pw
|
||||
WHERE pw.prs_perslid_key = p.prs_perslid_key);
|
||||
WHERE pw.prs_perslid_key = p.prs_perslid_key)
|
||||
AND 1=0;
|
||||
|
||||
-- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep
|
||||
CURSOR cnogroup
|
||||
@@ -1025,6 +1056,7 @@ BEGIN
|
||||
LOOP
|
||||
BEGIN
|
||||
v_count_tot := v_count_tot + 1;
|
||||
v_perslid_key := NULL;
|
||||
v_aanduiding :=
|
||||
recperslid.prs_perslid_nr
|
||||
|| '|'
|
||||
@@ -1061,7 +1093,6 @@ BEGIN
|
||||
|| recperslid.prs_perslid_bedrijfsdeel
|
||||
|| ']';
|
||||
|
||||
|
||||
SELECT fac_usrdata_key
|
||||
INTO v_fac_usrdata_key
|
||||
FROM fac_usrdata
|
||||
@@ -1069,6 +1100,18 @@ BEGIN
|
||||
AND fac_usrtab_key= 121
|
||||
AND fac_usrdata_verwijder IS NULL;
|
||||
|
||||
-- TODO: leidinggevende in aparte lus? Iig eerst bepalen of leidingg. en kpn 1-op-1 relatie hebben
|
||||
-- v_errorhint :=
|
||||
-- 'Fout bij bepalen leidinggevende ['
|
||||
-- || recperslid.prs_perslid_leidinggevende
|
||||
-- || ']';
|
||||
--
|
||||
-- SELECT prs_perslid_key
|
||||
-- INTO v_leidinggevende_key
|
||||
-- FROM prs_perslid
|
||||
-- WHERE UPPER (prs_perslid_oslogin) = UPPER (recperslid.prs_perslid_leidinggevende)
|
||||
-- AND prs_perslid_verwijder IS NULL;
|
||||
|
||||
|
||||
v_errorhint := 'Fout bij bepalen persoon';
|
||||
|
||||
@@ -1079,7 +1122,7 @@ BEGIN
|
||||
AND UPPER (prs_perslid_nr) = UPPER (recperslid.prs_perslid_nr);
|
||||
|
||||
|
||||
IF (v_count = 0)
|
||||
IF (v_count = 0)
|
||||
THEN
|
||||
v_errorhint := 'Fout bij toevoegen persoon';
|
||||
-- Nieuwe persoon uit importbestand, wordt toegevoegd in Facilitor.
|
||||
@@ -1105,7 +1148,8 @@ BEGIN
|
||||
recperslid.prs_perslid_email,
|
||||
recperslid.prs_perslid_nr,
|
||||
recperslid.prs_perslid_oslogin
|
||||
);
|
||||
)
|
||||
RETURNING prs_perslid_key INTO v_perslid_key;
|
||||
COMMIT;
|
||||
ELSE
|
||||
|
||||
@@ -2696,7 +2740,7 @@ AS
|
||||
BEGIN adm.systrackscriptId('$Id$', 0); END;
|
||||
/
|
||||
|
||||
BEGIN fac.registercustversion('ALLI', 10); END;
|
||||
BEGIN fac.registercustversion('ALLI', 11); END;
|
||||
/
|
||||
|
||||
commit;
|
||||
|
||||
Reference in New Issue
Block a user