GGR#81468 Personenimport vanuit Workday
svn path=/Customer/trunk/; revision=66839
This commit is contained in:
169
SGGR/sggr.sql
169
SGGR/sggr.sql
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user