50 lines
2.0 KiB
Plaintext
50 lines
2.0 KiB
Plaintext
CREATE OR REPLACE TRIGGER "EFT_NOM".cg$BUR_DOCUMENTSPART
|
|
|
|
BEFORE UPDATE ON DOCUMENTSPART FOR EACH ROW
|
|
|
|
|
|
DECLARE
|
|
cg$rec cg$DOCUMENTSPART.cg$row_type;
|
|
cg$ind cg$DOCUMENTSPART.cg$ind_type;
|
|
cg$old_rec cg$DOCUMENTSPART.cg$row_type;
|
|
BEGIN
|
|
-- Application_logic Pre-Before-Update-row <<Start>>
|
|
-- Application_logic Pre-Before-Update-row << End >>
|
|
|
|
-- Load cg$rec/cg$ind values from new
|
|
|
|
cg$rec.PART := :new.PART;
|
|
cg$ind.PART := (:new.PART IS NULL AND :old.PART IS NOT NULL )
|
|
OR (:new.PART IS NOT NULL AND :old.PART IS NULL)
|
|
OR NOT(:new.PART = :old.PART) ;
|
|
cg$DOCUMENTSPART.cg$table(cg$DOCUMENTSPART.idx).PART := :old.PART;
|
|
cg$rec.DOCUMENT := :new.DOCUMENT;
|
|
cg$ind.DOCUMENT := (:new.DOCUMENT IS NULL AND :old.DOCUMENT IS NOT NULL )
|
|
OR (:new.DOCUMENT IS NOT NULL AND :old.DOCUMENT IS NULL)
|
|
OR NOT(:new.DOCUMENT = :old.DOCUMENT) ;
|
|
cg$DOCUMENTSPART.cg$table(cg$DOCUMENTSPART.idx).DOCUMENT := :old.DOCUMENT;
|
|
cg$rec.UPLOADED := :new.UPLOADED;
|
|
cg$ind.UPLOADED := (:new.UPLOADED IS NULL AND :old.UPLOADED IS NOT NULL )
|
|
OR (:new.UPLOADED IS NOT NULL AND :old.UPLOADED IS NULL)
|
|
OR NOT(:new.UPLOADED = :old.UPLOADED) ;
|
|
cg$DOCUMENTSPART.cg$table(cg$DOCUMENTSPART.idx).UPLOADED := :old.UPLOADED;
|
|
|
|
|
|
cg$DOCUMENTSPART.idx := cg$DOCUMENTSPART.idx + 1;
|
|
|
|
if not (cg$DOCUMENTSPART.called_from_package) then
|
|
cg$DOCUMENTSPART.validate_arc(cg$rec);
|
|
cg$DOCUMENTSPART.validate_domain(cg$rec, cg$ind);
|
|
cg$DOCUMENTSPART.validate_domain_cascade_update(cg$old_rec);
|
|
|
|
cg$DOCUMENTSPART.upd(cg$rec, cg$ind, FALSE);
|
|
cg$DOCUMENTSPART.called_from_package := FALSE;
|
|
end if;
|
|
|
|
:new.UPLOADED := cg$rec.UPLOADED;
|
|
-- Application_logic Post-Before-Update-row <<Start>>
|
|
-- Application_logic Post-Before-Update-row << End >>
|
|
END;
|
|
/
|
|
|