UWVA#90416+UWVA#90417 AFTERSALES-export/Meldingomschrijving van CHAR naar CLOB (en actualiseren)

svn path=/Customer/trunk/; revision=70133
This commit is contained in:
Maarten van der Heide
2025-08-28 09:00:38 +00:00
parent edf5cad7a5
commit d227e3a7ff

View File

@@ -19,11 +19,10 @@ SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PROCEDURE uwva_aftersales_anonimiseer (
p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
CREATE OR REPLACE PROCEDURE uwva_aftersales_anonimiseer (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2,
p_filedir IN VARCHAR2,
p_filename IN VARCHAR2)
AS
c_txt_anoniem VARCHAR2 (200) := 'Geanonimiseerd';
v_errormsg VARCHAR2 (1000);
@@ -56,7 +55,7 @@ AS
CURSOR c_vertaal
IS
SELECT m.mld_melding_key, km.mld_kenmerkmelding_key, km.mld_kenmerk_key
FROM mld_melding m, mld_kenmerkmelding km--, fac_tracking tr
FROM mld_melding m, mld_kenmerkmelding km --, fac_tracking tr
WHERE m.mld_stdmelding_key = 1301 -- Vertaalwerk
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
@@ -70,7 +69,7 @@ AS
CURSOR c_archief_dossier_hulshoff
IS
SELECT m.mld_melding_key, km.mld_kenmerkmelding_key
FROM mld_melding m, mld_kenmerkmelding km--, fac_tracking tr
FROM mld_melding m, mld_kenmerkmelding km --, fac_tracking tr
WHERE m.mld_stdmelding_key IN (2, 146, 2961) -- Vraag over archief+Overdracht naar Hulshoff+Verwijderen dossiers
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
@@ -89,7 +88,7 @@ AS
CURSOR c_tolk
IS
SELECT m.mld_melding_key, km.mld_kenmerkmelding_key
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k--, fac_tracking tr
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k --, fac_tracking tr
WHERE m.mld_stdmelding_key IN (2801, 2802, 2821, 3421, 3422, 3423) -- Tolkdiensten (op UWV locatie+telefonisch+extern)
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
@@ -100,7 +99,7 @@ AS
--AND tr.fac_tracking_datum > SYSDATE - 365 --MvH toegevoegd tbv performance
UNION ALL
SELECT m.mld_melding_key, km.mld_kenmerkmelding_key
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k--, fac_tracking tr
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k --, fac_tracking tr
WHERE m.mld_stdmelding_key = 1721 -- Tolk Nederlandse gebarentaal
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
@@ -117,7 +116,7 @@ AS
CURSOR c_mld_kenmerksoorten
IS
SELECT DISTINCT m.mld_melding_key
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k--, fac_tracking tr
FROM mld_melding m, mld_kenmerkmelding km, mld_kenmerk k --, fac_tracking tr
WHERE m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key IN (1267, -- Adres
@@ -136,7 +135,7 @@ AS
CURSOR c_bes_kenmerksoorten
IS
SELECT DISTINCT b.bes_bestelling_key
FROM bes_bestelling b, bes_kenmerkbestell kb, bes_kenmerk k--, fac_tracking tr
FROM bes_bestelling b, bes_kenmerkbestell kb, bes_kenmerk k --, fac_tracking tr
WHERE b.bes_bestelling_key = kb.bes_bestelling_key
AND kb.bes_kenmerk_key = k.bes_kenmerk_key
AND k.bes_srtkenmerk_key IN (4, 5, 8) -- Afgeven bij/Straat huisnummer/Telefoon
@@ -146,34 +145,16 @@ AS
--AND tr.fac_tracking_datum > SYSDATE - 365 --MvH toegevoegd tbv performance
ORDER BY 1;
-- Delete 'BSN' van alle bezoekers bij afspraken >31 dagen oud! (UWVA#28511)
-- Met UWVA#59571 is de opschoning vwb de bezoekers- en afspraakregistratie een stuk vereenvoudigd en daarmee deze cursor ook.
-- Of een BSN gevuld is is niet meer van toepassing, van alle bezoekers meer dan 31 dagen geleden mag er geanonimiseerd/geschoond worden.
-- De bezoekersregistratie zelf laten we wel nog staan ivm tellingen.
CURSOR c_afspraak
IS -- Afspraken met een bezoeker met een gevuld BSN-veld!
SELECT DISTINCT a.bez_afspraak_key
FROM bez_afspraak a, bez_bezoekers b, bez_kenmerkwaarde bk
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND b.bez_bezoekers_key = bk.bez_bezoekers_key
AND bk.bez_kenmerk_key = 1 --BSN
--AND a.bez_afspraak_datum < SYSDATE - 31 ***Ook toekomstig!***
AND a.bez_afspraak_datum > SYSDATE - 365 --MvH toegevoegd tbv performance
UNION
SELECT DISTINCT a.bez_afspraak_key
IS
SELECT DISTINCT (a.bez_afspraak_key)
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND (LENGTH (REPLACE (bez_afspraak_bedrijf || 'x', ' ', '')) - LENGTH (REPLACE (TRANSLATE (bez_afspraak_bedrijf || 'x', '1234567890', ' '), ' ', '')) > 5
OR LENGTH (REPLACE (bez_afspraak_naam || 'x', ' ', '')) - LENGTH (REPLACE (TRANSLATE (bez_afspraak_naam || 'x', '1234567890', ' '), ' ', '')) > 5)
WHERE a.bez_afspraak_key = b.bez_afspraak_key
--AND a.bez_afspraak_datum < SYSDATE - 31 ***Ook toekomstig!***
AND a.bez_afspraak_datum > SYSDATE - 365 --MvH toegevoegd tbv performance
UNION -- Afspraken bij een reservering met een gevuld BSN-veld (voordat die in c_res wordt verwijderd)!
SELECT a.bez_afspraak_key
FROM bez_afspraak a, res_rsv_ruimte r, res_kenmerkwaarde kw, res_kenmerk k
WHERE a.res_rsv_ruimte_key = r.res_rsv_ruimte_key
AND r.res_rsv_ruimte_key = kw.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 3 --BSN
--AND a.bez_afspraak_datum < SYSDATE - 31 ***Ook toekomstig!***
AND a.bez_afspraak_datum > SYSDATE - 365 --MvH toegevoegd tbv performance
ORDER BY bez_afspraak_key;
AND a.bez_afspraak_datum > SYSDATE - 365;
-- Reserveringen met een gevuld BSN-veld (deze hebben hier geen bezoekers meer met een gevuld BSN-veld)!
CURSOR c_res
@@ -247,11 +228,11 @@ BEGIN
WHERE COALESCE (mld_opdr_omschrijving, '-') NOT LIKE '[Geanonimiseerd%'
AND mld_melding_key IN
(SELECT mld_melding_key
FROM mld_melding m--, fac_tracking tr
FROM mld_melding m --, fac_tracking tr
WHERE m.mld_stdmelding_key = 1301 -- Vertaalwerk
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
--AND tr.fac_tracking_datum < SYSDATE
--AND tr.fac_tracking_datum < SYSDATE - 60
AND 1=1);
EXECUTE IMMEDIATE 'ALTER TRIGGER MLD_T_MLD_OPDR_B_IU ENABLE';
@@ -272,7 +253,7 @@ BEGIN
UPDATE mld_melding
SET mld_melding_omschrijving = '[Geanonimiseerd.]',
mld_melding_onderwerp = '[Geanonimiseerd.]'
WHERE COALESCE (mld_melding_omschrijving, mld_melding_onderwerp) NOT LIKE '[Geanonimiseerd%'
WHERE COALESCE (TO_CHAR(SUBSTR(mld_melding_omschrijving, 1, 4000)), mld_melding_onderwerp) NOT LIKE '[Geanonimiseerd%'
AND mld_melding_key = rc.mld_melding_key;
-- Delete 'Te verwijderen dossiers' (kenmerk met key=2385).
@@ -291,11 +272,11 @@ BEGIN
WHERE COALESCE (mld_opdr_omschrijving, '-') NOT LIKE '[Geanonimiseerd%'
AND mld_melding_key IN
(SELECT mld_melding_key
FROM mld_melding m--, fac_tracking tr
FROM mld_melding m --, fac_tracking tr
WHERE m.mld_stdmelding_key IN (2, 146, 2961) -- Vraag over archief+Overdracht naar Hulshoff+Verwijderen dossiers
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
--AND tr.fac_tracking_datum < SYSDATE
--AND tr.fac_tracking_datum < SYSDATE - 31
AND 1=1);
EXECUTE IMMEDIATE 'ALTER TRIGGER MLD_T_MLD_OPDR_B_IU ENABLE';
@@ -318,7 +299,7 @@ BEGIN
SET mld_melding_omschrijving = '[Geanonimiseerd.]',
mld_melding_onderwerp = '[Geanonimiseerd.]'
WHERE mld_stdmelding_key IN (3421, 3422, 3423, 1721)
AND COALESCE (mld_melding_omschrijving, mld_melding_onderwerp) NOT LIKE '[Geanonimiseerd%'
AND COALESCE (TO_CHAR(SUBSTR(mld_melding_omschrijving, 1, 4000)), mld_melding_onderwerp) NOT LIKE '[Geanonimiseerd%'
AND mld_melding_key = rc.mld_melding_key;
-- Delete 'Naam klant' (kenmerksoort met key=1500) of 'Naam gesprekspartner UWV' (kenmerksoort met key=701).
@@ -338,7 +319,7 @@ BEGIN
WHERE COALESCE (mld_opdr_omschrijving, '-') NOT LIKE '[Geanonimiseerd%'
AND mld_melding_key IN
(SELECT mld_melding_key
FROM mld_melding m--, fac_tracking tr
FROM mld_melding m --, fac_tracking tr
WHERE m.mld_stdmelding_key IN (2801, 2802, 2821, 3421, 3422, 3423, 1721) -- Tolkdiensten (op UWV locatie+telefonisch+extern)
--AND m.mld_melding_key = tr.fac_tracking_refkey
--AND tr.fac_srtnotificatie_key IN (18, 22) -- MLDAFM/MLDREJ
@@ -390,7 +371,7 @@ BEGIN
------------------------------------------------------------------------------------------------------------------------------------------------------------------
FOR rc IN c_afspraak
LOOP
-- Delete 'BSN' van alle bezoekers bij afspraken >31 dagen oud (UWVA#28511)
-- Anonimiseren van alle bezoekersregistratie > 31 dagen oud en verwijderen tracking (UWVA#59571)
DELETE FROM bez_kenmerkwaarde kw
WHERE EXISTS
(SELECT 1
@@ -401,35 +382,94 @@ BEGIN
-- UWVA#30245: Anonimiseren bez_bezoekers.bez_bezoekers_opmerking hoeft
-- niet, want bevat geen vertrouwelijke info!
-- Anonimiseer gegevens per bezoeker van afspraken >31 dagen oud met BSN (bij bezoeker of reservering)
-- Anonimiseer gegevens per bezoeker van afspraken >31 dagen oud (bij bezoeker of reservering)
-- Met UWVA#59571 moeten bepaalde bezoekersregistraties (KZ) naar 'Anoniem', anderen naar 'Bezoeker'
-- Dat gaat via eigen tabel 'KZ-klant zone' waarin de betreffende activiteit-key staat van de KZ activiteiten (die wijzigen minder vaak)
UPDATE bez_bezoekers
SET bez_afspraak_naam = 'Anoniem', bez_afspraak_bedrijf = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key;
WHERE bez_afspraak_key = rc.bez_afspraak_key
AND bez_afspraak_key IN
(SELECT a2.bez_afspraak_key
FROM fac_usrdata ud,
bez_afspraak a2,
res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663); -- Eigen tabel Klantzone
UPDATE bez_bezoekers
SET bez_afspraak_naam = 'Bezoeker', bez_afspraak_bedrijf = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key
AND bez_afspraak_key NOT IN
(SELECT a2.bez_afspraak_key
FROM fac_usrdata ud,
bez_afspraak a2,
res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663); -- Eigen tabel Klantzone
-- Verwijder opmerking van afspraken >31 dagen oud met BSN (bij bezoeker of reservering)
UPDATE bez_afspraak
SET bez_afspraak_opmerking = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key;
-- Met UWVA#59571 moeten de reserveringsopmerkingen ook leeg worden gemaakt voor de kz-reserveringen.
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_opmerking = NULL
WHERE res_rsv_ruimte_key IN
(SELECT r.res_rsv_ruimte_key
FROM fac_usrdata ud, bez_afspraak a2, res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key = r.res_rsv_ruimte_key
AND a2.bez_afspraak_key = rc.bez_afspraak_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663);
DELETE FROM fac_tracking
WHERE fac_srtnotificatie_key = 334 -- BEZUPD
AND fac_tracking_refkey = rc.bez_afspraak_key;
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_bezoekers b,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'bezoeker'
AND t.fac_tracking_refkey =
b.bez_bezoekers_key
AND b.bez_afspraak_key = a.bez_afspraak_key
AND t.fac_tracking_refkey =
rc.bez_afspraak_key);
DELETE FROM fac_tracking t1
WHERE t1.fac_srtnotificatie_key IN (14, 15, 61, 62, 154) -- BEZDON/BEZOUT/BEZDO2/BEZOU2/BEZBAD
AND t1.fac_tracking_oms IS NOT NULL -- Niet van belang
AND EXISTS
(SELECT 1
FROM bez_bezoekers b
WHERE b.bez_afspraak_key = rc.bez_afspraak_key
AND b.bez_bezoekers_key = t1.fac_tracking_refkey);
fac.trackaction ('#BEZUPD', rc.bez_afspraak_key, NULL, v_nu, c_txt_anoniem);
DELETE FROM fac_tracking
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'afspraak'
AND t.fac_tracking_refkey =
a.bez_afspraak_key
AND t.fac_tracking_refkey =
rc.bez_afspraak_key);
END LOOP;
COMMIT;
------------------------------------------------------------------------------------------------------------------------------------------------------------------
FOR rc IN c_res
LOOP
-- Cursor bevat reserveringen met BSN die moeten worden geanonimiseerd.