CREATE OR REPLACE TRIGGER EFT_NOM.cg$BUR_NOMINATION_WINDOWS BEFORE UPDATE ON NOMINATION_WINDOWS FOR EACH ROW DECLARE cg$rec cg$NOMINATION_WINDOWS.cg$row_type; cg$ind cg$NOMINATION_WINDOWS.cg$ind_type; cg$old_rec cg$NOMINATION_WINDOWS.cg$row_type; BEGIN -- Application_logic Pre-Before-Update-row <> -- Application_logic Pre-Before-Update-row << End >> -- Load cg$rec/cg$ind values from new cg$rec.GAS_DAY := :new.GAS_DAY; cg$ind.GAS_DAY := (:new.GAS_DAY IS NULL AND :old.GAS_DAY IS NOT NULL ) OR (:new.GAS_DAY IS NOT NULL AND :old.GAS_DAY IS NULL) OR NOT(:new.GAS_DAY = :old.GAS_DAY) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).GAS_DAY := :old.GAS_DAY; cg$rec.WINDOW_START := :new.WINDOW_START; cg$ind.WINDOW_START := (:new.WINDOW_START IS NULL AND :old.WINDOW_START IS NOT NULL ) OR (:new.WINDOW_START IS NOT NULL AND :old.WINDOW_START IS NULL) OR NOT(:new.WINDOW_START = :old.WINDOW_START) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).WINDOW_START := :old.WINDOW_START; cg$rec.WINDOW_END := :new.WINDOW_END; cg$ind.WINDOW_END := (:new.WINDOW_END IS NULL AND :old.WINDOW_END IS NOT NULL ) OR (:new.WINDOW_END IS NOT NULL AND :old.WINDOW_END IS NULL) OR NOT(:new.WINDOW_END = :old.WINDOW_END) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).WINDOW_END := :old.WINDOW_END; cg$rec.MESSAGE := :new.MESSAGE; cg$ind.MESSAGE := (:new.MESSAGE IS NULL AND :old.MESSAGE IS NOT NULL ) OR (:new.MESSAGE IS NOT NULL AND :old.MESSAGE IS NULL) OR NOT(:new.MESSAGE = :old.MESSAGE) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).MESSAGE := :old.MESSAGE; cg$rec.NOTES := :new.NOTES; cg$ind.NOTES := (:new.NOTES IS NULL AND :old.NOTES IS NOT NULL ) OR (:new.NOTES IS NOT NULL AND :old.NOTES IS NULL) OR NOT(:new.NOTES = :old.NOTES) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).NOTES := :old.NOTES; cg$rec.TSA_TIMESTAMP := :new.TSA_TIMESTAMP; cg$ind.TSA_TIMESTAMP := (:new.TSA_TIMESTAMP IS NULL AND :old.TSA_TIMESTAMP IS NOT NULL ) OR (:new.TSA_TIMESTAMP IS NOT NULL AND :old.TSA_TIMESTAMP IS NULL) OR NOT(:new.TSA_TIMESTAMP = :old.TSA_TIMESTAMP) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).TSA_TIMESTAMP := :old.TSA_TIMESTAMP; cg$rec.NOWI_ID := :new.NOWI_ID; cg$ind.NOWI_ID := (:new.NOWI_ID IS NULL AND :old.NOWI_ID IS NOT NULL ) OR (:new.NOWI_ID IS NOT NULL AND :old.NOWI_ID IS NULL) OR NOT(:new.NOWI_ID = :old.NOWI_ID) ; cg$NOMINATION_WINDOWS.cg$table(cg$NOMINATION_WINDOWS.idx).NOWI_ID := :old.NOWI_ID; cg$NOMINATION_WINDOWS.idx := cg$NOMINATION_WINDOWS.idx + 1; if not (cg$NOMINATION_WINDOWS.called_from_package) then cg$NOMINATION_WINDOWS.validate_arc(cg$rec); cg$NOMINATION_WINDOWS.validate_domain(cg$rec, cg$ind); cg$NOMINATION_WINDOWS.validate_domain_cascade_update(cg$old_rec); cg$NOMINATION_WINDOWS.upd(cg$rec, cg$ind, FALSE); cg$NOMINATION_WINDOWS.called_from_package := FALSE; end if; :new.GAS_DAY := cg$rec.GAS_DAY; :new.WINDOW_START := cg$rec.WINDOW_START; :new.WINDOW_END := cg$rec.WINDOW_END; :new.MESSAGE := cg$rec.MESSAGE; :new.NOTES := cg$rec.NOTES; :new.TSA_TIMESTAMP := cg$rec.TSA_TIMESTAMP; -- Application_logic Post-Before-Update-row <> -- Application_logic Post-Before-Update-row << End >> END; /