From 70e882f32d0d7dc4e1ade1fe144a9d92b25f1ac3 Mon Sep 17 00:00:00 2001 From: Maykel Geerdink Date: Thu, 8 Jun 2017 07:10:29 +0000 Subject: [PATCH] VLKC#40792: foutmelding bij inlezen personenbestand, onbekende foutmelding. KFNS#40810: AiAi - self_register FAC_AUDIT wordt gemuteerd en mag niet door trigger/functie. svn path=/Website/branches/v2017.1/; revision=34167 --- APPL/PRS/self_register_save.asp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/APPL/PRS/self_register_save.asp b/APPL/PRS/self_register_save.asp index c4ca2aa86d..8687a9869a 100644 --- a/APPL/PRS/self_register_save.asp +++ b/APPL/PRS/self_register_save.asp @@ -54,11 +54,18 @@ if (!oRs.eof) expire.setMinutes(expire.getMinutes() - S("self_register_expire")); if (expire > aanmaak) { - var sql = "DELETE prs_v_aanwezigperslid" - + " WHERE (UPPER(prs_perslid_email) =" + safe.quoted_sql_upper(email) + " OR " - + " UPPER(prs_perslid_oslogin) = " + safe.quoted_sql_upper(email, 30) + ")" - + " AND BITAND(prs_perslid_flags, 2) = 2"; - Oracle.Execute(sql); // Cascadeert ook de bookmark weg trouwens + // Referenties in tabellen naar deze pers_perslid_key moeten eerst verwijderd worden. + // Door cascade verwijderen van deze record onstaan audits op die tabellen die audit tracking hebben. + // Daardoor onstaan "ORA-04091:table VLKC.FAC_AUDIT is mutating, trigger/function may not see it" foutmeldingen + // op de delete van de prs_perslid_key uit de prs_perslid tabel. + // De tabellen prs_kostenplaats, prs_kostenplaatsgrp, prs_perslidkostenplaats en fac_gebruikersgroep hebben een prs_perslid_key referentie en audit tracking. + // Hier alleen regel uit fac_gebruikersgroep verwijderen omdat deze is aangemaakt. Regels uit de andere tabellen kunnen nog niet aangemaakt zijn. + var prs_key = oRs("prs_perslid_key").Value; + Oracle.Execute("DELETE FROM fac_gebruikersgroep WHERE prs_perslid_key = " + prs_key); + + var sql = "DELETE prs_v_aanwezigperslid" + + " WHERE prs_perslid_key = " + prs_key; + Oracle.Execute(sql); // Cascadeert ook de bookmark weg trouwens } else abort_with_warning(L("lcl_self_register_active")); // Er loopt nog een aanvraag