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
This commit is contained in:
Maykel Geerdink
2017-06-08 07:10:29 +00:00
parent b7ad692298
commit 70e882f32d

View File

@@ -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