565 lines
18 KiB
Plaintext
565 lines
18 KiB
Plaintext
/*
|
|
* $Revision: 52 $
|
|
* $Modtime: 12-07-11 17:00 $
|
|
*
|
|
*/
|
|
|
|
#define FAC_ERROR_CODE -20999
|
|
|
|
CREATE_TRIGGER(fac_t_fac_error_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_error
|
|
FOR EACH ROW
|
|
BEGIN
|
|
APPLICATION_ERROR(FAC_ERROR_CODE, '');
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_functie_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_functie
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_functie_key, fac_s_fac_functie_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_groep_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_groep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :new.fac_groep_verwijder IS NOT NULL AND :old.fac_groep_verwijder IS NULL
|
|
THEN
|
|
-- Cascade
|
|
DELETE FROM fac_groeprechten
|
|
WHERE fac_groep_key = :new.fac_groep_key;
|
|
DELETE FROM fac_gebruikersgroep
|
|
WHERE fac_groep_key = :new.fac_groep_key;
|
|
END IF;
|
|
UPDATE_PRIMARY_KEY(fac_groep_key, fac_s_fac_groep_key);
|
|
:new.fac_groep_upper := UPPER(:new.fac_groep_omschrijving);
|
|
:new.fac_groep_aanmaak := SYSDATE;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_gebruikersgroep_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_gebruikersgroep
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_gebruikersgroep_key, fac_s_fac_gebruikersgroep_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_groeprechten_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_groeprechten
|
|
FOR EACH ROW
|
|
DECLARE
|
|
Dummy BOOLEAN;
|
|
keepit NUMBER;
|
|
funclevel NUMBER;
|
|
BEGIN
|
|
-- We need a key, even if we decide to remove this record later
|
|
UPDATE_PRIMARY_KEY(fac_groeprechten_key, fac_s_fac_groeprechten_key);
|
|
|
|
-- Determine whether we really need to store these values
|
|
/* see web_ini for meaning of this bitwise value */
|
|
SELECT fac_functie_min_level
|
|
INTO funclevel
|
|
FROM fac_functie
|
|
WHERE fac_functie_key=:new.fac_functie_key;
|
|
|
|
keepit:=0;
|
|
--Keep if any used property has not-a-9 value; unused properties are discarded
|
|
IF funclevel=0 AND -- all values will be equal by definition here
|
|
:new.fac_gebruiker_prs_level_read <> 9
|
|
AND :new.fac_gebruiker_prs_level_write <> 9
|
|
AND :new.fac_gebruiker_alg_level_read <> 9
|
|
AND :new.fac_gebruiker_alg_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=1 AND -- read
|
|
:new.fac_gebruiker_prs_level_read <> 9
|
|
AND :new.fac_gebruiker_alg_level_read <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=2 AND -- write
|
|
:new.fac_gebruiker_prs_level_write <> 9
|
|
AND :new.fac_gebruiker_alg_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=3 AND -- read or write
|
|
((:new.fac_gebruiker_prs_level_read <> 9
|
|
AND :new.fac_gebruiker_alg_level_read <> 9) OR
|
|
(:new.fac_gebruiker_prs_level_write <> 9
|
|
AND :new.fac_gebruiker_alg_level_write <> 9))
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=4 AND -- unused
|
|
:new.fac_gebruiker_prs_level_read <> 9
|
|
AND :new.fac_gebruiker_prs_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=5 AND -- prs read
|
|
:new.fac_gebruiker_prs_level_read <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=6 AND -- prs write, probably unused
|
|
:new.fac_gebruiker_prs_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=7 AND -- prs read n write
|
|
(:new.fac_gebruiker_prs_level_read <> 9 OR
|
|
:new.fac_gebruiker_prs_level_write <> 9)
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=8 AND -- unused
|
|
:new.fac_gebruiker_alg_level_read <> 9
|
|
AND :new.fac_gebruiker_alg_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=9 AND -- alg read
|
|
:new.fac_gebruiker_alg_level_read <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=10 AND -- alg write, probably unused
|
|
:new.fac_gebruiker_alg_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=11 AND -- alg read n write
|
|
(:new.fac_gebruiker_alg_level_read <> 9 OR
|
|
:new.fac_gebruiker_alg_level_write <> 9)
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=12 AND -- unused
|
|
:new.fac_gebruiker_prs_level_read <> 9
|
|
AND :new.fac_gebruiker_prs_level_write <> 9
|
|
AND :new.fac_gebruiker_alg_level_read <> 9
|
|
AND :new.fac_gebruiker_alg_level_write <> 9
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=13 AND -- prs/alg read
|
|
(:new.fac_gebruiker_prs_level_read <> 9
|
|
OR :new.fac_gebruiker_alg_level_read <> 9)
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=14 AND -- prs/alg write, probably unused
|
|
(:new.fac_gebruiker_prs_level_write <> 9
|
|
OR :new.fac_gebruiker_alg_level_write <> 9)
|
|
THEN keepit:=1;
|
|
ELSIF funclevel=15 AND -- prs/alg read n write
|
|
(:new.fac_gebruiker_prs_level_read <> 9
|
|
OR :new.fac_gebruiker_prs_level_write <> 9
|
|
OR :new.fac_gebruiker_alg_level_read <> 9
|
|
OR :new.fac_gebruiker_alg_level_write <> 9)
|
|
THEN keepit:=1;
|
|
END IF;
|
|
IF keepit=0 THEN
|
|
Dummy := Fac_P_Fac_Save_Restore.SavePrimaryKey('FAC_GROEPRECHTEN',:new.fac_groeprechten_key);
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
-- SQLS heeft deze trigger niet nodig: de rechten worden in de 'before' al verwijderd
|
|
-- omdat bij SQLS de 'before' altijd een 'after' is.
|
|
CREATE_TRIGGER(fac_t_fac_groeprechten_A_IU)
|
|
AFTER INSERT OR UPDATE ON fac_groeprechten
|
|
DECLARE
|
|
PrimKey NUMBER(10);
|
|
Dummy BOOLEAN;
|
|
IndexNr NUMBER;
|
|
BEGIN
|
|
IndexNr := 1;
|
|
PrimKey := Fac_P_Fac_Save_Restore.GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
|
|
WHILE PrimKey IS NOT NULL
|
|
LOOP
|
|
DELETE
|
|
FROM FAC_groeprechten
|
|
WHERE fac_groeprechten_key = PrimKey;
|
|
IndexNr := IndexNr + 1;
|
|
PrimKey := Fac_P_Fac_Save_Restore.GetPrimaryKey('FAC_GROEPRECHTEN',IndexNr);
|
|
END LOOP;
|
|
Dummy := fac_p_fac_save_restore.ResetSelectie('FAC_GROEPRECHTEN');
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE_TRIGGER(fac_t_fac_entity_name_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_entity_name
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_UPPER(fac_entity_system_name, fac_entity_system_name, fac_entity_name);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_message_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_message
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_UPPER(fac_message_code, fac_message_code, fac_message);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_usrtab_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_usrtab
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_usrtab_key, fac_s_fac_usrtab_key);
|
|
:new.fac_usrtab_object := 'USR_'||UPPER(:new.fac_usrtab_naam);
|
|
UPDATE_AANMAAKDATUM(fac_usrtab, fac_usrtab_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_usrdata_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_usrdata
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_usrdata_key, fac_s_fac_usrdata_key);
|
|
:new.fac_usrdata_upper := UPPER(:new.fac_usrdata_code);
|
|
UPDATE_AANMAAKDATUM(fac_usrdata, fac_usrdata_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_usrrap_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_usrrap
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_usrrap_key, fac_s_fac_usrrap_key);
|
|
UPDATE_AANMAAKDATUM(fac_usrrap, fac_usrrap_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_mgtrap_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_mgtrap
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_mgtrap_key, fac_s_fac_mgtrap_key);
|
|
UPDATE_AANMAAKDATUM(fac_mgtrap, fac_mgtrap_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_imp_schedule_B_IU)
|
|
BEFORE INSERT OR UPDATE ON imp_schedule
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(imp_schedule_key, fac_s_imp_schedule_key);
|
|
UPDATE_AANMAAKDATUM(imp_schedule, imp_schedule_aanmaak);
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE_TRIGGER(fac_t_fac_profiel_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_profiel
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_profiel_key, fac_s_fac_profiel_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_profielwaarde_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_profielwaarde
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_profielwaarde_key, fac_s_fac_profielwaarde_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_srtnotificatie_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_srtnotificatie
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_srtnotificatie_key, fac_s_fac_srtnotificatie_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_notificatie_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_notificatie
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_notificatie_key, fac_s_fac_notificatie_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_notificatie_B_I)
|
|
BEFORE INSERT
|
|
ON fac_notificatie
|
|
FOR EACH ROW
|
|
DECLARE
|
|
loms web_user_messages.web_user_mess_dsc%TYPE;
|
|
BEGIN
|
|
-- Kopieer direct naar statusinformatie op de portal indien van toepassing
|
|
IF BITAND (:NEW.fac_notificatie_status, 1) = 1 AND :new.prs_perslid_key_receiver IS NOT NULL
|
|
THEN
|
|
-- strip zodat we alleen de eerste regel overhouden
|
|
loms := :NEW.fac_notificatie_oms;
|
|
IF INSTR (loms, chr(13)) > 0 THEN
|
|
loms := SUBSTR (loms, 1, INSTR (loms, chr(13)) -1);
|
|
END IF;
|
|
IF INSTR (loms, chr(10)) > 0 THEN
|
|
loms := SUBSTR (loms, 1, INSTR (loms, chr(10)) -1);
|
|
END IF;
|
|
-- Verwijder oude gelijkluidende berichten
|
|
-- Noot: die check op _dsc voorkomt dat bij meerdere bezoekers alleen de laatste overblijft
|
|
DELETE FROM web_user_messages
|
|
WHERE fac_srtnotificatie_key = :NEW.fac_srtnotificatie_key
|
|
AND prs_perslid_key_receiver = :NEW.prs_perslid_key_receiver
|
|
AND web_user_mess_action_params = :NEW.fac_notificatie_refkey
|
|
AND web_user_mess_dsc = loms;
|
|
|
|
-- En voeg de nieuwe toe. Let op: als een extrakey bekend is, wordt die als parameter gebruikt, anders gewoon refkey
|
|
INSERT INTO web_user_messages
|
|
(prs_perslid_key_sender, prs_perslid_key_receiver, web_user_mess_dsc, web_user_mess_action_status,
|
|
web_user_mess_action_params, fac_srtnotificatie_key, web_user_mess_prioriteit
|
|
)
|
|
VALUES (:NEW.prs_perslid_key_sender, :NEW.prs_perslid_key_receiver, loms, 1,
|
|
COALESCE (:NEW.fac_notificatie_extrakey, :NEW.fac_notificatie_refkey), :NEW.fac_srtnotificatie_key,
|
|
:NEW.fac_notificatie_prioriteit
|
|
);
|
|
|
|
-- Clear the notify_to_statinfo bit
|
|
:NEW.fac_notificatie_status := BITAND (:NEW.fac_notificatie_status, 255 - 1);
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_notificatie_A_U)
|
|
AFTER UPDATE ON fac_notificatie
|
|
BEGIN
|
|
-- Ruim alle totaal verwerkte notificaties op.
|
|
DELETE FROM fac_notificatie WHERE fac_notificatie_status=0;
|
|
// Conceptje
|
|
// DELETE FROM web_user_messages w
|
|
// WHERE w.web_user_message_key IN (
|
|
// SELECT web_user_message_key
|
|
// FROM web_user_messages ww, fac_srtnotificatie ff
|
|
// WHERE ww.fac_srtnotificatie_key = ff.fac_srtnotificatie_key
|
|
// AND ff.fac_srtnotificatie_purgemode = 1
|
|
// AND ww.web_user_mess_action_status <> 1
|
|
// UNION ALL
|
|
// SELECT web_user_message_key
|
|
// FROM web_user_messages ww, fac_srtnotificatie ff
|
|
// WHERE ww.fac_srtnotificatie_key = ff.fac_srtnotificatie_key
|
|
// AND ff.fac_srtnotificatie_purgemode = 2
|
|
// AND ww.web_user_mess_action_datum < SYSDATE - 14)
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_notificatie_job_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_notificatie_job
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_notificatie_job_key, fac_s_fac_notificatie_job_key);
|
|
:new.fac_notificatie_job_view:=UPPER(:new.fac_notificatie_job_view);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_import_app_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_import_app
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_import_app_key, fac_s_fac_import_app_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_import_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_import
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_import_key, fac_s_fac_import_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(imp_t_notificatie_imp_log)
|
|
AFTER INSERT
|
|
ON imp_log
|
|
FOR EACH ROW
|
|
BEGIN
|
|
DECLARE
|
|
scode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
|
|
smode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
|
|
BEGIN
|
|
IF :NEW.imp_log_status = 'F'
|
|
THEN
|
|
-- fatal error; systeembeheerder moet aan de bak
|
|
scode := 'IMPFAT';
|
|
ELSIF :NEW.imp_log_status = 'E'
|
|
THEN
|
|
-- error; applicatiebeheerder moet aan de bak
|
|
scode := 'IMPERR';
|
|
END IF;
|
|
|
|
IF scode IS NOT NULL
|
|
THEN
|
|
BEGIN
|
|
SELECT sn.fac_srtnotificatie_mode
|
|
INTO smode
|
|
FROM fac_srtnotificatie sn
|
|
WHERE sn.fac_srtnotificatie_code = scode AND sn.fac_srtnotificatie_mode > 0;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
RETURN;
|
|
END;
|
|
|
|
fac.putsystemnotification (:NEW.imp_log_applicatie||': '||:NEW.imp_log_omschrijving, smode);
|
|
END IF;
|
|
END;
|
|
END;
|
|
/
|
|
|
|
|
|
CREATE_TRIGGER(fac_t_fac_activiteit_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_activiteit
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_activiteit_key, fac_s_fac_activiteit_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_setting_B_IU)
|
|
BEFORE INSERT or UPDATE ON fac_setting
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_setting_key, fac_s_fac_setting_key);
|
|
:new.fac_setting_datum := SYSDATE;
|
|
:new.fac_setting_module := UPPER(:new.fac_setting_module);
|
|
:new.fac_setting_name := LOWER(:new.fac_setting_name);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_qlikview_b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_qlikview
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_qlikview_key, fac_s_fac_qlikview_key);
|
|
UPDATE_AANMAAKDATUM(fac_qlikview, fac_qlikview_aanmaak);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_tracking_b_i)
|
|
BEFORE INSERT ON fac_tracking
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_tracking_key, fac_s_fac_tracking_key);
|
|
-- dit event moet mogelijk ook actief worden genotificeerd,
|
|
-- dat kan expliciet worden onderdrukt door de omschrijving te prefixen met een #
|
|
IF SUBSTR(:new.fac_tracking_oms, 1, 1) = '#'
|
|
THEN
|
|
-- bedoeld om te onderdrukken, maar moeten we wel weer verwijderen
|
|
:new.fac_tracking_oms := SUBSTR(:new.fac_tracking_oms, 2);
|
|
-- Moet ik nou nog iets doen om NULL te maken als dit alleen de # was?
|
|
-- En nu dus niet tracken
|
|
ELSE
|
|
fac.notifytracking(:new.fac_srtnotificatie_key, :new.prs_perslid_key, :new.fac_tracking_oms, :new.fac_tracking_refkey);
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_menuitems__b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_menuitems
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_menuitems_key, fac_s_fac_menuitems_key);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_menu__b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_menu
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_menu_key, fac_s_fac_menu_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_nieuws__b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_nieuws
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_nieuws_key, fac_s_fac_nieuws_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_faq__b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_faq
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_faq_key, fac_s_fac_faq_key);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_locale_b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_locale
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_locale_key, fac_s_fac_locale_key);
|
|
:new.fac_locale_kolomnaam := UPPER (:new.fac_locale_kolomnaam);
|
|
:new.fac_locale_lang := UPPER (:new.fac_locale_lang);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_localeitems_b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_localeitems
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_localeitems_key, fac_s_fac_localeitems_key);
|
|
:new.fac_localeitems_dialect_id := UPPER (:new.fac_localeitems_dialect_id);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_locale_mgt_b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_locale_mgt
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_locale_mgt_key, fac_s_fac_locale_mgt_key);
|
|
:new.fac_locale_mgt_lang := UPPER (:new.fac_locale_mgt_lang);
|
|
END;
|
|
/
|
|
CREATE_TRIGGER(fac_t_fac_locale_xsl_b_iu)
|
|
BEFORE INSERT OR UPDATE ON fac_locale_xsl
|
|
FOR EACH ROW
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_locale_xsl_key, fac_s_fac_locale_xsl_key);
|
|
:new.fac_locale_xsl_lang := UPPER (:new.fac_locale_xsl_lang);
|
|
END;
|
|
/
|
|
|
|
CREATE_TRIGGER(fac_t_fac_kenmerkdomein_B_IU)
|
|
BEFORE INSERT OR UPDATE ON fac_kenmerkdomein
|
|
FOR EACH ROW
|
|
DECLARE
|
|
objecttype user_objects.object_type%TYPE;
|
|
BEGIN
|
|
UPDATE_PRIMARY_KEY(fac_kenmerkdomein_key, fac_s_fac_kenmerkdomein_key);
|
|
:new.fac_kenmerkdomein_upper := UPPER(:new.fac_kenmerkdomein_omschrijving);
|
|
:new.fac_kenmerkdomein_module := UPPER(:new.fac_kenmerkdomein_module);
|
|
BEGIN
|
|
SELECT object_type
|
|
INTO objecttype
|
|
FROM user_objects
|
|
WHERE object_name = :new.fac_kenmerkdomein_objectnaam;
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
objecttype := NULL;
|
|
END;
|
|
|
|
IF objecttype IS NULL
|
|
THEN
|
|
raise_application_error (-20000, 'ALG_M235');
|
|
ELSIF objecttype IN ('TABLE', 'VIEW')
|
|
THEN
|
|
DECLARE
|
|
dummy VARCHAR2 (30);
|
|
BEGIN
|
|
SELECT column_name
|
|
INTO dummy
|
|
FROM user_tab_columns
|
|
WHERE table_name = :new.fac_kenmerkdomein_objectnaam
|
|
AND column_name = :new.fac_kenmerkdomein_kolomnaam
|
|
AND data_type = 'NUMBER';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
raise_application_error (-20000, 'ALG_M236');
|
|
END;
|
|
|
|
DECLARE
|
|
dummy VARCHAR2 (30);
|
|
BEGIN
|
|
SELECT column_name
|
|
INTO dummy
|
|
FROM user_tab_columns
|
|
WHERE table_name = :new.fac_kenmerkdomein_objectnaam
|
|
AND column_name = :new.fac_kenmerkdomein_kolomtxt
|
|
AND data_type LIKE '%CHAR%';
|
|
EXCEPTION
|
|
WHEN NO_DATA_FOUND
|
|
THEN
|
|
raise_application_error (-20000, 'ALG_M237');
|
|
END;
|
|
ELSIF objecttype <> 'SYNONYM'
|
|
THEN
|
|
raise_application_error (-20000, 'ALG_M235');
|
|
END IF;
|
|
|
|
END;
|
|
/
|
|
|
|
REGISTERRUN('$Workfile: FAC_TRI.SRC $','$Revision: 52 $')
|