FSN#22517

svn path=/Customer/trunk/; revision=15124
This commit is contained in:
Maykel Geerdink
2012-02-21 08:21:04 +00:00
parent 05bcf9562a
commit e30838cc3c
42 changed files with 1905 additions and 3799 deletions

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific db-configuration for IVET.
-- (c) 2010 SG|facilitor bv
-- $Revision: 12 $
-- $Modtime: 6-09-11 9:58 $
-- $Revision: 13 $
-- $Modtime: 20-02-12 11:51 $
--
-- Support: +31 53 4800700
@@ -17,14 +17,10 @@ AS
WHERE imp_log_applicatie = 'PRS';
/* Formatted on 20-1-2010 18:22:22 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE ivet_import_prs (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
CREATE OR REPLACE PROCEDURE ivet_import_prs (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
-- LET OP: moet idem zijn als declaratie bij IVET_UPDATE_PRS
c_first_import VARCHAR2 (30) := 'Initi<EFBFBD>le import';
v_newline VARCHAR2 (1000); -- Input line
v_aanduiding VARCHAR2 (200);
v_errorhint VARCHAR2 (1000);
@@ -65,32 +61,9 @@ IS
IS
SELECT *
FROM fac_imp_file
WHERE fac_imp_file_applicatie = p_applname
WHERE fac_import_key = p_import_key
ORDER BY fac_imp_file_index;
BEGIN
-- Eerst opruiming
SELECT COUNT ( * )
INTO v_count
FROM imp_log
WHERE imp_log_applicatie = p_applname;
IF (v_count = 0)
THEN
fac.imp_writelog (
p_applname,
p_applrun,
'I',
c_first_import,
'Controle importbestand op aantal personen wordt overgeslagen'
);
COMMIT;
ELSE
DELETE FROM imp_log
WHERE imp_log_applicatie = p_applname;
COMMIT;
END IF;
DELETE FROM ivet_imp_prs;
COMMIT;
@@ -205,8 +178,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'SAP-ID onbekend/te lang',
'SAP-ID is verplicht; regel wordt overgeslagen!'
@@ -222,8 +194,7 @@ BEGIN
THEN
v_pers_nr := SUBSTR (v_pers_nr, 1, 50);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
@@ -241,8 +212,7 @@ BEGIN
THEN
v_spin_id := SUBSTR (v_spin_id, 1, 50);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'SPIN-ID te lang',
'SPIN-ID wordt afgebroken tot [' || v_spin_id || ']'
@@ -258,8 +228,7 @@ BEGIN
THEN
v_prs_perslid_titel := SUBSTR (v_prs_perslid_titel, 1, 15);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Titel te lang',
'Titel wordt afgebroken tot ['
@@ -277,8 +246,7 @@ BEGIN
THEN
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 30);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Naam te lang',
'Naam wordt afgebroken tot [' || v_prs_perslid_naam || ']'
@@ -289,8 +257,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || 'Naam onbekend',
'Naam is verplicht; regel wordt overgeslagen!'
@@ -308,8 +275,7 @@ BEGIN
v_prs_perslid_tussenvoegsel :=
SUBSTR (v_prs_perslid_tussenvoegsel, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Tussenvoegsel te lang',
'Tussenvoegsel wordt afgebroken tot ['
@@ -328,8 +294,7 @@ BEGIN
v_prs_perslid_voorletters :=
SUBSTR (v_prs_perslid_voorletters, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Voorletters te lang',
'Voorletters worden afgebroken tot ['
@@ -348,8 +313,7 @@ BEGIN
v_prs_perslid_voornaam :=
SUBSTR (v_prs_perslid_voornaam, 1, 30);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Voornaam is te lang',
'Voornaam wordt afgebroken tot ['
@@ -361,8 +325,7 @@ BEGIN
IF (v_prs_perslid_voornaam IS NULL)
THEN
v_prs_perslid_voornaam := '-';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || 'Voornaam onbekend',
'Voornaam wordt gezet op [-]');
@@ -378,8 +341,7 @@ BEGIN
THEN
v_prs_afdeling_naam := SUBSTR (v_prs_afdeling_naam, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Afdelingscode te lang',
'Afdelingscode wordt afgebroken tot ['
@@ -392,8 +354,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || 'Afdelingscode onbekend',
'Afdelingscode is verplicht; regel wordt overgeslagen!'
@@ -411,8 +372,7 @@ BEGIN
v_prs_afdeling_omschrijving :=
SUBSTR (v_prs_afdeling_omschrijving, 1, 60);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Afdelingsomschrijving te lang',
'Afdelingsomschrijving wordt afgebroken tot ['
@@ -432,8 +392,7 @@ BEGIN
v_prs_srtperslid_omschrijving :=
SUBSTR (v_prs_srtperslid_omschrijving, 1, 30);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Functie te lang',
'Functie wordt afgebroken tot ['
@@ -446,8 +405,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || 'Functie onbekend',
'Functie is verplicht; regel wordt overgeslagen!'
@@ -478,8 +436,7 @@ BEGIN
THEN
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Gebouwcode te lang',
'Aanduiding wordt afgebroken tot ['
@@ -508,8 +465,7 @@ BEGIN
THEN
v_alg_verdieping_code := SUBSTR (v_alg_verdieping_code, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Verdiepingcode te lang',
'Aanduiding wordt afgebroken tot ['
@@ -527,8 +483,7 @@ BEGIN
THEN
v_alg_ruimte_nr := SUBSTR (v_alg_ruimte_nr, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Ruimtenummer te lang',
'Aanduiding wordt afgebroken tot ['
@@ -547,8 +502,7 @@ BEGIN
v_prs_perslid_telefoonnr :=
SUBSTR (v_prs_perslid_telefoonnr, 1, 15);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Telefoonnummer te lang',
'Telefoonnummer wordt afgebroken tot ['
@@ -566,8 +520,7 @@ BEGIN
THEN
v_prs_perslid_email := SUBSTR (v_prs_perslid_email, 1, 50);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'E-mailadres te lang',
'E-mailadres wordt afgebroken tot ['
@@ -585,8 +538,7 @@ BEGIN
THEN
v_prs_perslid_oslogin := SUBSTR (v_prs_perslid_oslogin, 1, 30);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Loginnaam te lang',
'Loginnaam wordt afgebroken tot ['
@@ -618,8 +570,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
@@ -651,8 +602,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
'Regel wordt overgeslagen!');
@@ -725,8 +675,7 @@ BEGIN
|| oracle_err_mes
|| ')';
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || v_errormsg,
'Ingelezen regel kan niet worden weggeschreven!'
@@ -740,22 +689,19 @@ BEGIN
IF (header_is_valid = 0)
THEN
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
'Ongeldig importbestand',
'Geen header of header niet volgens specificatie!');
ELSE
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Persoon: aantal ingelezen regels: ' || TO_CHAR (v_count_tot),
''
);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Persoon: aantal ongeldige importregels: '
|| TO_CHAR (v_count_tot - v_count_import),
@@ -771,8 +717,7 @@ EXCEPTION
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg :=
'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
@@ -781,11 +726,9 @@ END ivet_import_prs;
/
/* Formatted on 2-7-2010 13:30:30 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE ivet_update_prs (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
CREATE OR REPLACE PROCEDURE ivet_update_prs (p_import_key IN NUMBER)
IS
-- LET OP: moet idem zijn als declaratie bij IVET_IMPORT_PRS
c_first_import VARCHAR2 (30) := 'Initi<EFBFBD>le import';
c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: ';
-- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een e-mail
c_max_delta_percentage NUMBER (10) := 20;
@@ -800,7 +743,6 @@ IS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_first_import_count NUMBER (10);
v_count_prs_import NUMBER (10); -- #actieve personen na import!
v_count_prs_actual NUMBER (10); -- #actieve personen voor import!
v_count_tot NUMBER (10);
@@ -897,12 +839,6 @@ IS
FROM fac_gebruikersgroep g
WHERE g.prs_perslid_key = p.prs_perslid_key);
BEGIN
SELECT COUNT ( * )
INTO v_first_import_count
FROM imp_log
WHERE imp_log_omschrijving = c_first_import
AND imp_log_applicatie = p_applname;
-- Bepaal SAP-ID-match tussen Facilitor en RECENT importbestand ofwel het aantal
-- actieve personen na import.
-- RECENT betekent niet meer dan een kwartiertje oud (14,4 minuten); dit voorkomt
@@ -921,8 +857,7 @@ BEGIN
FROM prs_v_aanwezigperslid
WHERE prs_perslid_nr IS NOT NULL;
IF ( (v_first_import_count = 1)
OR (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage)))
THEN
-- Geldig importbestand wat betreft aantal personen
@@ -937,8 +872,7 @@ BEGIN
IF (v_count = 0)
THEN
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Standaard profiel ['
|| c_profiel_omschrijving
@@ -976,8 +910,7 @@ BEGIN
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met SAP-ID ['
|| recdelprs.prs_perslid_nr
@@ -1013,8 +946,7 @@ BEGIN
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met SAP-ID ['
|| recdelprs.prs_perslid_nr
@@ -1035,8 +967,7 @@ BEGIN
AND prs_perslid_oslogin IS NOT NULL;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met SAP-ID ['
|| recdelprs.prs_perslid_nr
@@ -1062,8 +993,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
@@ -1116,8 +1046,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
@@ -1126,16 +1055,14 @@ BEGIN
END LOOP;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Functie: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Functie: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
@@ -1228,8 +1155,7 @@ BEGIN
COMMIT;
ELSE
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
v_aanduiding || v_errorhint,
'Kostenplaats volgens afdeling bestaat niet!'
@@ -1246,8 +1172,7 @@ BEGIN
IF v_count > 1
THEN
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errorhint,
'Kan persoon niet 1-duidig bepalen!');
@@ -1338,8 +1263,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
@@ -1348,16 +1272,14 @@ BEGIN
END LOOP;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Persoon: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
@@ -1412,8 +1334,7 @@ BEGIN
WHERE alg_gebouw_upper = UPPER (recwp.alg_gebouw_code);
ELSE -- Gebouw bestaat niet (of >1 keer)!
v_gebouw_code := c_gebouw_code;
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'I',
v_aanduiding || v_errorhint,
'Kan gebouw niet (1-duidig) bepalen!');
@@ -1441,8 +1362,7 @@ BEGIN
IF v_count = 0
THEN
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'I',
v_aanduiding || v_errorhint,
'Verdieping bestaat niet!');
@@ -1469,8 +1389,7 @@ BEGIN
IF v_count = 0
THEN
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'I',
v_aanduiding || v_errorhint,
'Ruimte bestaat niet!');
@@ -1705,8 +1624,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
@@ -1715,16 +1633,14 @@ BEGIN
END LOOP;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Werkplek: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
''
);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Werkplek: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
@@ -1736,8 +1652,7 @@ BEGIN
LOOP
BEGIN
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met SAP-ID ['
|| recnowp.prs_perslid_nr
@@ -1760,8 +1675,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
@@ -1806,8 +1720,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
@@ -1828,16 +1741,14 @@ BEGIN
IF (v_count_prs_import = 0)
THEN
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'S',
'Geen nieuw/recent bestand met te importeren personen aangetroffen!',
''
);
ELSE
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
'Verschil tussen het actuele aantal en het te importeren aantal personen te groot; zie specificatie!',
'- max. verschilpercentage = ['