-------------------------------------------------------- -- DDL for Trigger TRIG_UPD_DEP_SCH_DETAIL -------------------------------------------------------- CREATE OR REPLACE EDITIONABLE TRIGGER "ENVX_OPER"."TRIG_UPD_DEP_SCH_DETAIL" AFTER UPDATE ON DEPLOYMENT_SCHEDULE_DETAIL FOR EACH ROW DECLARE v_job_accion VARCHAR2(4000); v_estado NUMBER := 0; v_nombre_job VARCHAR2(1000); BEGIN CASE WHEN :new.SCHEDULE_DET_STATUS = 1 THEN --Elimina el job con nombre anterior-- BEGIN v_nombre_job := :old.SCHEDULE_JOB_NAME; PKG_DEPLOY_COORDINATOR.p_elimina_job( pi_nombre_job => v_nombre_job ); EXCEPTION WHEN OTHERS THEN NULL; END; --Elimina el job con nombre anterior-- --Genera le nuevo job-- v_job_accion := 'BEGIN sicd.pkg_deploy_coordinator.first_dep_queue(pi_job_name => '''|| :new.SCHEDULE_JOB_NAME ||'''); END;'; PKG_DEPLOY_COORDINATOR.p_genera_job( pi_job_nombre => :new.SCHEDULE_JOB_NAME, pi_job_accion => v_job_accion, pi_job_tipo_frecuencia => :new.SCHEDULE_FEQUENCY, pi_job_fecha_inicio => to_timestamp(to_char(:new.SCHEDULE_INIT_DATE, 'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS'), po_estado => v_estado ); --Genera le nuevo job-- --Actualiza los pedidos asignados al nuevo job-- UPDATE deployment_request_queue drq SET drq.job_name = :new.SCHEDULE_JOB_NAME, drq.queue_date = to_date(to_char(schedule_next_date(:new.SCHEDULE_JOB_NAME),'DD/MM/YYYY')), drq.queue_alias = to_char(schedule_next_date(:new.SCHEDULE_JOB_NAME),'YYYYMMDDHHMISS') || 'SC' || :new.id_schedule_detail WHERE drq.job_name = :old.SCHEDULE_JOB_NAME AND drq.status_queue = 0; --Actualiza los pedidos asignados al nuevo job-- WHEN :new.SCHEDULE_DET_STATUS = 0 THEN --Elimina el job desactivado-- BEGIN v_nombre_job := :old.SCHEDULE_JOB_NAME; PKG_DEPLOY_COORDINATOR.p_elimina_job( pi_nombre_job => v_nombre_job ); EXCEPTION WHEN OTHERS THEN NULL; END; --Elimina el job desactivado-- ELSE NULL; END CASE; END; / ALTER TRIGGER "ENVX_OPER"."TRIG_UPD_DEP_SCH_DETAIL" ENABLE;