Files
oper/DB/TRIGGERS/TRIG_UPD_DEP_SCH_DETAIL.sql

80 lines
2.2 KiB
MySQL
Raw Normal View History

2023-06-08 11:55:59 -03:00
--------------------------------------------------------
-- 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;