GGR#81468 Personenimport vanuit Workday

svn path=/Customer/trunk/; revision=66839
This commit is contained in:
Suzan Wiegerinck
2024-10-31 15:48:53 +00:00
parent 44e9ee2780
commit 9cdca48e22

View File

@@ -916,6 +916,7 @@ BEGIN
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'%Personeelsnummer;Geslacht;Login;Achternaam;Tussenvoegsel;Voorletters;Voornaam;Telefoonnummer;Mobiel;Email;Afdeling;Datumindienst;Datumuitdienst;Functie%');
EXCEPTION
WHEN OTHERS
THEN
@@ -3787,7 +3788,7 @@ AS
CREATE OR REPLACE PROCEDURE sggr_import_ib_actie (p_import_key IN NUMBER)
AS
BEGIN
fac_import_genericcsv (p_import_key);
NULL;
END sggr_import_ib_actie;
/
@@ -3803,34 +3804,50 @@ IS
v_perslid_key prs_perslid.prs_perslid_key%TYPE;
CURSOR actie IS
SELECT i.fac_imp_csv_col01 melding_nr,
fac.safe_to_number (SUBSTR (i.fac_imp_csv_col01, 3)) mld_key,
SELECT i.fac_imp_csv_col01
melding_nr,
fac.safe_to_number (SUBSTR (i.fac_imp_csv_col01, 3))
mld_key,
(SELECT ud.fac_usrdata_key
FROM fac_usrdata ud, fac_usrtab ut
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 601
AND ud.fac_usrdata_upper = UPPER ( i.fac_imp_csv_col02)) soort,
i.fac_imp_csv_col03 nr,
i.fac_imp_csv_col04 datum_bevinding,
i.fac_imp_csv_col05 proces,
AND ud.fac_usrdata_upper = UPPER (i.fac_imp_csv_col02))
soort,
i.fac_imp_csv_col03
nr,
TO_CHAR (fac.safe_to_date (i.fac_imp_csv_col04, 'DD-MM-YYYY'), 'DD-MM-YYYY')
datum_bevinding,
i.fac_imp_csv_col05
proces,
(SELECT ud.fac_usrdata_key
FROM fac_usrdata ud, fac_usrtab ut
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 602
AND ud.fac_usrdata_upper = UPPER (i.fac_imp_csv_col05)) proces_key,
i.fac_imp_csv_col06 bevinding,
i.fac_imp_csv_col07 norm_element,
i.fac_imp_csv_col08 type_bevinding,
AND ud.fac_usrdata_upper = UPPER (i.fac_imp_csv_col05))
proces_key,
i.fac_imp_csv_col06
bevinding,
i.fac_imp_csv_col07
norm_element,
i.fac_imp_csv_col08
type_bevinding,
(SELECT ud.fac_usrdata_key
FROM fac_usrdata ud, fac_usrtab ut
WHERE ut.fac_usrtab_key = ud.fac_usrtab_key
AND ut.fac_usrtab_key = 621
AND ud.fac_usrdata_upper = UPPER (i.fac_imp_csv_col08)) type_key,
i.fac_imp_csv_col09 prio,
i.fac_imp_csv_col10 oorzaak,
i.fac_imp_csv_col11 maatregel,
i.fac_imp_csv_col12 wie,
i.fac_imp_csv_col13 deadline
AND ud.fac_usrdata_upper = UPPER (i.fac_imp_csv_col08))
type_key,
i.fac_imp_csv_col09
prio,
i.fac_imp_csv_col10
oorzaak,
i.fac_imp_csv_col11
maatregel,
i.fac_imp_csv_col12
wie,
TO_CHAR (fac.safe_to_date (i.fac_imp_csv_col13, 'DD-MM-YYYY'), 'DD-MM-YYY')
deadline
FROM fac_imp_csv i
WHERE i.fac_imp_csv_index > 1 AND i.fac_import_key = p_import_key
ORDER BY i.fac_imp_csv_index;
@@ -3899,6 +3916,11 @@ BEGIN
v_newkey,
rec.type_key);
flx.setflex ('MLD',
4188, -- deadline
v_newkey,
rec.deadline);
COMMIT;
END LOOP;
@@ -3964,6 +3986,119 @@ SELECT m.mld_melding_key,
AND gg.fac_groep_key = 361
AND m.mld_melding_status IN (2, 3);
CREATE OR REPLACE PROCEDURE sggr_import_perslid (p_import_key IN NUMBER)
AS
v_seq_of_columns VARCHAR (255);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (200);
v_errorhint VARCHAR2 (200);
BEGIN
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;10;3;0;2;'
|| '0;0;0;0;0;0;0;5;0;4;'
|| '7;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;6;10;9',
--'Worker;Employee_ID;Email_Addres;isManager;businessTitle;Company;Manager_ID;name%'
'Worker,firstName,lastName,Employee_ID,Email_Address,isManager,businessTitle,Company,Manager_ID,name%');
-- de juiste mailadressen eruit filteren
UPDATE fac_imp_perslid i
SET i.prs_perslid_email =
(SELECT REPLACE (SUBSTR (REGEXP_SUBSTR (p.prs_perslid_email,
'(.*)(@aareon.nl)',
1,
1,
NULL,
1),
INSTR ((REGEXP_SUBSTR (p.prs_perslid_email,
'(.*)(@aareon.nl)',
1,
1,
NULL,
1)),
';',
-1)),
'; ')
|| '@aareon.nl' mailto
FROM fac_imp_perslid p
WHERE p.fac_imp_file_index = i.fac_imp_file_index );
-- De juiste afdelingen bepalen
UPDATE fac_imp_perslid i
SET i.prs_afdeling_naam =
(SELECT a.prs_afdeling_naam
FROM prs_afdeling a, prs_bedrijf b
WHERE a.prs_bedrijf_key = b.prs_bedrijf_key
AND b.prs_bedrijf_naam_upper LIKE '%NIEUW%'
AND b.prs_bedrijf_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL
AND UPPER (a.prs_afdeling_omschrijving) = UPPER (i.prs_kenmerk19));
END sggr_import_perslid;
/
CREATE OR REPLACE PROCEDURE sggr_update_perslid (p_import_key IN NUMBER)
IS
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
c_max_delta_percentage NUMBER (10) := 20; -- 20%!
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
-- Let op! Personen die niet meer in dienst zijn -> niet in fac_imp_perslid!
CURSOR c_del IS
SELECT p.prs_perslid_key, p.prs_perslid_oslogin, p.*
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- accounts met een _ moeten bewaard blijven
AND p.prs_perslid_apikey IS NULL -- API accounts moeten bewaard blijven
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid i
WHERE UPPER (i.PRS_PERSLID_EMAIL) = UPPER (p.PRS_PERSLID_EMAIL));
BEGIN
SELECT COUNT (*)
INTO v_count_prs_import
FROM prs_v_aanwezigperslid p, fac_imp_perslid i
WHERE p.prs_perslid_email IS NOT NULL
AND UPPER (p.prs_perslid_email) = UPPER (i.prs_perslid_email);
-- Bepaal huidig aantal actieve personen in Facilitor.
SELECT DECODE (COUNT (*), 0, 1, COUNT (*))
INTO v_count_prs_actual
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin IS NOT NULL;
IF (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) < (100 - c_max_delta_percentage))
THEN
fac.imp_writelog (
p_import_key,
'E',
'Verschil tussen huidig aantal en te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['
|| TO_CHAR (c_max_delta_percentage)
|| '%]'
|| CHR (13)
|| CHR (10)
|| '- #personen/import = ['
|| TO_CHAR (v_count_prs_import)
|| ']'
|| CHR (13)
|| CHR (10)
|| '- #personen/huidig = ['
|| TO_CHAR (v_count_prs_actual)
|| ']');
RETURN;
END IF;
-- Generieke update.
-- prs.update_perslid (p_import_key, 'LOGIN', 'D');
END sggr_update_perslid;
/
------ payload end ------
SET DEFINE OFF