ARBO#64315 -- Onduidelijke foutmelding in personenimport.
svn path=/Customer/trunk/; revision=48425
This commit is contained in:
178
ARBO/arbo.sql
178
ARBO/arbo.sql
@@ -1680,6 +1680,30 @@ IS
|
||||
WHERE i.prs_perslid_key = p.prs_perslid_key
|
||||
AND prs_kenmerk10 IS NOT NULL;
|
||||
|
||||
CURSOR c_afd_del (p_niveau NUMBER) IS
|
||||
SELECT prs_afdeling_key, prs_afdeling_naam, prs_afdeling_omschrijving
|
||||
FROM prs_afdeling
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = p_niveau
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key));
|
||||
-- personen pas verwijderen als ze langer dan 80 dagen bestaan. Hiermee voorkomen we dat nieuw handmatig ingevoerde
|
||||
-- personen direct verwijderd worden, omdat HR data altijd wat ouder is.
|
||||
CURSOR c_del IS
|
||||
@@ -1875,138 +1899,46 @@ BEGIN
|
||||
AND p.prs_perslid_verwijder IS NULL);
|
||||
|
||||
-- Nu gaan we proberen de afdelingen op te ruimen
|
||||
BEGIN
|
||||
v_errorhint := 'Opschonen afdeling niveau 4';
|
||||
FOR v_niveau IN REVERSE 1..4
|
||||
LOOP
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 4
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key));
|
||||
FOR rec IN c_afd_del (v_niveau)
|
||||
LOOP
|
||||
v_errorhint := 'Opschonen afdeling niveau ' || v_niveau || ' afdeling: ' || rec.prs_afdeling_naam;
|
||||
BEGIN
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE;
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 3';
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 3
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key));
|
||||
-- Niet gebruikte kostenplaatsen gaan we verwijderen.
|
||||
v_errorhint := 'Niet gebruikte kostenplaatsen gaan we verwijderen.';
|
||||
UPDATE prs_kostenplaats kp
|
||||
SET kp.prs_kostenplaats_verwijder = SYSDATE
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_module = 'PRS'
|
||||
AND NOT EXISTS (SELECT a.prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND a.prs_afdeling_verwijder IS NULL);
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 2';
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 2
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key));
|
||||
|
||||
v_errorhint := 'Opschonen afdeling niveau 1';
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE
|
||||
WHERE prs_afdeling_verwijder IS NULL
|
||||
AND prs_afdeling_key IN
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afdeling_boom ab
|
||||
WHERE niveau = 1
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_perslid_key
|
||||
FROM prs_perslid p
|
||||
WHERE p.prs_afdeling_key =
|
||||
ab.prs_afdeling_key
|
||||
AND p.prs_perslid_verwijder IS NULL)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_afd_verplichting v
|
||||
WHERE v.prs_afdeling_key =
|
||||
ab.prs_afdeling_key)
|
||||
AND NOT EXISTS
|
||||
(SELECT prs_afdeling_key
|
||||
FROM prs_v_aanwezigafdeling a
|
||||
WHERE a.prs_afdeling_parentkey =
|
||||
ab.prs_afdeling_key));
|
||||
|
||||
-- Niet gebruikte kostenplaatsen gaan we verwijderen.
|
||||
UPDATE prs_kostenplaats kp
|
||||
SET kp.prs_kostenplaats_verwijder = SYSDATE
|
||||
WHERE prs_kostenplaats_verwijder IS NULL
|
||||
AND prs_kostenplaats_module = 'PRS'
|
||||
AND NOT EXISTS (SELECT a.prs_afdeling_key
|
||||
FROM prs_afdeling a
|
||||
WHERE a.prs_kostenplaats_key = kp.prs_kostenplaats_key
|
||||
AND a.prs_afdeling_verwijder IS NULL);
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
COMMIT;
|
||||
EXCEPTION
|
||||
WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||||
v_errormsg :=
|
||||
'OTHERS (error '
|
||||
|| oracle_err_num
|
||||
|| '/'
|
||||
|| oracle_err_mes
|
||||
|| ')';
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
v_aanduiding || v_errormsg,
|
||||
v_errorhint);
|
||||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user