OFWD#89616 oplevering Zendesk koppeling

svn path=/Customer/trunk/; revision=70844
This commit is contained in:
Arthur Egberink
2025-11-06 12:16:10 +00:00
parent 3f1b6d0306
commit f1fec5118e

View File

@@ -25,6 +25,12 @@ SET DEFINE OFF
CREATE OR REPLACE PACKAGE OFWD
AS
PROCEDURE create_fac_usrdata_node (p_key IN NUMBER,
p_custid IN VARCHAR2,
p_sessionid IN VARCHAR2,
p_extra IN VARCHAR2,
p_where IN VARCHAR2);
PROCEDURE update_devices_from_ad(p_import_key IN NUMBER);
END;
/
@@ -32,10 +38,48 @@ END;
CREATE OR REPLACE PACKAGE BODY OFWD
AS
PROCEDURE create_fac_usrdata_node (p_key IN NUMBER,
p_custid IN VARCHAR2,
p_sessionid IN VARCHAR2,
p_extra IN VARCHAR2,
p_where IN VARCHAR2)
AS
v_fac_usrtab_key fac_usrdata.fac_usrtab_key%TYPE;
v_fac_usrdata_code fac_usrdata.fac_usrdata_code%TYPE;
v_fac_usrdata_omschr fac_usrdata.fac_usrdata_omschr%TYPE;
v_fac_usrdata_omschr2 fac_usrdata.fac_usrdata_omschr2%TYPE;
v_fac_usrdata_prijs fac_usrdata.fac_usrdata_prijs%TYPE;
BEGIN
IF p_key IS NOT NULL
THEN
XML.createconciseopentag ('fac_usrdata');
SELECT fac_usrdata.fac_usrtab_key,
fac_usrdata.fac_usrdata_code,
fac_usrdata.fac_usrdata_omschr,
fac_usrdata.fac_usrdata_omschr2,
fac_usrdata.fac_usrdata_prijs
INTO v_fac_usrtab_key,
v_fac_usrdata_code,
v_fac_usrdata_omschr,
v_fac_usrdata_omschr2,
v_fac_usrdata_prijs
FROM fac_usrdata
WHERE fac_usrdata_key = p_key;
XML.createxmltagvalue ('tabel_key', v_fac_usrtab_key);
XML.createxmltagvalue ('code', v_fac_usrdata_code);
XML.createxmltagvalue ('omschrijving', v_fac_usrdata_omschr);
XML.createxmltagvalue ('omschrijving2', v_fac_usrdata_omschr2);
XML.createxmltagvalue ('prijs', XML.mynumbertochar(v_fac_usrdata_prijs));
XML.createclosetag ('fac_usrdata');
END IF;
END;
PROCEDURE update_devices_from_ad(p_import_key IN NUMBER)
AS
-- sql = "id,deviceName,serialNumber,lastSyncDateTime,userDisplayName,emailaddress,phoneNumber,imei,manufacturer,model,enrolledDateTime) "
CURSOR c_upd IS
SELECT c.fac_imp_csv_col01 id,
@@ -53,6 +97,7 @@ AS
CAST (
FROM_TZ (CAST (TO_DATE (REPLACE (c.fac_imp_csv_col11, 'Z'), 'yyyy-mm-dd"T"hh24:mi:ss') AS TIMESTAMP), 'UTC')
AT TIME ZONE 'Europe/Amsterdam' AS DATE) enrolledDateTime,
c.fac_imp_csv_col12 azureADDeviceId,
d.ins_deel_key
FROM fac_imp_csv c, ins_deel d
WHERE c.fac_import_key = p_import_key
@@ -73,11 +118,20 @@ AS
c.fac_imp_csv_col10 model,
CAST (
FROM_TZ (CAST (TO_DATE (REPLACE (c.fac_imp_csv_col11, 'Z'), 'yyyy-mm-dd"T"hh24:mi:ss') AS TIMESTAMP), 'UTC')
AT TIME ZONE 'Europe/Amsterdam' AS DATE) enrolledDateTime
AT TIME ZONE 'Europe/Amsterdam' AS DATE) enrolledDateTime,
c.fac_imp_csv_col12 azureADDeviceId
FROM fac_imp_csv c
WHERE c.fac_import_key = p_import_key
AND NOT EXISTS (SELECT 1 FROM ins_deel d WHERE d.ins_deel_externnr = c.fac_imp_csv_col01);
CURSOR c_del IS
SELECT ins_deel_key
FROM ins_deel
WHERE ins_deel_verwijder IS NULL
AND ins_deel_externnr IS NOT NULL
AND ins_deel_externnr NOT IN (SELECT fac_imp_csv_col01
FROM fac_imp_csv
WHERE fac_import_key = p_import_key);
v_discipline_key NUMBER;
v_srtdeel_key NUMBER;
v_locatie_key NUMBER;
@@ -164,8 +218,14 @@ AS
setflex('emailaddress', rec.ins_deel_key, rec.emailaddress, 1);
setflex('phoneNumber', rec.ins_deel_key, rec.phoneNumber, 1);
setflex('enrolledDateTime', rec.ins_deel_key, TO_CHAR(rec.enrolledDateTime, 'yyyy-mm-dd hh24:mi:ss'), 1);
setflex('azureADDeviceId', rec.ins_deel_key, rec.azureADDeviceId, 1);
UPDATE ins_deel SET ins_deel_externsyncdate = SYSDATE WHERE ins_deel_key = rec.ins_deel_key;
END LOOP;
FOR rec IN c_del LOOP
UPDATE ins_deel SET ins_deel_verwijder = SYSDATE WHERE ins_deel_key = rec.ins_deel_key;
END LOOP;
DELETE fac_imp_csv WHERE fac_import_key = p_import_key;
END;
END;
@@ -218,8 +278,9 @@ BEGIN
DELETE fac_imp_organisatie;
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving)
SELECT DISTINCT 'OFW', prs_afdeling_naam, prs_kenmerk2
-- Kostenplaats HR wordt aan de afdeling toegevoegd om instemming voor ergonomische middelen toe te staan.
INSERT INTO fac_imp_organisatie (prs_bedrijf_naam, prs_afdeling_naam, prs_afdeling_omschrijving, prs_kostenplaats_nr)
SELECT DISTINCT 'OFW', prs_afdeling_naam, prs_kenmerk2, 'HR'
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key;
@@ -266,6 +327,12 @@ IS
WHERE p.prs_perslid_nr = i.prs_perslid_nr
AND p.prs_perslid_key = pf.prs_perslid_key;
CURSOR c_bloktitel (c_stdmelding_key NUMBER)
IS
SELECT mld_kenmerk_key, ins_discipline_key
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 24 AND mld_stdmelding_key = c_stdmelding_key;
v_count NUMBER;
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
@@ -289,6 +356,9 @@ BEGIN
IF v_count >= 50
THEN
v_errorhint := 'Verwerken organisatiegegevens';
fac_update_organisatie (p_import_key);
v_errorhint := 'Verwerken persoonsgegevens';
-- Geldig importbestand wat betreft aantal personen
@@ -358,20 +428,24 @@ BEGIN
v_errorhint:='Fout bijwerken kenmerkveld4 - Uitdienst datum';
PRS.upsertkenmerk (v_uitdienst_kenmerk_key, rec.prs_perslid_key, v_uitdienstdatum);
v_errorhint:='Fout bijwerken leidinggevende';
BEGIN
SELECT prs_perslid_key
INTO v_leidg_perslid_key
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr = rec.leid_prs_nr;
UPDATE prs_perslid
SET prs_perslid_key_verantw = v_leidg_perslid_key
WHERE prs_perslid_key = rec.prs_perslid_key;
EXCEPTION WHEN NO_DATA_FOUND
v_leidg_perslid_key := NULL;
IF rec.leid_prs_nr IS NOT NULL
THEN
fac.imp_writelog (p_import_key, 'E', 'Leidinggevende kan niet gevonden worden: ' || rec.leid_prs_nr, '');
END;
v_errorhint:='Fout bijwerken leidinggevende';
BEGIN
SELECT prs_perslid_key
INTO v_leidg_perslid_key
FROM prs_v_aanwezigperslid p
WHERE p.prs_perslid_nr = rec.leid_prs_nr;
UPDATE prs_perslid
SET prs_perslid_key_verantw = v_leidg_perslid_key
WHERE prs_perslid_key = rec.prs_perslid_key;
EXCEPTION WHEN NO_DATA_FOUND
THEN
fac.imp_writelog (p_import_key, 'E', 'Leidinggevende kan niet gevonden worden: ' || rec.leid_prs_nr, '');
END;
END IF;
-- Aanmaken in diensttredingsmelding
-- Persoon is vandaag aangemaakt.
@@ -411,6 +485,13 @@ BEGIN
INTO v_melding_key;
mld.setmeldingstatus (v_melding_key, 2, null); -- nieuw
FOR rec_bt IN c_bloktitel(v_indienst_stdmelding_key)
LOOP
INSERT INTO mld_kenmerkblokmelding (mld_melding_key , mld_kenmerk_key , ins_discipline_key , prs_perslid_key , mld_kenmerkblokmelding_afmelddatum )
VALUES (v_melding_key , rec_bt.mld_kenmerk_key, rec_bt.ins_discipline_key , NULL , NULL );
END LOOP;
END IF;
-- Aanmaken uitdiensttredingsmelding
@@ -451,11 +532,41 @@ BEGIN
INTO v_melding_key;
mld.setmeldingstatus (v_melding_key, 2, null); -- nieuw
FOR rec_bt IN c_bloktitel(v_uitdienst_stdmelding_key)
LOOP
INSERT INTO mld_kenmerkblokmelding (mld_melding_key , mld_kenmerk_key , ins_discipline_key , prs_perslid_key , mld_kenmerkblokmelding_afmelddatum )
VALUES (v_melding_key , rec_bt.mld_kenmerk_key, rec_bt.ins_discipline_key , NULL , NULL );
END LOOP;
END IF;
END;
END LOOP;
-- Voeg standaard rapport toe om de rechten in de opdrachtbon op te nemen.
INSERT INTO prs_kenmerklink (prs_link_key,
prs_kenmerklink_niveau,
prs_kenmerk_key,
prs_kenmerklink_waarde)
WITH
toegekenderechten
AS
(SELECT prs_kenmerk_key
FROM prs_kenmerk
WHERE prs_kenmerk_code = 'TOEGEKENDERECHTENZD')
SELECT prs_perslid_key,
'P',
tr.prs_kenmerk_key,
(SELECT fac_usrrap_key FROM fac_usrrap WHERE fac_usrrap_code = 'TOEGEKENDERECHTENZD')
FROM prs_perslid p, toegekenderechten tr
WHERE prs_perslid_nr IS NOT NULL
AND prs_perslid_verwijder IS NULL
AND NOT EXISTS
(SELECT 1
FROM prs_kenmerklink kl
WHERE kl.prs_kenmerk_key = tr.prs_kenmerk_key AND kl.prs_link_key = p.prs_perslid_key);
ELSE
fac.imp_writelog (p_import_key,
'E',
@@ -488,9 +599,11 @@ AS
WHERE ins_srtdeel_key = 42;
-- Rapportage om de relatie tussen persoon - functie en rol vast te leggen
CREATE OR REPLACE VIEW ofwd_v_rap_prs_rol_recht
AS
SELECT pf.prs_perslid_naam_full naam,
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full naam,
NULL functie,
ins_deel_omschrijving rol,
sd.ins_srtdeel_omschrijving soort_rol,
@@ -519,7 +632,8 @@ AS
AND kde.ins_kenmerk_key = k.ins_kenmerk_key(+)
AND d.ins_srtdeel_key = sd.ins_srtdeel_key(+)
UNION ALL
SELECT pf.prs_perslid_naam_full,
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full,
df.ins_deel_omschrijving,
dr.ins_deel_omschrijving,
sd.ins_srtdeel_omschrijving soort_rol,
@@ -556,6 +670,92 @@ AS
AND dr.ins_deel_key = kde.ins_deel_key(+)
AND kde.ins_kenmerk_key = k.ins_kenmerk_key(+)
AND dr.ins_srtdeel_key = sd.ins_srtdeel_key(+);
-- Omdat bovenstaand rapport te groot werd, zijn de functies en de rechten gescheiden. De stylesheet zoekt ze
-- weer bij elkaar. Deze view is speciaal voor zendesk
CREATE OR REPLACE VIEW ofwd_v_rap_prs_rol_recht_zd
AS
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full naam,
TO_CHAR (NULL) functie,
ins_deel_omschrijving rol,
ins_deel_key rol_key,
TO_CHAR (NULL) soort_rol,
TO_CHAR (NULL) groep,
TO_CHAR (NULL) recht
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_kenmerklink kl,
prs_kenmerk k,
fac_kenmerkdomein kdo,
ins_deel d,
prs_v_afdeling a
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 41 -- OFW
AND p.prs_perslid_key = kl.prs_link_key(+)
AND kl.prs_kenmerk_key = k.prs_kenmerk_key
AND k.fac_kenmerkdomein_key = kdo.fac_kenmerkdomein_key(+)
AND kdo.fac_kenmerkdomein_xmlnode = 'deel'
AND fac.safe_to_number (kl.prs_kenmerklink_waarde) = d.ins_deel_key(+)
UNION ALL
SELECT pf.prs_perslid_key,
pf.prs_perslid_naam_full,
df.ins_deel_omschrijving functie,
dr.ins_deel_omschrijving rol,
dr.ins_deel_key rol_key,
NULL soort_rol,
NULL groep,
NULL recht
FROM prs_perslid p,
prs_v_perslid_fullnames pf,
prs_srtperslid sp,
(SELECT ins_deel_key, fac.safe_to_number (ins_kenmerkdeel_waarde) ins_kenmerkdeel_waarde
FROM ins_kenmerkdeel
WHERE ins_kenmerk_key = 21) kdf,
ins_deel df,
(SELECT ins_deelkoppeling_van_key, ins_deelkoppeling_naar_key
FROM ins_deelkoppeling
WHERE ins_deelkoppeling_verwijder IS NULL
UNION
SELECT ins_deelkoppeling_naar_key, ins_deelkoppeling_van_key
FROM ins_deelkoppeling
WHERE ins_deelkoppeling_verwijder IS NULL) dk,
ins_deel dr,
ins_srtdeel sd,
prs_v_afdeling a
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_bedrijf_key = 41 -- OFW
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND sp.prs_srtperslid_key = kdf.ins_kenmerkdeel_waarde(+)
AND kdf.ins_deel_key = df.ins_deel_key(+)
AND df.ins_deel_key = dk.ins_deelkoppeling_van_key(+)
AND dk.ins_deelkoppeling_naar_key = dr.ins_deel_key(+)
AND dr.ins_srtdeel_key = sd.ins_srtdeel_key(+)
UNION ALL
SELECT NULL,
NULL,
NULL functie,
dr.ins_deel_omschrijving rol,
dr.ins_deel_key rol_key,
sd.ins_srtdeel_omschrijving soort_rol,
DECODE (TRUNC (k.ins_kenmerk_volgnummer, -2), 100, 'Sharepoint', 300, 'Mail', 500, 'Applicatie') groep,
k.ins_kenmerk_omschrijving
FROM ins_deel dr,
ins_kenmerkdeel kde,
ins_kenmerk k,
ins_srtdeel sd
WHERE sd.ins_srtgroep_key = 22 -- Rol
AND dr.ins_deel_key = kde.ins_deel_key(+)
AND kde.ins_kenmerk_key = k.ins_kenmerk_key(+)
AND dr.ins_srtdeel_key = sd.ins_srtdeel_key(+);
------ payload end ------
SET DEFINE OFF