FSN#22517

svn path=/Customer/trunk/; revision=15129
This commit is contained in:
Maarten van der Heide
2012-02-24 11:21:18 +00:00
parent 441dce2cf7
commit c88ffa7ff4

View File

@@ -1,7 +1,7 @@
-- Script containing customer specific db-configuration for RENK.
-- (c) 2011 SG|facilitor bv
-- $Revision: 1 $
-- $Modtime: 5-01-12 16:02 $
-- $Revision: 2 $
-- $Modtime: 24-02-12 11:46 $
--
-- Support: +31 53 4800700
@@ -16,15 +16,10 @@ AS
FROM imp_log
WHERE imp_log_applicatie = 'PRS';
/* Formatted on 5-7-2011 17:06:36 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_import_prs (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
/* Formatted on 24-2-2012 11:44:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_import_prs (p_import_key IN NUMBER)
IS
c_fielddelimitor VARCHAR2 (1) := ';';
-- LET OP: moet idem zijn als declaratie bij RENK_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);
@@ -64,32 +59,10 @@ 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 renk_imp_prs;
COMMIT;
@@ -149,9 +122,7 @@ BEGIN
c_fielddelimitor,
v_prs_perslid_telefoonnr);
-- 13
fac.imp_getfield (v_newline,
c_fielddelimitor,
v_prs_perslid_mobiel);
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_mobiel);
-- 14
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_email);
-- 15
@@ -215,8 +186,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || 'Loginnaam onbekend of te lang',
'Loginnaam is verplicht; regel wordt overgeslagen!'
@@ -232,8 +202,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 ['
@@ -251,11 +220,12 @@ 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 || 'Achternaam te lang',
'Achternaam wordt afgebroken tot [' || v_prs_perslid_naam || ']'
'Achternaam wordt afgebroken tot ['
|| v_prs_perslid_naam
|| ']'
);
COMMIT;
ELSE
@@ -263,8 +233,7 @@ BEGIN
THEN
v_ongeldig := 1;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'E',
v_aanduiding || 'Achternaam onbekend',
'Achternaam is verplicht; regel wordt overgeslagen!'
@@ -282,8 +251,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 ['
@@ -302,8 +270,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 ['
@@ -322,8 +289,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 ['
@@ -335,8 +301,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 [-]');
@@ -352,8 +317,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 ['
@@ -366,8 +330,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!'
@@ -385,8 +348,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 ['
@@ -406,8 +368,7 @@ BEGIN
v_prs_srtperslid_omschrijving :=
SUBSTR (v_prs_srtperslid_omschrijving, 1, 60);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Functie te lang',
'Functie wordt afgebroken tot ['
@@ -420,8 +381,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!'
@@ -429,26 +389,26 @@ BEGIN
COMMIT;
END IF;
END IF;
/*
--
v_errorhint := 'Ongeldige locatiecode';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || 'Locatiecode te lang',
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
COMMIT;
END IF;
*/
/*
--
v_errorhint := 'Ongeldige locatiecode';
v_alg_locatie_code := TRIM (v_alg_locatie_code);
IF LENGTH (v_alg_locatie_code) > 10
THEN
v_alg_locatie_code := SUBSTR (v_alg_locatie_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Locatiecode te lang',
'Locatiecode wordt afgebroken tot ['
|| v_alg_locatie_code
|| ']'
);
COMMIT;
END IF;
*/
--
v_errorhint := 'Ongeldige gebouwcode';
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
@@ -457,8 +417,7 @@ BEGIN
THEN
v_alg_gebouw_code := SUBSTR (v_alg_gebouw_code, 1, 12);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Gebouwcode te lang',
'Gebouwcode wordt afgebroken tot ['
@@ -467,26 +426,26 @@ BEGIN
);
COMMIT;
END IF;
/*
--
v_errorhint := 'Ongeldige verdiepingcode';
v_alg_verdieping_code := TRIM (v_alg_verdieping_code);
IF LENGTH (v_alg_verdieping_code) > 10
THEN
v_alg_verdieping_code := SUBSTR (v_alg_verdieping_code, 1, 10);
fac.imp_writelog (
p_applname,
p_applrun,
'W',
v_aanduiding || 'Verdiepingcode te lang',
'Verdiepingcode wordt afgebroken tot ['
|| v_alg_verdieping_code
|| ']'
);
COMMIT;
END IF;
*/
/*
--
v_errorhint := 'Ongeldige verdiepingcode';
v_alg_verdieping_code := TRIM (v_alg_verdieping_code);
IF LENGTH (v_alg_verdieping_code) > 10
THEN
v_alg_verdieping_code := SUBSTR (v_alg_verdieping_code, 1, 10);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Verdiepingcode te lang',
'Verdiepingcode wordt afgebroken tot ['
|| v_alg_verdieping_code
|| ']'
);
COMMIT;
END IF;
*/
--
v_errorhint := 'Ongeldig ruimtenummer';
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
@@ -495,8 +454,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',
'Ruimtenummer wordt afgebroken tot ['
@@ -515,8 +473,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 ['
@@ -532,11 +489,9 @@ BEGIN
IF LENGTH (v_prs_perslid_mobiel) > 15
THEN
v_prs_perslid_mobiel :=
SUBSTR (v_prs_perslid_mobiel, 1, 15);
v_prs_perslid_mobiel := SUBSTR (v_prs_perslid_mobiel, 1, 15);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Mobielnummer te lang',
'Mobielnummer wordt afgebroken tot ['
@@ -554,8 +509,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 ['
@@ -573,8 +527,7 @@ BEGIN
THEN
v_prs_perslid_nr := SUBSTR (v_prs_perslid_nr, 1, 16);
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'W',
v_aanduiding || 'Personeelsnummer te lang',
'Personeelsnummer wordt afgebroken tot ['
@@ -606,8 +559,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!');
@@ -639,8 +591,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!');
@@ -713,8 +664,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!'
@@ -728,22 +678,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),
@@ -759,8 +706,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);
@@ -768,12 +714,9 @@ EXCEPTION
END renk_import_prs;
/
/* Formatted on 5-1-2012 16:02:02 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_update_prs (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
/* Formatted on 24-2-2012 11:44:55 (QP5 v5.115.810.9015) */
CREATE OR REPLACE PROCEDURE renk_update_prs (p_import_key IN NUMBER)
IS
-- LET OP: moet idem zijn als declaratie bij RENK_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;
@@ -787,7 +730,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);
@@ -883,12 +825,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 oslogin-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
@@ -908,9 +844,8 @@ BEGIN
FROM prs_v_aanwezigperslid
WHERE prs_perslid_oslogin IS NOT NULL;
IF ( (v_first_import_count = 1)
OR (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage)))
IF ( (TRUNC ( (v_count_prs_import / v_count_prs_actual) * 100) >=
(100 - c_max_delta_percentage)))
THEN
-- Geldig importbestand wat betreft aantal personen
v_errorhint := 'Fout bij bepalen profiel';
@@ -924,8 +859,7 @@ BEGIN
IF (v_count = 0)
THEN
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Standaard profiel ['
|| c_profiel_omschrijving
@@ -963,8 +897,7 @@ BEGIN
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met loginnaam ['
|| recdelprs.prs_perslid_oslogin
@@ -1000,8 +933,7 @@ BEGIN
WHERE prs_perslid_key = recdelprs.prs_perslid_key;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met loginnaam ['
|| recdelprs.prs_perslid_oslogin
@@ -1022,8 +954,7 @@ BEGIN
AND prs_perslid_oslogin IS NOT NULL;
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met loginnaam ['
|| recdelprs.prs_perslid_oslogin
@@ -1049,8 +980,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);
@@ -1103,8 +1033,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);
@@ -1113,16 +1042,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),
@@ -1190,8 +1117,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!');
@@ -1284,8 +1210,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);
@@ -1294,16 +1219,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),
@@ -1513,8 +1436,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);
@@ -1523,16 +1445,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),
@@ -1544,8 +1464,7 @@ BEGIN
LOOP
BEGIN
fac.imp_writelog (
p_applname,
p_applrun,
p_import_key,
'I',
'Persoon met nummer ['
|| recnowp.prs_perslid_oslogin
@@ -1568,8 +1487,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
@@ -1614,8 +1532,7 @@ BEGIN
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_applname,
p_applrun,
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
v_errorhint);
@@ -1635,16 +1552,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 = ['