ALLR#77557 -- Nieuwe omgeving voor Alliander
svn path=/Customer/trunk/; revision=60454
This commit is contained in:
366
AA/ALLR/allr.sql
366
AA/ALLR/allr.sql
@@ -93,7 +93,7 @@ BEGIN
|
||||
-- ManagerID 20
|
||||
-- Tussenvoegsel 21
|
||||
|
||||
v_seq_of_columns := '0;0;0;0;0;0;10;7;21;6;'
|
||||
v_seq_of_columns := '0;0;0;0;0;0;4;7;21;6;'
|
||||
-- v_alg_locatie_code 1
|
||||
-- v_alg_gebouw_code 2
|
||||
-- v_alg_verdieping_volgnr 3
|
||||
@@ -118,7 +118,7 @@ BEGIN
|
||||
-- v_prs_perslid_email 18
|
||||
-- v_prs_perslid_dienstverband 19
|
||||
-- v_prs_perslid_nr 20
|
||||
|| '19;0;0;0;0;0;11;12;13;14;'
|
||||
|| '4;0;0;0;0;0;11;12;13;14;'
|
||||
-- v_prs_srtperslid_omschrijving 21
|
||||
-- v_prs_perslid_oslogin 22
|
||||
-- v_prs_perslid_wachtwoord 23
|
||||
@@ -129,14 +129,22 @@ BEGIN
|
||||
-- v_prs_kenmerk2 28
|
||||
-- v_prs_kenmerk3 29
|
||||
-- v_prs_kenmerk4 30
|
||||
|| '15;17;18;20;8;1;5;16;0;0;'
|
||||
|| '0;0;0;0;0;0';
|
||||
|| '15;17;18;20;8;1;5;16;22;10;'
|
||||
|| '19;0;0;0;0;0';
|
||||
|
||||
prs.import_perslid(p_import_key, v_seq_of_columns, 'Group;Peildatum;Aanstellingsdatum;WerknemersID;Medewerkerstype;Roepnaam;Achternaam;PrimaryWorkPhone;PrimaryWorkEmail;AfdelingID;Afdelingnaam;Lvl3ID;Lvl3naam;Lvl4ID;Lvl4naam;IsManager;LocatieID;LocatieNaam;BusinessTitle;ManagerID;%');
|
||||
prs.import_perslid(p_import_key, v_seq_of_columns, 'Group;Peildatum;Aanstellingsdatum;WerknemersID;Medewerkerstype;Roepnaam;Achternaam;PrimaryWorkPhone;PrimaryWorkEmail;AfdelingID;Afdelingnaam;Lvl3ID;Lvl3naam;Lvl4ID;Lvl4naam;IsManager;LocatieID;LocatieNaam;BusinessTitle;ManagerID;Tussenvoegsel;WorkMobilePhone%');
|
||||
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_perslid_oslogin = SUBSTR(UPPER(prs_perslid_email), 1,INSTR(prs_perslid_email, '@')-1),
|
||||
prs_perslid_telefoonnr = SUBSTR(REPLACE(prs_kenmerk9, ' '),1,15);
|
||||
SET prs_perslid_oslogin = prs_perslid_nr,
|
||||
prs_perslid_telefoonnr = SUBSTR(REPLACE(prs_kenmerk9, ' '),1,15),
|
||||
prs_perslid_mobiel = SUBSTR(REPLACE(prs_kenmerk13, ' '),1,15);
|
||||
|
||||
-- De afdelingscode slaan we tijdelijk op in kenmerk14 omdat deze bij toekomstige medewerkers leeg is.
|
||||
UPDATE fac_imp_perslid
|
||||
SET prs_afdeling_naam = COALESCE(prs_kenmerk14, '_FH'),
|
||||
prs_kenmerk1 = COALESCE(prs_kenmerk1, 'Future Hires'),
|
||||
prs_srtperslid_omschrijving = COALESCE(prs_kenmerk15, 'Future Hire');
|
||||
|
||||
END allr_import_perslid;
|
||||
/
|
||||
|
||||
@@ -163,6 +171,17 @@ IS
|
||||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||||
AND ab.prs_bedrijf_key = c_bedrijf_key;
|
||||
|
||||
-- Cursor om de afdelingsstructuur aan te maken.
|
||||
CURSOR c_afd_mut
|
||||
IS
|
||||
SELECT DISTINCT prs_afdeling_naam,
|
||||
prs_kenmerk1,
|
||||
prs_kenmerk2,
|
||||
prs_kenmerk3,
|
||||
prs_kenmerk4,
|
||||
prs_kenmerk5
|
||||
FROM fac_imp_perslid;
|
||||
|
||||
-- Cursor om afdelingen te verwijderen
|
||||
CURSOR c_afd_del (c_bedrijf_key IN NUMBER)
|
||||
IS
|
||||
@@ -173,7 +192,8 @@ IS
|
||||
FROM prs_v_afdeling_boom ab, prs_afdeling a
|
||||
WHERE ab.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_afdeling_verwijder IS NULL
|
||||
AND ab.prs_bedrijf_key = 322
|
||||
AND ab.prs_bedrijf_key = c_bedrijf_key
|
||||
AND a.prs_afdeling_naam <> '_FH'
|
||||
AND NOT EXISTS
|
||||
(SELECT 1
|
||||
FROM fac_imp_perslid i
|
||||
@@ -210,85 +230,9 @@ IS
|
||||
v_prs_afdeling_key3 NUMBER;
|
||||
v_prs_afdeling_verwijder DATE;
|
||||
c_prs_bedrijf_key NUMBER := 321; -- Intern bedrijf Alliander
|
||||
v_prs_bedrijf_key NUMBER;
|
||||
v_prs_perslid_key NUMBER;
|
||||
BEGIN
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
v_aanduiding := rec.prs_kenmerk2 || '-' || rec.prs_kenmerk4 || '-' || rec.prs_afdeling_naam;
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 1';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key1, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE REPLACE(prs_afdeling_naam, '_vv') = rec.prs_kenmerk2;
|
||||
|
||||
IF v_prs_afdeling_verwijder IS NOT NULL
|
||||
THEN
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key1;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 1';
|
||||
INSERT INTO prs_afdeling (prs_bedrijf_key, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (c_prs_bedrijf_key, SUBSTR (rec.prs_kenmerk2, 1, 15), SUBSTR (rec.prs_kenmerk3, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key1;
|
||||
END;
|
||||
|
||||
-- Afdeling niveau2
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 2';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key2, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE prs_afdeling_parentkey = v_prs_afdeling_key1 AND REPLACE(prs_afdeling_naam, '_vv') = rec.prs_kenmerk4;
|
||||
|
||||
IF v_prs_afdeling_verwijder IS NOT NULL
|
||||
THEN
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key2;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 2';
|
||||
INSERT INTO prs_afdeling (prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (v_prs_afdeling_key1, SUBSTR (rec.prs_kenmerk4, 1, 15), SUBSTR (rec.prs_kenmerk5, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key2;
|
||||
END;
|
||||
|
||||
|
||||
-- Afdeling niveau3
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 3';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key3, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE prs_afdeling_parentkey = v_prs_afdeling_key2 AND REPLACE(prs_afdeling_naam, '_vv') = rec.prs_afdeling_naam;
|
||||
|
||||
IF v_prs_afdeling_verwijder IS NOT NULL
|
||||
THEN
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key3;
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 3';
|
||||
INSERT INTO prs_afdeling (prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (v_prs_afdeling_key2,
|
||||
SUBSTR (rec.prs_afdeling_naam, 1, 15),
|
||||
SUBSTR (rec.prs_kenmerk1, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key3;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
SELECT COUNT (*)
|
||||
INTO v_count_imp
|
||||
@@ -300,9 +244,107 @@ BEGIN
|
||||
FROM prs_perslid p, prs_v_afdeling_boom ab
|
||||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key AND ab.prs_bedrijf_key = c_prs_bedrijf_key;
|
||||
|
||||
-- We gaan alleen mensen verwijderen als de aangeboden populatie groter is dan de helft van de huidige populatie.
|
||||
-- We gaan alleen de import uitvoeren als de aangeboden populatie groter is dan de helft van de huidige populatie.
|
||||
IF v_count_imp > v_count_allr / 2
|
||||
THEN
|
||||
|
||||
FOR rec IN c_afd_mut
|
||||
LOOP
|
||||
v_prs_afdeling_key1 := NULL;
|
||||
v_prs_afdeling_key2 := NULL;
|
||||
v_prs_bedrijf_key := NULL;
|
||||
IF rec.prs_kenmerk2 IS NOT NULL
|
||||
THEN
|
||||
v_aanduiding := rec.prs_kenmerk2 || '-' || rec.prs_kenmerk4 || '-' || rec.prs_afdeling_naam;
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 1';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key1, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE REPLACE(prs_afdeling_naam, '_vv') = rec.prs_kenmerk2;
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL,
|
||||
prs_afdeling_naam = REPLACE(prs_afdeling_naam, '_vv')
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key1;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 1';
|
||||
INSERT INTO prs_afdeling (prs_bedrijf_key, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (c_prs_bedrijf_key, SUBSTR (rec.prs_kenmerk2, 1, 15), SUBSTR (rec.prs_kenmerk3, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key1;
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Afdeling niveau2
|
||||
IF rec.prs_kenmerk4 IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 2';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key2, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE COALESCE(prs_afdeling_parentkey, -1) = COALESCE(v_prs_afdeling_key1, -1) AND REPLACE(prs_afdeling_naam, '_vv') = rec.prs_kenmerk4;
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL,
|
||||
prs_afdeling_naam = REPLACE(prs_afdeling_naam, '_vv')
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key2;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 2: ' || v_prs_afdeling_key1;
|
||||
INSERT INTO prs_afdeling (prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (v_prs_afdeling_key1, SUBSTR (rec.prs_kenmerk4, 1, 15), SUBSTR (rec.prs_kenmerk5, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key2;
|
||||
v_errorhint := 'Einde aanmaken afdeling niveau 2';
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Afdeling niveau3
|
||||
-- Als de persoon gekoppeld is aan de afdeling Future Hires dan wordt deze op afdelingsniveau 1 gekoppeld aan de afdeling _FH
|
||||
-- Als de afdeling al op niveau 2 voorkomt hoeven we deze hier niet meer aan te maken.
|
||||
IF COALESCE(rec.prs_kenmerk4, 'QueQeLeQue') <> rec.prs_afdeling_naam AND COALESCE(rec.prs_kenmerk2, 'QueQeLeQue') <> rec.prs_afdeling_naam
|
||||
THEN
|
||||
BEGIN
|
||||
v_errorhint := 'Controle afdeling niveau 3';
|
||||
SELECT prs_afdeling_key, prs_afdeling_verwijder
|
||||
INTO v_prs_afdeling_key3, v_prs_afdeling_verwijder
|
||||
FROM prs_afdeling a
|
||||
WHERE COALESCE(prs_afdeling_parentkey, -1) = COALESCE(v_prs_afdeling_key2, -1) AND REPLACE(prs_afdeling_naam, '_vv') = rec.prs_afdeling_naam;
|
||||
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = NULL,
|
||||
prs_afdeling_naam = REPLACE(prs_afdeling_naam, '_vv')
|
||||
WHERE prs_afdeling_key = v_prs_afdeling_key3;
|
||||
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
v_errorhint := 'Aanmaken afdeling niveau 3 [' || v_prs_afdeling_key2 || ']';
|
||||
|
||||
IF v_prs_afdeling_key2 IS NULL
|
||||
THEN
|
||||
v_prs_bedrijf_key := c_prs_bedrijf_key;
|
||||
END IF;
|
||||
|
||||
INSERT INTO prs_afdeling (prs_bedrijf_key, prs_afdeling_parentkey, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||||
VALUES (v_prs_bedrijf_key,
|
||||
v_prs_afdeling_key2,
|
||||
SUBSTR (rec.prs_afdeling_naam, 1, 15),
|
||||
SUBSTR (rec.prs_kenmerk1, 1, 60))
|
||||
RETURNING prs_afdeling_key
|
||||
INTO v_prs_afdeling_key3;
|
||||
END;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
|
||||
-- Voordat we gaan importeren gaan we op zoek of we nog mensen moeten verwijderen die niet in de import voorkomen.
|
||||
FOR rec IN c_del (c_prs_bedrijf_key)
|
||||
LOOP
|
||||
@@ -327,6 +369,87 @@ BEGIN
|
||||
v_errorhint);
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
-- Nu kunnen we de standaard facilitor-update doorvoeren
|
||||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||||
|
||||
-- En dan gaan we als laatste de kenmmerken bijwerken
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
-- We kunnen alleen maar kenmerken toevoegen/aanpassen als de persoon ook is aangemaakt zonder foutmelding.
|
||||
IF rec.prs_perslid_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Bijwerken kenmerk leidinggevende ';
|
||||
v_aanduiding := rec.prs_perslid_voornaam || ' ' || rec.prs_perslid_naam;
|
||||
IF rec.prs_kenmerk8 IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
-- op zoek naar de leidinggevende
|
||||
SELECT prs_perslid_key
|
||||
INTO v_prs_perslid_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr = rec.prs_kenmerk8;
|
||||
|
||||
FLX.setflex('PRS', 1021, rec.prs_perslid_key, 'P', v_prs_perslid_key);
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
'Leidinggevende niet gevonden',
|
||||
rec.prs_kenmerk8);
|
||||
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Status
|
||||
v_errorhint := 'Bijwerken kenmerk status';
|
||||
FLX.setflex('PRS', 1022, rec.prs_perslid_key, 'P', rec.prs_kenmerk10);
|
||||
-- Type medewerker
|
||||
v_errorhint := 'Bijwerken kenmerk type medewerker';
|
||||
FLX.setflex('PRS', 1020, rec.prs_perslid_key, 'P', rec.prs_kenmerk11);
|
||||
-- Is manager
|
||||
v_errorhint := 'Bijwerken kenmerk is manager';
|
||||
IF rec.prs_kenmerk12 = 1
|
||||
THEN
|
||||
FLX.setflex('PRS', 1040, rec.prs_perslid_key, 'P', 1);
|
||||
ELSE
|
||||
FLX.setflex('PRS', 1040, rec.prs_perslid_key, 'P', NULL);
|
||||
END IF;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
-- En dan de afdelingen verwijderen die niet meer voorkomen.
|
||||
FOR rec IN c_afd_del(c_prs_bedrijf_key)
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Verwijderen afdeling ';
|
||||
v_aanduiding := rec.prs_afdeling_naam || '-' || rec.prs_afdeling_omschrijving || ' Niveau: ' || rec.niveau;
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE,
|
||||
prs_afdeling_naam = REPLACE(prs_afdeling_naam, '_vv')
|
||||
WHERE prs_afdeling_key = rec.prs_afdeling_key
|
||||
-- we gaan geen afdelingen verwijderen als er nog onderliggende niet verwijderde afdelingen bestaan
|
||||
AND NOT EXISTS (SELECT 1 FROM prs_afdeling a WHERE a.prs_afdeling_verwijder IS NULL AND a.prs_afdeling_parentkey = rec.prs_afdeling_key)
|
||||
-- we gaan geen afdelingen verwijderen als er nog onderliggende niet verwijderde personen bestaan
|
||||
AND NOT EXISTS (SELECT 1 FROM prs_perslid p WHERE p.prs_perslid_verwijder IS NULL AND p.prs_afdeling_key = rec.prs_afdeling_key);
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
-- Markeer de afdeling. Hiervoor gaan we de afdelingcode voorzien van '_vv' van vervallen
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_naam = prs_afdeling_naam || '_vv'
|
||||
WHERE prs_afdeling_key = rec.prs_afdeling_key
|
||||
AND prs_afdeling_naam NOT LIKE '%vv';
|
||||
|
||||
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,
|
||||
'');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
ELSE
|
||||
fac.imp_writelog (p_import_key,
|
||||
'E',
|
||||
@@ -334,77 +457,6 @@ BEGIN
|
||||
'');
|
||||
END IF;
|
||||
|
||||
-- Nu kunnen we de standaard facilitor-update doorvoeren
|
||||
prs.update_perslid (p_import_key, 'NR', NULL);
|
||||
|
||||
-- En dan gaan we als laatste de kenmmerken bijwerken
|
||||
FOR rec IN c
|
||||
LOOP
|
||||
-- We kunnen alleen maar kenmerken toevoegen/aanpassen als de persoon ook is aangemaakt zonder foutmelding.
|
||||
IF rec.prs_perslid_key IS NOT NULL
|
||||
THEN
|
||||
v_errorhint := 'Bijwerken kenmerk leidinggevende ';
|
||||
v_aanduiding := rec.prs_perslid_voornaam || ' ' || rec.prs_perslid_naam;
|
||||
IF rec.prs_kenmerk8 IS NOT NULL
|
||||
THEN
|
||||
BEGIN
|
||||
-- op zoek naar de leidinggevende
|
||||
SELECT prs_perslid_key
|
||||
INTO v_prs_perslid_key
|
||||
FROM prs_perslid
|
||||
WHERE prs_perslid_nr = rec.prs_kenmerk8;
|
||||
|
||||
FLX.setflex('PRS', 1021, rec.prs_perslid_key, 'P', v_prs_perslid_key);
|
||||
EXCEPTION WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
fac.imp_writelog (p_import_key,
|
||||
'W',
|
||||
'Leidinggevende niet gevonden',
|
||||
rec.prs_kenmerk8);
|
||||
|
||||
END;
|
||||
END IF;
|
||||
|
||||
-- Status
|
||||
v_errorhint := 'Bijwerken kenmerk status';
|
||||
FLX.setflex('PRS', 1022, rec.prs_perslid_key, 'P', rec.prs_kenmerk10);
|
||||
-- Type medewerker
|
||||
v_errorhint := 'Bijwerken kenmerk type medewerker';
|
||||
FLX.setflex('PRS', 1020, rec.prs_perslid_key, 'P', rec.prs_kenmerk11);
|
||||
-- Is manager
|
||||
v_errorhint := 'Bijwerken kenmerk is manager';
|
||||
FLX.setflex('PRS', 1020, rec.prs_perslid_key, 'P', rec.prs_kenmerk12);
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
-- En dan de afdelingen verwijderen die niet meer voorkomen.
|
||||
FOR rec IN c_afd_del(c_prs_bedrijf_key)
|
||||
LOOP
|
||||
BEGIN
|
||||
v_errorhint := 'Verwijderen afdeling ';
|
||||
v_aanduiding := rec.prs_afdeling_naam || '-' || rec.prs_afdeling_omschrijving || ' Niveau: ' || rec.niveau;
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_verwijder = SYSDATE,
|
||||
prs_afdeling_naam = REPLACE(prs_afdeling_naam, '_vv')
|
||||
WHERE prs_afdeling_key = rec.prs_afdeling_key;
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
-- Markeer de afdeling. Hiervoor gaan we de afdelingcode voorzien van '_vv' van vervallen
|
||||
UPDATE prs_afdeling
|
||||
SET prs_afdeling_naam = prs_afdeling_naam || '_vv'
|
||||
WHERE prs_afdeling_key = rec.prs_afdeling_key
|
||||
AND prs_afdeling_naam NOT LIKE '%vv';
|
||||
|
||||
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,
|
||||
'');
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
EXCEPTION WHEN OTHERS
|
||||
THEN
|
||||
oracle_err_num := SQLCODE;
|
||||
|
||||
Reference in New Issue
Block a user