PCHD#53705 Import personen vanuit AD VWS

svn path=/Customer/trunk/; revision=39760
This commit is contained in:
Arthur Egberink
2018-11-12 15:20:31 +00:00
parent 9914ffb78e
commit d9609a392b

View File

@@ -105,8 +105,8 @@ AS
insr.ins_srtdiscipline_omschrijving,
md.ins_discipline_omschrijving,
d.alg_district_omschrijving;
-- draft versie van PPI rapportage voor truckparking
CREATE OR REPLACE VIEW pchd_v_rap_mld_truckparking
(
@@ -158,7 +158,7 @@ AS
AND m.prs_perslid_key = pf.prs_perslid_key
AND m.mld_alg_locatie_key = l.alg_locatie_key
AND d.ins_srtdiscipline_key = 61;
--PCHD#53705 - Import personen vanuit AD VolkerWessels
CREATE OR REPLACE PROCEDURE pchd_import_perslid (p_import_key IN NUMBER)
IS
@@ -223,7 +223,7 @@ BEGIN
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_naam);
-- 03
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_tussenvoegsel);
-- 04
-- 04
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_oslogin);
-- 05
fac.imp_getfield (v_newline, c_fielddelimitor, v_prs_perslid_wm);
@@ -277,13 +277,13 @@ BEGIN
AND UPPER (v_prs_perslid_companycode) = 'COMPANYCODE'
AND UPPER (v_prs_afdeling_naam) = 'DEPARTMENT'
AND UPPER (v_prs_perslid_costcarrier) = 'COSTCARRIER'
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTION'
AND UPPER (v_prs_srtperslid_omschrijving) = 'FUNCTION'
--AND UPPER (v_prs_perslid_managedby) = 'MANAGEDBY'
AND UPPER (v_prs_perslid_email) = 'EMAIL'
AND UPPER (v_prs_perslid_email) = 'EMAIL'
AND UPPER (v_prs_perslid_telefoonnr) = 'PHONENUMBER'
AND UPPER (v_prs_perslid_mobiel) = 'MOBILENUMBER'
AND UPPER (v_prs_perslid_vestigingsnaam) = 'VESTIGINGSNAAM'
AND UPPER (v_prs_perslid_vestigingsnummer) = 'VESTIGINGSNUMMER'
AND UPPER (v_prs_perslid_vestigingsnummer) = 'VESTIGINGSNUMMER'
THEN
header_is_valid := 1;
END IF;
@@ -379,7 +379,7 @@ BEGIN
|| v_prs_perslid_wm
|| ']'
);
v_ongeldig :=1;
v_ongeldig :=1;
ELSE
IF (v_prs_perslid_wm IS NULL)
THEN
@@ -393,7 +393,7 @@ BEGIN
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige organisatienaam';
v_prs_perslid_organisation := TRIM (v_prs_perslid_organisation);
@@ -408,7 +408,7 @@ BEGIN
|| v_prs_perslid_organisation
|| ']'
);
v_ongeldig :=1;
v_ongeldig :=1;
ELSE
IF (v_prs_afdeling_naam IS NULL)
THEN
@@ -422,7 +422,7 @@ BEGIN
END IF;
END IF;
COMMIT;
--
v_errorhint := 'Ongeldige afdelingsnaam ';
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
@@ -437,7 +437,7 @@ BEGIN
|| v_prs_afdeling_naam
|| ']'
);
v_ongeldig :=1;
v_ongeldig :=1;
ELSE
IF (v_prs_afdeling_naam IS NULL)
THEN
@@ -467,7 +467,7 @@ BEGIN
|| v_prs_srtperslid_omschrijving
|| ']'
);
v_ongeldig :=1;
v_ongeldig :=1;
ELSE
IF (v_prs_srtperslid_omschrijving IS NULL)
THEN
@@ -517,8 +517,8 @@ BEGIN
);
COMMIT;
END IF;
--
v_errorhint := 'Ongeldig e-mailadres';
v_prs_perslid_email := TRIM (v_prs_perslid_email);
@@ -550,7 +550,7 @@ BEGIN
|| v_prs_perslid_oslogin
|| ']'
);
v_ongeldig :=1;
v_ongeldig :=1;
COMMIT;
END IF;
@@ -575,7 +575,7 @@ BEGIN
BEGIN
v_errorhint :=
'Fout bij toevoegen regel aan importtabel pchd_imp_prs';
INSERT INTO pchd_imp_prs
(prs_perslid_naam,
prs_perslid_tussenvoegsel,
@@ -594,7 +594,7 @@ BEGIN
prs_perslid_vestigingsnaam,
prs_perslid_vestigingsnummer
)
VALUES
VALUES
(v_prs_perslid_naam,
v_prs_perslid_tussenvoegsel,
v_prs_perslid_voornaam,
@@ -690,7 +690,7 @@ IS
v_prs_bedrijf_key VARCHAR2 (30);
v_prs_afdeling_key VARCHAR2 (30);
v_prs_company_key VARCHAR2 (30);
v_prs_perslid_costcarrier VARCHAR2 (30);
v_prs_perslid_costcarrier VARCHAR2 (30);
v_prs_perslid_managedby VARCHAR2 (30);
v_prs_perslid_oslogin VARCHAR2 (30);
v_prs_perslid_oslogin2 VARCHAR2 (30);
@@ -707,35 +707,35 @@ IS
SELECT 1
FROM prs_kenmerklink km
WHERE km.prs_link_key = p.prs_perslid_key
AND km.prs_kenmerk_key = 1041 -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING & BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
AND km.prs_kenmerk_key = 1041 -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
AND km.prs_kenmerklink_waarde = '1461') -- Key voor waarde "Ja" bij kenmerk 'Import personen uit AD'.)
AND NOT EXISTS (
SELECT 1
FROM pchd_imp_prs ip
WHERE UPPER(ip.prs_perslid_oslogin) = UPPER(p.prs_perslid_oslogin));
--Bepalen alle functie omschrijvingen in het import bestand.
--Bepalen alle functie omschrijvingen in het import bestand.
CURSOR csperslid
IS
SELECT UPPER(prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
FROM pchd_imp_prs
GROUP BY UPPER (prs_srtperslid_omschrijving);
--Bepalen alle wm (werkmaatschappijen) in het import bestand.
--Bepalen alle wm (werkmaatschappijen) in het import bestand.
CURSOR cwm
IS
SELECT UPPER(prs_perslid_wm) prs_perslid_wm
FROM pchd_imp_prs
GROUP BY UPPER (prs_perslid_wm);
--Bepalen alle organisaties in het import bestand.
CURSOR corg
--Bepalen alle organisaties in het import bestand.
CURSOR corg
IS
SELECT UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_companycode) prs_perslid_companycode, UPPER (prs_perslid_wm) prs_perslid_wm
FROM pchd_imp_prs
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_companycode), UPPER (prs_perslid_wm);
GROUP BY UPPER (prs_perslid_organisation), UPPER (prs_perslid_companycode), UPPER (prs_perslid_wm);
--Bepalen alle afdeling omschrijvingen in het import bestand.
--Bepalen alle afdeling omschrijvingen in het import bestand.
CURSOR cdep
IS
SELECT UPPER(prs_afdeling_naam) prs_afdeling_naam, UPPER (prs_perslid_organisation) prs_perslid_organisation, UPPER (prs_perslid_wm) prs_perslid_wm
@@ -748,7 +748,7 @@ IS
FROM pchd_imp_prs;
CURSOR cwerkplek
IS
IS
SELECT p.prs_perslid_key, i.prs_perslid_oslogin, ra.alg_ruimte_key
FROM alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, pchd_imp_prs i, prs_perslid p, prs_afdeling a, prs_ruimteafdeling ra
WHERE r.alg_verdieping_key = v.alg_verdieping_key
@@ -759,6 +759,7 @@ IS
AND UPPER(p.prs_perslid_oslogin) = UPPER(i.prs_perslid_oslogin)
AND ra.prs_afdeling_key = a.prs_afdeling_key
AND ra.prs_ruimteafdeling_verwijder IS NULL
AND ra.alg_ruimte_key = r.alg_ruimte_key
AND UPPER(r.alg_ruimte_nr) = 'N.V.T.';
@@ -807,7 +808,7 @@ BEGIN
)
THEN
-- Geldig importbestand wat betreft aantal personen
-- Personen verwijderen/inactiefmaken
FOR recdelprs IN cdelprs
LOOP
@@ -966,7 +967,7 @@ BEGIN
END LOOP;
v_count_tot := 0;
v_count_error := 0;
v_count_error := 0;
-- Toevoegen bedrijf (wm: werkmaatschappij)
FOR recwm IN cwm
@@ -1033,8 +1034,8 @@ BEGIN
v_count_error := 0;
-- Toevoegen Organisatie
FOR recorg IN corg
FOR recorg IN corg
LOOP
BEGIN
v_count_tot := v_count_tot + 1;
@@ -1053,7 +1054,7 @@ BEGIN
v_errorhint := 'Fout bij toevoegen organisatie';
INSERT INTO prs_afdeling
(prs_bedrijf_key,
(prs_bedrijf_key,
prs_afdeling_naam,
prs_afdeling_upper,
prs_afdeling_omschrijving
@@ -1104,7 +1105,7 @@ BEGIN
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen afdeling
FOR recdep IN cdep
LOOP
@@ -1113,8 +1114,8 @@ BEGIN
v_aanduiding := recdep.prs_afdeling_naam|| ' - ';
v_errorhint := 'Fout bij bepalen afdeling';
-- Kijken of de waarde uit de import al voorkomt. Er wordt gecontroleerd op unieke voorkomende afdelingomschrijvingen.
-- De import is er dus niet op toegerust om meerdere afdelingen te hebben met zelfde omschrijving maar ondere verschillende moeder-afdelingen.
-- Kijken of de waarde uit de import al voorkomt. Er wordt gecontroleerd op unieke voorkomende afdelingomschrijvingen.
-- De import is er dus niet op toegerust om meerdere afdelingen te hebben met zelfde omschrijving maar ondere verschillende moeder-afdelingen.
SELECT COUNT (*)
INTO v_count
FROM prs_afdeling
@@ -1126,7 +1127,7 @@ BEGIN
THEN
v_errorhint := 'Fout bij toevoegen afdeling';
INSERT INTO prs_afdeling
(prs_afdeling_parentkey,
(prs_afdeling_parentkey,
prs_afdeling_naam,
prs_afdeling_upper,
prs_afdeling_omschrijving
@@ -1179,7 +1180,7 @@ BEGIN
v_count_tot := 0;
v_count_error := 0;
-- Toevoegen personen
FOR recperslid IN cperslid
LOOP
@@ -1232,9 +1233,9 @@ BEGIN
v_errorhint := 'Fout bij toevoegen persoon';
INSERT INTO prs_perslid
(prs_perslid_module,
(prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_afdeling_key,
prs_perslid_voornaam,
prs_perslid_naam,
prs_perslid_tussenvoegsel,
@@ -1243,18 +1244,18 @@ BEGIN
prs_perslid_telefoonnr,
prs_perslid_mobiel
)
VALUES ('PRS',
VALUES ('PRS',
v_srtperslid_key,
v_afdeling_key,
v_afdeling_key,
recperslid.prs_perslid_voornaam,
recperslid.prs_perslid_naam,
recperslid.prs_perslid_tussenvoegsel,
recperslid.prs_perslid_oslogin,
recperslid.prs_perslid_email,
recperslid.prs_perslid_email,
recperslid.prs_perslid_telefoonnr,
recperslid.prs_perslid_mobiel
);
v_errorhint := 'Fout bij bepalen loginnaam';
ELSE
IF (v_count > 1)
@@ -1287,7 +1288,7 @@ BEGIN
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
@@ -1308,7 +1309,7 @@ BEGIN
-- Nu gaan we bestaande personen bijwerken
FOR recperslid IN cperslid
LOOP
BEGIN
BEGIN
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recperslid.prs_perslid_oslogin
@@ -1351,7 +1352,7 @@ BEGIN
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND UPPER (p.prs_perslid_oslogin) = UPPER (recperslid.prs_perslid_oslogin);
SELECT COUNT (*)
INTO v_count
FROM prs_perslid p
@@ -1376,10 +1377,28 @@ BEGIN
END;
END IF;
COMMIT;
END;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
fac.imp_writelog (p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
@@ -1396,64 +1415,53 @@ BEGIN
v_count_tot := 0;
v_count_error := 0;
-- Nu gaan we de kenmerken bijwerken
FOR recperslid IN cperslid
LOOP
BEGIN
LOOP
BEGIN
SELECT p.prs_perslid_key
INTO v_perslid_key
FROM prs_perslid p
WHERE UPPER(recperslid.prs_perslid_oslogin) = UPPER(p.prs_perslid_oslogin);
DELETE FROM prs_kenmerklink
WHERE prs_link_key = v_perslid_key
AND prs_kenmerk_key IN (1041, 1060, 1080); --Keys voor kenmerken. In Acceptatie/branche:1040, 1041, 1060 In productie: 1041, 1060 & 1080
COMMIT;
v_errorhint := 'Fout bij toevoegen kenmerk import personen uit AD';
-- Toevoegen kenmerk "Import personen uit AD'
INSERT INTO prs_kenmerklink
(prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
VALUES
(v_perslid_key,
'P',
1041, -- Key voor Kenmerk 'Import personen uit AD'. In ACCEPTATIEOMGEVING & BRANCH: 1040 / In PRODUCTIEOMGEVING: 1041
'1461'); -- Waarde "Ja" voor Kenmerk 'Import personen uit AD'.
v_errorhint := 'Fout bij toevoegen kenmerk Costcarrier';
-- Toevoegen kenmerk "Costcarrier'
INSERT INTO prs_kenmerklink
(prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
VALUES
(v_perslid_key,
'P',
1060, -- Key voor Kenmerk 'Costcarrier'. In ACCEPTATIEOMGEVING & BRANCH: 1041 / In PRODUCTIEOMGEVING: 1060
recperslid.prs_perslid_costcarrier);
-- Toevoegen kenmerk "Company code'
INSERT INTO prs_kenmerklink
(prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
VALUES
(v_perslid_key,
'P',
1080, -- Key voor Kenmerk 'Costcarrier'. In ACCEPTATIEOMGEVING & BRANCH: 1060 / In PRODUCTIEOMGEVING: 1080
recperslid.prs_perslid_companycode);
END;
END LOOP;
v_errorhint := 'Fout bij toevoegen kenmerk import personen uit AD';
-- Toevoegen kenmerk "Import personen uit AD'
-- Key voor Kenmerk 'Import personen uit AD': 1041
-- Waarde "Ja" voor Kenmerk 'Import personen uit AD'.
PRS.upsertkenmerk (1041, v_perslid_key, '1461');
v_errorhint := 'Fout bij toevoegen kenmerk Costcarrier';
-- Toevoegen kenmerk "Costcarrier'
-- Key voor Kenmerk 'Costcarrier': 1060
PRS.upsertkenmerk (1060, v_perslid_key, recperslid.prs_perslid_costcarrier);
-- Toevoegen kenmerk "Company code'
-- Key voor Kenmerk 'Costcarrier': 1080
PRS.upsertkenmerk (1080, v_perslid_key, recperslid.prs_perslid_companycode);
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'OTHERS (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ')';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint
);
COMMIT;
END;
END LOOP;
-- Iedereen krijgt _default-rol die nog geen groep heeft.
FOR recnogroup IN cnogroup
@@ -1521,18 +1529,19 @@ BEGIN
COMMIT;
END IF; -- Geldig importbestand wat betreft aantal inserts
COMMIT;
FOR recwerkplek IN cwerkplek
LOOP
BEGIN
prs.movetoruimte (recwerkplek.prs_perslid_key, recwerkplek.alg_ruimte_key, 'R', 0);
-- Maximaal <20><>n werkplek per gebouw
prs.movetoruimte (recwerkplek.prs_perslid_key, recwerkplek.alg_ruimte_key, 'G', 0);
END;
END LOOP;
END pchd_update_perslid;
/
------ payload end ------