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:
Peter Koerhuis
2015-04-28 10:11:51 +00:00
parent 489e952483
commit ce5ede65f0

View File

@@ -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;