REM *************************************************************************** REM Hand-carved package body for ARC RULE created on 13-JAN-99 REM *************************************************************************** CREATE OR REPLACE PACKAGE BODY ciharr IS -- Generic post-process routines PROCEDURE check_delete(id number); sac_type constant varchar2(6) := 'CRU'; pac_type constant varchar2(6) := 'CLA'; pac_reference number; --======================== PRE-PROCESS (INS,UPD) ============================-- PROCEDURE pre_process(operation varchar2,id number, pl in out NOCOPY cioarc_rule.data) IS BEGIN -- Calculate the PAC reference which determines access control rights pac_reference := NVL(NVL(pl.v.entity_object_reference, pl.v.generic_class_reference), pl.v.view_object_reference); -- Access rights for arc rule derive from the reference -- Access rights checking performed by triggers in config 4.0.9 -- ciiacc.check_access_rights(pac_reference,pac_type,'UPD'); -- Initialize unassigned properties with default values on INSERT if operation = 'INS' then pl.v.element_type_name := sac_type; pl.i.element_type_name := true; pl.v.classifier_rule_subtype := 'ARR'; pl.i.classifier_rule_subtype := true; end if; if pl.i.entity_object_reference then pl.v.classifier_rule_for := 'EOC'; pl.i.classifier_rule_for := true; elsif pl.i.generic_class_reference then pl.v.classifier_rule_for := 'GEC'; pl.i.classifier_rule_for := true; elsif pl.i.view_object_reference then pl.v.classifier_rule_for := 'VOB'; pl.i.classifier_rule_for := true; elsif pl.i.interface_classifier_reference then pl.v.classifier_rule_for := 'INC'; pl.i.classifier_rule_for := true; end if; END; --======================== PRE-PROCESS (DEL,SEL) ============================-- PROCEDURE pre_process(operation varchar2,id number) IS BEGIN -- Access rights for arc rule derive from the reference -- Access rights checking performed by triggers in config 4.0.9 -- ciiacc.check_access_rights(id,sac_type,operation,'SAC'); -- if operation is 'DELETE', make sure no non-cascading references exist if operation = 'DEL' then check_delete(id); end if; END; --===================== POST-PROCESS (INS,UPD,SEL) ==========================-- PROCEDURE post_process(operation varchar2,id number, pl cioarc_rule.data) IS BEGIN null; END; --========================= POST PROCESS (DEL) ==============================-- PROCEDURE post_process(operation varchar2,id number) IS BEGIN null; END; --============================= CHECK DELETE ================================-- PROCEDURE check_delete(id number) IS dummy number; error_count number := 0; BEGIN null; END; --================================== END ====================================-- -- -- Package instantiation block -- BEGIN is_installed := true; END; /