WEND#86093 -- Entra ID PRS-koppeling i.p.v. ADFS bij Wender - Aangepaste PRS-import
svn path=/Customer/trunk/; revision=68816
This commit is contained in:
239
WEND/wend.sql
239
WEND/wend.sql
@@ -337,8 +337,7 @@ EXCEPTION
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
CREATE OR REPLACE PROCEDURE wend_import_perslid (p_import_key IN NUMBER)
|
||||
AS
|
||||
oracle_err_num NUMBER;
|
||||
@@ -346,33 +345,103 @@ AS
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
v_aantal_in_fclt NUMBER;
|
||||
v_seq_of_columns VARCHAR (255);
|
||||
|
||||
-- overige variabelen
|
||||
v_naam_verantw VARCHAR2(255);
|
||||
v_prs_perslid_email_verantw VARCHAR2(255);
|
||||
|
||||
CURSOR c_verantw
|
||||
IS
|
||||
SELECT i.fac_imp_file_index, i.prs_perslid_email, i.prs_kenmerk12
|
||||
FROM fac_imp_perslid i
|
||||
WHERE fac_import_key = p_import_key
|
||||
ORDER BY i.fac_imp_file_index;
|
||||
|
||||
|
||||
BEGIN
|
||||
|
||||
-- Ticket WEND#86093
|
||||
-- BESTAND WORDT: GivenName,Surname,UserPrincipalName,Title,EmailAddress,Mobile,telephoneNumber,employeeID,Department,Office,sAMAccountName,manager
|
||||
--- VOORBEELD:
|
||||
--- Popke,van der Meer,p.vandermeer@wender.nl,,p.vandermeer@wender.nl,0682300088,0880663081,204240,test,test location,CN=Jens Waterreus,OU=Accounts,OU=Wender,DC=internal,DC=wender,DC=nl
|
||||
|
||||
-- Import csv formaat - kolommen:
|
||||
-- 1. GivenName
|
||||
-- 2. Surname
|
||||
-- 3. UserPrincipalName
|
||||
-- 4. Title
|
||||
-- 5. EmailAddress
|
||||
-- 6. Mobile
|
||||
-- 7. TelephoneNumber
|
||||
-- 8. EmployeeID
|
||||
-- 9. Department
|
||||
-- 10. Office
|
||||
-- 11. sAMAccountName (max 15 karakters) - Om verplichte kolommen mee te vullen en daarna te updaten (afdeling, functie, ..)
|
||||
-- 12. Manager (CN=Jens Waterreus)
|
||||
-- 13. t/m 18 - Manager - komt in details mee maar gebruiken we niet: OU=Accounts,OU=Wender,DC=internal,DC=wender,DC=nl
|
||||
|
||||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||
v_seq_of_columns := '0;0;0;0;0;0;11;2;0;1;'
|
||||
-- v_alg_locatie_code 1
|
||||
-- v_alg_gebouw_code 2
|
||||
-- v_alg_verdieping_volgnr 3
|
||||
-- v_alg_ruimte_nr 4
|
||||
-- v_prs_werkplek_volgnr 5
|
||||
-- v_prs_werkplek_omschrijving 6
|
||||
-- v_prs_afdeling_naam 7 -- VERPLICHT BIJ IMPORT - Geen toepassing bij WENDER. Daarom Initieel vullen met sAMAccountName (max 15 karakters)
|
||||
-- v_prs_perslid_naam 8 -- VERPLICHT BIJ IMPORT
|
||||
-- v_prs_perslid_tussenvoegsel 9
|
||||
-- v_prs_perslid_voornaam 10
|
||||
|| '0;0;0;0;0;7;6;5;0;8;'
|
||||
-- v_prs_perslid_voorletters 11
|
||||
-- v_prs_perslid_partner_naam 12
|
||||
-- v_prs_perslid_partner_tussenv 13
|
||||
-- v_prs_naamgebruik_code 14 0 (default) perslid_naam en perslid_tussenvoegsel worden gebruikt
|
||||
-- 1 personen die de geboortenaam van de partner icm de eigen naam willen gebruiken
|
||||
-- 2 personen die de geboortenaam van de partner willen gebruiken
|
||||
-- 3 personen die de eigen naam icm de geboortenaam van de partner willen gebruiken
|
||||
-- v_prs_perslid_geslacht 15 Gebruik 'man', 'm' of 1 voor man en 'vrouw', 'v' of 0 voor vrouw case insensitive geen default
|
||||
-- v_prs_perslid_telefoonnr 16
|
||||
-- v_prs_perslid_mobiel 17
|
||||
-- v_prs_perslid_email 18
|
||||
-- v_prs_perslid_dienstverband 19
|
||||
-- v_prs_perslid_nr 20
|
||||
|| '11;5;0;0;0;0;1;2;3;4;'
|
||||
-- v_prs_srtperslid_omschrijving 21 -- VERPLICHT BIJ IMPORT - Niet altijd gevuld bij WENDER. Daarom intieel vullen met sAMAccountName en daarna omzetten
|
||||
-- v_prs_perslid_oslogin 22
|
||||
-- v_prs_perslid_wachtwoord 23
|
||||
-- v_prs_perslid_titel 24
|
||||
-- v_prs_perslid_apikey 25
|
||||
-- v_dummy 26
|
||||
-- v_prs_kenmerk1 27
|
||||
-- v_prs_kenmerk2 28
|
||||
-- v_prs_kenmerk3 29
|
||||
-- v_prs_kenmerk4 30
|
||||
|| '5;6;7;8;9;10;11;12;0;0;'
|
||||
|| '0;0;0;0;0;0';
|
||||
|
||||
|
||||
|
||||
-- Het aangeleverde bestand heeft de gegevens komma gescheiden ipv ;
|
||||
v_errorhint := 'Delimiter goed zetten';
|
||||
UPDATE fac_imp_file
|
||||
SET fac_imp_file_line = REPLACE (fac_imp_file_line, ',', ';')
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
-- Het aangeleverde bestand heeft aanhalingstekens om de invoervelden..
|
||||
-- Als het aangeleverde bestand aanhalingstekens om de invoervelden heeft, dan halen we dit bij deze weg..
|
||||
UPDATE fac_imp_file
|
||||
SET fac_imp_file_line = REPLACE (fac_imp_file_line, '"', '')
|
||||
WHERE fac_import_key = p_import_key;
|
||||
|
||||
|
||||
v_errorhint := 'Generieke update';
|
||||
-- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure
|
||||
-- Afdeling (nr7) tijdelijk ook gevuld met achternaam (wordt later altijd Wendergroep) - WANT bij import verplicht veld en anders komt dit record dus niet door de IMPORT!
|
||||
-- Login (nr 22) wordt bij de import nog wel uit het bestand gehaald 3e kolom, maar later omgezet naar emailadres.
|
||||
prs.import_perslid (
|
||||
p_import_key,
|
||||
'0;0;0;0;0;0;2;2;0;1;'
|
||||
|| '0;0;0;0;0;0;6;5;0;0;'
|
||||
|| '2;3;0;0;0;0;0;0;0;4;'
|
||||
|| '0;0;0;0;0;0;0;0;0;0;'
|
||||
|| '0;0;0;0;0;0',
|
||||
'GivenName;Surname;UserPrincipalName;Title;EmailAddress;Mobile%');
|
||||
-- WAS bij MARE: '"Firstname;LastName;Login;JobTitle;EmailAdress;"');
|
||||
-- DEF. BESTAND bij WEND : "GivenName","Surname","UserPrincipalName","Title","EmailAddress","Mobile"
|
||||
-- csv verwerken naar de fac_imp_perslid-tabel
|
||||
prs.import_perslid(p_import_key, v_seq_of_columns, 'GivenName;Surname;UserPrincipalName;Title;EmailAddress;Mobile;telephoneNumber;employeeID;Department;Office;sAMAccountName;manager%');
|
||||
|
||||
|
||||
-- POST-UPDATES op data in fac_imp_perslid-tabel doen om verwerking goed/volledig/cust-specifiek te laten verlopen
|
||||
v_errorhint := 'Post update(s)';
|
||||
|
||||
-- Afdeling bepalen
|
||||
UPDATE fac_imp_perslid
|
||||
@@ -395,6 +464,40 @@ BEGIN
|
||||
SET prs_srtperslid_omschrijving =
|
||||
DECODE (prs_kenmerk4, NULL, 'Onbekend', prs_kenmerk4);
|
||||
|
||||
FOR rec IN c_verantw
|
||||
LOOP
|
||||
BEGIN
|
||||
|
||||
v_errorhint := 'Leidinggevende erbij zoeken';
|
||||
|
||||
-- Bijv: CN=Jens Waterreus (in prs_kenmerk12 opgenomen)
|
||||
IF rec.prs_kenmerk12 IS NOT NULL
|
||||
THEN
|
||||
|
||||
v_prs_perslid_email_verantw := NULL ;
|
||||
v_naam_verantw := SUBSTR(rec.prs_kenmerk12, 4) ;
|
||||
|
||||
SELECT MAX(p.prs_perslid_email)
|
||||
INTO v_prs_perslid_email_verantw
|
||||
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames pf
|
||||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||||
AND UPPER(pf.prs_perslid_naam_friendly) = UPPER(v_naam_verantw) ;
|
||||
|
||||
IF v_prs_perslid_email_verantw IS NOT NULL
|
||||
THEN
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_kenmerk13 = v_prs_perslid_email_verantw
|
||||
WHERE fac_imp_file_index = rec.fac_imp_file_index ;
|
||||
|
||||
END IF;
|
||||
|
||||
END IF;
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
@@ -408,7 +511,10 @@ EXCEPTION
|
||||
v_errorhint);
|
||||
END wend_import_perslid;
|
||||
/
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
CREATE OR REPLACE PROCEDURE wend_update_perslid (p_import_key IN NUMBER)
|
||||
IS
|
||||
-- Alle personen verwijderen die niet meer in het import import bestand voorkomen
|
||||
@@ -427,14 +533,39 @@ IS
|
||||
AND v.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND v.prs_bedrijf_key = 21 ; -- Alleen onder/voor bedrijf Wender Opvang (key 21)
|
||||
|
||||
/*
|
||||
CURSOR c_flex -- Voor updaten van de algemene flex-kenmerkvelden
|
||||
IS
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_email, i.prs_perslid_partner_naam, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3
|
||||
SELECT p.prs_perslid_key, p.prs_perslid_email, i.prs_perslid_partner_naam, i.prs_kenmerk1, i.prs_kenmerk2, i.prs_kenmerk3, i.prs_kenmerk4, i.prs_kenmerk5, i.prs_kenmerk6, i.prs_kenmerk7, i.prs_kenmerk8, i.prs_kenmerk9, i.prs_kenmerk10, i.prs_kenmerk11, i.prs_kenmerk12, i.prs_kenmerk13
|
||||
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
|
||||
WHERE p.prs_perslid_email = i.prs_perslid_email
|
||||
WHERE p.prs_perslid_key = i.prs_perslid_key
|
||||
ORDER BY 2;
|
||||
*/
|
||||
|
||||
CURSOR c_verantw
|
||||
IS
|
||||
SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_oslogin,
|
||||
p.leidinggevende_emailadres,
|
||||
CASE WHEN p.prs_perslid_key_verantw IS NOT NULL
|
||||
THEN (SELECT prs_perslid_email FROM prs_perslid WHERE prs_perslid_key = p.prs_perslid_key_verantw)
|
||||
ELSE NULL
|
||||
END
|
||||
prs_perslid_verantw_email
|
||||
FROM fac_imp_perslid i,
|
||||
(SELECT p.prs_perslid_key,
|
||||
p.prs_perslid_email,
|
||||
p.prs_perslid_nr,
|
||||
p.prs_perslid_oslogin,
|
||||
p.prs_perslid_key_verantw,
|
||||
(SELECT kw.prs_kenmerklink_waarde
|
||||
FROM prs_kenmerklink kw
|
||||
WHERE kw.prs_kenmerk_key = 1060
|
||||
AND kw.prs_kenmerklink_niveau = 'P'
|
||||
AND kw.prs_link_key = p.prs_perslid_key)
|
||||
leidinggevende_emailadres
|
||||
FROM prs_perslid p) p
|
||||
WHERE p.prs_perslid_key = i.prs_perslid_key ;
|
||||
|
||||
v_count NUMBER;
|
||||
oracle_err_num NUMBER;
|
||||
@@ -442,6 +573,9 @@ IS
|
||||
v_errormsg VARCHAR2 (400);
|
||||
v_errorhint VARCHAR2 (400);
|
||||
|
||||
-- overige variabelen
|
||||
v_prs_perslid_key_verantw NUMBER(10);
|
||||
|
||||
BEGIN
|
||||
v_errorhint := 'Niet genoeg personen in bestand, import afgebroken';
|
||||
|
||||
@@ -467,18 +601,74 @@ BEGIN
|
||||
LOOP
|
||||
BEGIN
|
||||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||||
-- NULL;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
/*
|
||||
FOR rec IN c_flex
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint:='Fout bijwerken kenmerkveld1';
|
||||
PRS.upsertkenmerk (1000, rec.prs_perslid_key, rec.prs_kenmerk1); -- Pre-Windows 2000 Logon Name
|
||||
v_errorhint:='Fout bijwerken kenmerkvelden';
|
||||
|
||||
PRS.upsertkenmerk (1021, rec.prs_perslid_key, rec.prs_kenmerk1); -- GivenName
|
||||
PRS.upsertkenmerk (1022, rec.prs_perslid_key, rec.prs_kenmerk2); -- SurName
|
||||
PRS.upsertkenmerk (1023, rec.prs_perslid_key, rec.prs_kenmerk3); -- UserPrincipalName
|
||||
PRS.upsertkenmerk (1024, rec.prs_perslid_key, rec.prs_kenmerk4); -- Title
|
||||
PRS.upsertkenmerk (1025, rec.prs_perslid_key, rec.prs_kenmerk5); -- EmailAddress
|
||||
PRS.upsertkenmerk (1026, rec.prs_perslid_key, rec.prs_kenmerk6); -- Mobile
|
||||
PRS.upsertkenmerk (1027, rec.prs_perslid_key, rec.prs_kenmerk7); -- TelephoneNumber
|
||||
PRS.upsertkenmerk (1028, rec.prs_perslid_key, rec.prs_kenmerk8); -- EmployeeID
|
||||
PRS.upsertkenmerk (1029, rec.prs_perslid_key, rec.prs_kenmerk9); -- Department
|
||||
PRS.upsertkenmerk (1030, rec.prs_perslid_key, rec.prs_kenmerk10); -- Office
|
||||
PRS.upsertkenmerk (1040, rec.prs_perslid_key, rec.prs_kenmerk11); -- sAMAccountName
|
||||
PRS.upsertkenmerk (1031, rec.prs_perslid_key, rec.prs_kenmerk12); -- Manager
|
||||
PRS.upsertkenmerk (1060, rec.prs_perslid_key, rec.prs_kenmerk13); -- Emailadres leidinggevende
|
||||
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
*/
|
||||
|
||||
-- En de verantwoordelijk manager updaten in de personenkaart indien nodig
|
||||
FOR rec IN c_verantw
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint:='Fout bijwerken verantwoordelijke';
|
||||
|
||||
-- als de aangeboden waarde uit azure anders is dan de huidige verantwoordelijke in de personenkaart dan gaan we personenkaart updaten
|
||||
IF COALESCE(rec.leidinggevende_emailadres, '<leeg>') <> COALESCE(rec.prs_perslid_verantw_email, '<leeg>')
|
||||
THEN
|
||||
|
||||
-- geen gevonden facilitor-manager dan gevulde verantwoordelijke verwijderen
|
||||
IF rec.leidinggevende_emailadres IS NULL
|
||||
THEN
|
||||
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_key_verantw = ''
|
||||
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
END IF;
|
||||
|
||||
-- wel gevonden facilitor-manager dan bijbehorende verantwoordelijke_key in personenkaart vullen
|
||||
IF rec.leidinggevende_emailadres IS NOT NULL
|
||||
THEN
|
||||
|
||||
SELECT prs_perslid_key
|
||||
INTO v_prs_perslid_key_verantw
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_email = rec.leidinggevende_emailadres ;
|
||||
|
||||
UPDATE prs_perslid
|
||||
SET prs_perslid_key_verantw = v_prs_perslid_key_verantw
|
||||
WHERE prs_perslid_key = rec.prs_perslid_key ;
|
||||
|
||||
END IF;
|
||||
|
||||
|
||||
END IF;
|
||||
|
||||
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
@@ -501,6 +691,7 @@ EXCEPTION
|
||||
v_errorhint);
|
||||
END wend_update_perslid;
|
||||
/
|
||||
*/
|
||||
|
||||
-----------------------------------------
|
||||
-- Rapportage-views --
|
||||
|
||||
Reference in New Issue
Block a user