80 lines
2.2 KiB
SQL
80 lines
2.2 KiB
SQL
--------------------------------------------------------
|
|
-- 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;
|