create or replace PROCEDURE PRC_ASDK_MODIFICAR_REL (
i_codcaso IN NUMBER DEFAULT NULL,
i_action_id IN NUMBER DEFAULT NULL,
i_timestamp IN TIMESTAMP DEFAULT NULL
)
AS
CURSOR cur_param_values
IS
SELECT asdk_rules_param.param_id, asdk_rules_param.param_value
FROM asdk_rules_param JOIN asdk_rules_actions
ON (asdk_rules_param.action_id = asdk_rules_actions.action_id
)
WHERE (asdk_rules_actions.action_id = i_action_id)
ORDER BY asdk_rules_param.param_id DESC;
v_query VARCHAR2 (4000);
v_query_filter VARCHAR2 (4000);
v_field VARCHAR2 (70);
v_relacion NUMBER (10, 0);
v_id_item NUMBER (10, 0);
v_value INTEGER := NULL;
v_value2 INTEGER := NULL;
v_value3 INTEGER := NULL;
v_value4 INTEGER := NULL;
v_value5 INTEGER := NULL;
v_value6 INTEGER := NULL;
v_value7 INTEGER := NULL;
v_cur_param_id NUMBER (10, 0);
v_cur_value_param VARCHAR2 (8000);
v_record_type NUMBER (10, 0);
v_item_id NUMBER (10, 0);
v_table VARCHAR2 (70);
v_key VARCHAR2 (70);
v_table2 VARCHAR2 (70);
v_key2 VARCHAR2 (70);
v_valueb VARCHAR2 (500);
v_codigo VARCHAR2 (8000);
v_mensaje VARCHAR2 (8000);
v_profile_id NUMBER;
v_count_case_open NUMBER;
v_codcaso NUMBER;
v_child_direction NUMBER;
v_field_direction VARCHAR (70);
v_state_is_closed NUMBER;
v_tasks_pending NUMBER;
v_comment_failed VARCHAR2(255);
v_lang NUMBER;
v_rule_id NUMBER;
cur_result pk_asc_objects.asc_return_data;
cur_result_filter pk_asc_objects.asc_return_data;
TYPE type_cur IS REF CURSOR;
cur_related type_cur;
v_data_set pk_asc_objects.asc_return_data;
v_commentary CLOB;
v_value9 INTEGER := NULL;
v_comment_case CLOB;
v_comment_case_nohtml CLOB;
v_page_size NUMBER;
v_project_id NUMBER;
v_count NUMBER;
v_cis_used NUMBER;
BEGIN
SELECT FL_INT_RULE_ID
into v_rule_id
FROM ASDK_RULES_MODIFY_ITEMS
WHERE FL_INT_CASE_ID = i_codcaso
AND FL_INT_ACTION_ID = i_action_id
AND fl_exec_timestamp = i_timestamp;
v_codcaso := i_codcaso;
BEGIN
SELECT asdk_rules.table_id
INTO v_record_type
FROM asdk_rules_actions JOIN asdk_rules
ON asdk_rules_actions.rule_id = asdk_rules.rule_id
WHERE (asdk_rules_actions.action_id = i_action_id);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
FOR ind_cur_param_values IN cur_param_values
LOOP
v_cur_param_id := ind_cur_param_values.param_id;
v_cur_value_param := ind_cur_param_values.param_value;
IF v_cur_param_id = 1
THEN -- Tabla a Modificar
v_relacion := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 2
THEN -- Codigo de estado
v_value := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 3
THEN -- Codigo de Prioridad
v_value2 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 4
THEN -- Codigo de Impacto
v_value3 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 5
THEN -- Codigo de Urgencia
v_value4 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 6
THEN -- Codigo de Grupo de especialistas
v_value5 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 7
THEN -- Codigo de Usuario responsable
v_value6 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 8
THEN -- Codigo de Razon
v_value7 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
ELSIF v_cur_param_id = 9
THEN -- Utiliza Comentario Caso
v_value9 := TO_NUMBER (TRIM (ind_cur_param_values.param_value));
END IF;
END LOOP;
BEGIN
SELECT source_table, source_key, source_value, child_direction,
field_direction
INTO v_table2, v_key2, v_valueb, v_child_direction,
v_field_direction
FROM asdk_rules_tables_relations
WHERE table_id = v_record_type AND table2_id = v_relacion;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
--Averigua el comentario del caso dado el tipo
IF v_value9 IS NOT NULL
THEN
IF (v_value9 = 1)
THEN
/*==============================*/
/* INCIDENTES */
/*==============================*/
IF (v_record_type = 1)
THEN
BEGIN
SELECT inci_commentary, inci_id_by_project
INTO v_commentary, v_codcaso
FROM asdk_incident
WHERE inci_id = i_codcaso;
v_commentary :=
CHR (13)
|| ' INCIDENT No '
|| TO_CHAR (v_codcaso)
|| ' '
|| NVL (v_commentary, '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END IF;
/*==============================*/
/* PROBLEMAS */
/*==============================*/
IF (v_record_type = 2)
THEN
BEGIN
SELECT prob_commentary, prob_id_by_project
INTO v_commentary, v_codcaso
FROM asdk_problem
WHERE prob_id = i_codcaso;
v_commentary :=
CHR (13)
|| ' PROBLEM No '
|| TO_CHAR (v_codcaso)
|| ' '
|| NVL (v_commentary, '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END IF;
/*==============================*/
/* CAMBIOS */
/*==============================*/
IF (v_record_type = 3)
THEN
BEGIN
SELECT chan_commentary, chan_id_by_project
INTO v_commentary, v_codcaso
FROM asdk_change
WHERE chan_id = i_codcaso;
v_commentary :=
CHR (13)
|| ' CHANGE No '
|| TO_CHAR (v_codcaso)
|| ' '
|| NVL (v_commentary, '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END IF;
/*==============================*/
/* LLAMADA DE SERVICIO */
/*==============================*/
IF (v_record_type = 15)
THEN
BEGIN
SELECT serv_commentary, serv_id_by_project
INTO v_commentary, v_codcaso
FROM asdk_service_call
WHERE serv_id = i_codcaso;
v_commentary :=
CHR (13)
|| ' SERVICE CALL No '
|| TO_CHAR (v_codcaso)
|| ' '
|| NVL (v_commentary, '');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END IF;
END IF;
END IF;
v_query :=
'SELECT '
|| v_valueb
|| ' FROM '
|| v_table2
|| ' WHERE '
|| v_key2
|| ' = '
|| i_codcaso;
IF (v_child_direction IS NOT NULL)
THEN
v_query :=
v_query || ' AND ' || v_field_direction || ' = '
|| v_child_direction;
END IF;
v_query_filter :=
'SELECT '
|| v_valueb
|| ' FROM '
|| v_table2
|| ' JOIN ASDK_CONCURRENCY B ON '
|| v_table2
|| '.'
|| v_valueb
|| ' = B.FL_STR_PRIMARY_KEY '
|| ' WHERE '
|| v_key2
|| ' = '
|| i_codcaso;
--VERIFICA QUE EL CASO RELACIONADO NO SE ENCUENTRE ABIERTO
BEGIN
OPEN cur_result_filter FOR v_query_filter;
IF cur_result_filter%ROWCOUNT = 0
THEN
BEGIN
OPEN cur_result FOR v_query;
LOOP
FETCH cur_result
INTO v_id_item;
EXIT WHEN cur_result%NOTFOUND;
IF v_relacion = 1
THEN
BEGIN
SELECT NVL (inci_commentary, ''), inci_fl_int_project_id
INTO v_comment_case, v_project_id
FROM asdk_incident
WHERE inci_id = v_id_item;
v_comment_case := v_comment_case || ' ' || v_commentary;
--Validar informacion de especialista
IF v_value6 IS NULL
THEN
BEGIN
--Verifica el codigo de grupo
IF v_value5 IS NOT NULL
THEN
BEGIN
--VERIFICAR SI EN EL GRUPO ESTA EL MISMO RESPONSABLE
SELECT COUNT (1)
INTO v_count
FROM group_users
WHERE grp_id = v_value5
AND codusuario = v_value6;
IF (v_count = 0)
THEN
v_value6 :=
fun_asdk_get_responsable
(v_value5,
v_project_id,
v_relacion
);
END IF;
END;
END IF;
END;
END IF;
--Asignar especialista si existe un periodo activo de inactividad
v_value6 :=
fun_afw_rout_responsible (v_value5,
v_value6,
1,
v_project_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
BEGIN
v_comment_case_nohtml := remove_html (v_comment_case);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
-- Verifica si el estado es cerrado
v_state_is_closed := NVL(FUN_ASDK_STATUS_CHILD(v_value), 0);
--Verifica que no haya tareas pendientes
v_tasks_pending := NVL(FUN_ASDK_ACTIVE_TASK(v_id_item, 1), 0);
v_value := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value END;
v_value7 := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value7 END;
PRC_ASDK_INCIDENT (
i_operation => 'U',
io_inci_id => v_id_item,
i_inci_user_id_modifier => 1,
i_inci_status_id => v_value,
i_inci_reason_id => v_value7,
i_inci_priority_id => v_value2,
i_inci_impact_id => v_value3,
i_inci_urgency_id => v_value4,
i_inci_responsible_id => v_value6,
i_inci_responsible_group_id => v_value5,
i_inci_commentary => v_comment_case,
i_inci_commentary_nohtml => v_comment_case_nohtml,
o_page_size => v_page_size,
cur_out => v_data_set,
o_err_cod => v_codigo,
o_err_msg => v_mensaje
);
IF v_state_is_closed = 0 AND v_tasks_pending > 0 THEN
SELECT CAST(SetValue AS INT)
INTO v_lang
FROM SETINGENERAL
WHERE SetId = 2113;
SELECT msg_text
INTO v_comment_failed
FROM ASC_MESSAGES
WHERE msg_id = 299
AND msg_lan_id = v_lang;
v_comment_failed := REPLACE(v_comment_failed, '%d', TO_CHAR(v_rule_id));
v_comment_failed := REPLACE(v_comment_failed, '%s', '{1}
{2}');
FOR cur IN (
SELECT '{' || TO_CHAR(ROW_NUMBER() OVER(ORDER BY field_name)) || '}' pattern,
field_name
FROM ASDK_RULES_FIELDS_TRANSLATOR
WHERE field_id IN(1, 1735)
AND language = CASE v_lang WHEN 1 THEN 'ESP' WHEN 2 THEN 'ING' WHEN 3 THEN 'POR' END
)
LOOP
v_comment_failed := REPLACE(v_comment_failed, cur.pattern, cur.field_name);
END LOOP;
-- Escribe en el historico que fall¿
PRC_ASDK_HIST_NOTES (
i_operation => 'I',
i_option => NULL,
i_item_id => v_id_item,
i_hino_row_type=> 1,
i_hino_author => 1,
i_hino_description => v_comment_failed,
i_hino_description_nohtml => v_comment_failed,
i_hino_visible => '0',
i_language => NULL,
cur_out => v_data_set
);
END IF;
END IF;
IF v_relacion = 2
THEN
BEGIN
SELECT NVL (prob_commentary, ''), prob_fl_int_project_id
INTO v_comment_case, v_project_id
FROM asdk_problem
WHERE prob_id = v_id_item;
v_comment_case := v_comment_case || ' ' || v_commentary;
--Validar informacion de especialista
IF v_value6 IS NULL
THEN
BEGIN
--Verifica el codigo de grupo
IF v_value5 IS NOT NULL
THEN
BEGIN
--VERIFICAR SI EN EL GRUPO ESTA EL MISMO RESPONSABLE
SELECT COUNT (1)
INTO v_count
FROM group_users
WHERE grp_id = v_value5
AND codusuario = v_value6;
IF (v_count = 0)
THEN
v_value6 :=
fun_asdk_get_responsable
(v_value5,
v_project_id,
v_relacion
);
END IF;
END;
END IF;
END;
END IF;
--Asignar especialista si existe un periodo activo de inactividad
v_value6 :=
fun_afw_rout_responsible (v_value5,
v_value6,
2,
v_project_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
BEGIN
v_comment_case_nohtml := remove_html (v_comment_case);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
-- Verifica si el estado es cerrado
v_state_is_closed := NVL(FUN_ASDK_STATUS_CHILD(v_value),0);
--Verifica que no haya tareas pendientes
v_tasks_pending := NVL(FUN_ASDK_ACTIVE_TASK(v_id_item, 2),0);
v_value := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value END;
v_value7 := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value7 END;
PRC_ASDK_PROBLEM (
i_operation => 'U',
io_prob_id => v_id_item,
i_prob_user_id_modifier => 1,
i_prob_status_id => v_value,
i_prob_reason_id => v_value7,
i_prob_priority_id => v_value2,
i_prob_impact_id => v_value3,
i_prob_urgency_id => v_value4,
i_prob_responsible_id => v_value6,
i_prob_responsible_group_id => v_value5,
i_prob_commentary => v_comment_case,
i_prob_commentary_nohtml => v_comment_case_nohtml,
o_page_size => v_page_size,
o_err_cod => v_codigo,
o_err_msg => v_mensaje,
cur_out => v_data_set
);
IF v_state_is_closed = 0 AND v_tasks_pending > 0 THEN
SELECT CAST(SetValue AS INT)
INTO v_lang
FROM SETINGENERAL
WHERE SetId = 2113;
SELECT msg_text
INTO v_comment_failed
FROM ASC_MESSAGES
WHERE msg_id = 299
AND msg_lan_id = v_lang;
v_comment_failed := REPLACE(v_comment_failed, '%d', TO_CHAR(v_rule_id));
v_comment_failed := REPLACE(v_comment_failed, '%s', '{1}
{2}');
FOR cur IN (
SELECT '{' || TO_CHAR(ROW_NUMBER() OVER(ORDER BY field_name)) || '}' pattern,
field_name
FROM ASDK_RULES_FIELDS_TRANSLATOR
WHERE field_id IN(1, 1735)
AND language = CASE v_lang WHEN 1 THEN 'ESP' WHEN 2 THEN 'ING' WHEN 3 THEN 'POR' END
)
LOOP
v_comment_failed := REPLACE(v_comment_failed, cur.pattern, cur.field_name);
END LOOP;
-- Escribe en el historico que fall¿
PRC_ASDK_HIST_NOTES (
i_operation => 'I',
i_option => NULL,
i_item_id => v_id_item,
i_hino_row_type=> 2,
i_hino_author => 1,
i_hino_description => v_comment_failed,
i_hino_description_nohtml => v_comment_failed,
i_hino_visible => '0',
i_language => NULL,
cur_out => v_data_set
);
END IF;
END IF;
IF v_relacion = 3
THEN
BEGIN
SELECT NVL (chan_commentary, ''), chan_fl_int_project_id
INTO v_comment_case, v_project_id
FROM asdk_change
WHERE chan_id = v_id_item;
v_comment_case := v_comment_case || ' ' || v_commentary;
--Validar informacion de especialista
IF v_value6 IS NULL
THEN
BEGIN
--Verifica el codigo de grupo
IF v_value5 IS NOT NULL
THEN
BEGIN
--VERIFICAR SI EN EL GRUPO ESTA EL MISMO RESPONSABLE
SELECT COUNT (1)
INTO v_count
FROM group_users
WHERE grp_id = v_value5
AND codusuario = v_value6;
IF (v_count = 0)
THEN
v_value6 :=
fun_asdk_get_responsable
(v_value5,
v_project_id,
v_relacion
);
END IF;
END;
END IF;
END;
END IF;
--Asignar especialista si existe un periodo activo de inactividad
v_value6 :=
fun_afw_rout_responsible (v_value5,
v_value6,
3,
v_project_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
BEGIN
v_comment_case_nohtml := remove_html (v_comment_case);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
-- Verifica si el estado es cerrado
v_state_is_closed := NVL(FUN_ASDK_STATUS_CHILD(v_value),0);
--Verifica que no haya tareas pendientes
v_tasks_pending := NVL(FUN_ASDK_ACTIVE_TASK(v_id_item, 3),0);
v_value := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value END;
v_value7 := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value7 END;
PRC_ASDK_CHANGE (
i_operation => 'U',
io_chan_id => v_id_item,
i_chan_user_id_modifier => 1,
i_chan_status_id => v_value,
i_chan_reason_id => v_value7,
i_chan_priority_id => v_value2,
i_chan_impact_id => v_value3,
i_chan_urgency_id => v_value4,
i_chan_responsible_id => v_value6,
i_chan_responsible_group_id => v_value5,
i_chan_commentary => v_comment_case,
i_chan_commentary_nohtml => v_comment_case_nohtml,
o_page_size => v_page_size,
o_err_cod => v_codigo,
o_err_msg => v_mensaje,
cur_out => v_data_set
);
IF v_state_is_closed = 0 AND v_tasks_pending > 0 THEN
SELECT CAST(SetValue AS INT)
INTO v_lang
FROM SETINGENERAL
WHERE SetId = 2113;
SELECT msg_text
INTO v_comment_failed
FROM ASC_MESSAGES
WHERE msg_id = 299
AND msg_lan_id = v_lang;
v_comment_failed := REPLACE(v_comment_failed, '%d', TO_CHAR(v_rule_id));
v_comment_failed := REPLACE(v_comment_failed, '%s', '{1}
{2}');
FOR cur IN (
SELECT '{' || TO_CHAR(ROW_NUMBER() OVER(ORDER BY field_name)) || '}' pattern,
field_name
FROM ASDK_RULES_FIELDS_TRANSLATOR
WHERE field_id IN(1, 1735)
AND language = CASE v_lang WHEN 1 THEN 'ESP' WHEN 2 THEN 'ING' WHEN 3 THEN 'POR' END
)
LOOP
v_comment_failed := REPLACE(v_comment_failed, cur.pattern, cur.field_name);
END LOOP;
-- Escribe en el historico que fall¿
PRC_ASDK_HIST_NOTES (
i_operation => 'I',
i_option => NULL,
i_item_id => v_id_item,
i_hino_row_type=> 3,
i_hino_author => 1,
i_hino_description => v_comment_failed,
i_hino_description_nohtml => v_comment_failed,
i_hino_visible => '0',
i_language => NULL,
cur_out => v_data_set
);
END IF;
END IF;
IF v_relacion = 15
THEN
BEGIN
SELECT NVL (serv_commentary, ''), serv_fl_int_project_id
INTO v_comment_case, v_project_id
FROM asdk_service_call
WHERE serv_id = v_id_item;
v_comment_case := v_comment_case || ' ' || v_commentary;
--Validar informacion de especialista
IF v_value6 IS NULL
THEN
BEGIN
--Verifica el codigo de grupo
IF v_value5 IS NOT NULL
THEN
BEGIN
--VERIFICAR SI EN EL GRUPO ESTA EL MISMO RESPONSABLE
SELECT COUNT (1)
INTO v_count
FROM group_users
WHERE grp_id = v_value5
AND codusuario = v_value6;
IF (v_count = 0)
THEN
v_value6 :=
fun_asdk_get_responsable
(v_value5,
v_project_id,
4
);
END IF;
END;
END IF;
END;
END IF;
--Asignar especialista si existe un periodo activo de inactividad
v_value6 :=
fun_afw_rout_responsible (v_value5,
v_value6,
4,
v_project_id
);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
BEGIN
v_comment_case_nohtml := remove_html (v_comment_case);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
-- Verifica si el estado es cerrado
v_state_is_closed := NVL(FUN_ASDK_STATUS_CHILD(v_value),0);
--Verifica que no haya tareas pendientes
v_tasks_pending := NVL(FUN_ASDK_ACTIVE_TASK(v_id_item, 4),0);
v_value := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value END;
v_value7 := CASE WHEN v_state_is_closed = 0 AND v_tasks_pending > 0 THEN NULL ELSE v_value7 END;
PRC_ASDK_SERVICE_CALL (
i_operation => 'U',
io_serv_id => v_id_item,
i_serv_user_id_modifier => 1,
i_serv_status_id => v_value,
i_serv_reason_id => v_value7,
i_serv_priority_id => v_value2,
i_serv_impact_id => v_value3,
i_serv_urgency_id => v_value4,
i_serv_responsible_id => v_value6,
i_serv_responsible_group_id => v_value5,
i_serv_commentary => v_comment_case,
i_serv_commentary_nohtml => v_comment_case_nohtml,
o_page_size => v_page_size,
o_err_cod => v_codigo,
o_err_msg => v_mensaje,
cur_out => v_data_set
);
IF v_state_is_closed = 0 AND v_tasks_pending > 0 THEN
SELECT CAST(SetValue AS INT)
INTO v_lang
FROM SETINGENERAL
WHERE SetId = 2113;
SELECT msg_text
INTO v_comment_failed
FROM ASC_MESSAGES
WHERE msg_id = 299
AND msg_lan_id = v_lang;
v_comment_failed := REPLACE(v_comment_failed, '%d', TO_CHAR(v_rule_id));
v_comment_failed := REPLACE(v_comment_failed, '%s', '{1}
{2}');
FOR cur IN (
SELECT '{' || TO_CHAR(ROW_NUMBER() OVER(ORDER BY field_name)) || '}' pattern,
field_name
FROM ASDK_RULES_FIELDS_TRANSLATOR
WHERE field_id IN(1, 1735)
AND language = CASE v_lang WHEN 1 THEN 'ESP' WHEN 2 THEN 'ING' WHEN 3 THEN 'POR' END
)
LOOP
v_comment_failed := REPLACE(v_comment_failed, cur.pattern, cur.field_name);
END LOOP;
-- Escribe en el historico que fall¿
PRC_ASDK_HIST_NOTES
(i_operation => 'I',
i_option => NULL,
i_item_id => v_id_item,
i_hino_row_type=> 4,
i_hino_author => 1,
i_hino_description => v_comment_failed,
i_hino_description_nohtml => v_comment_failed,
i_hino_visible => '0',
i_language => NULL,
cur_out => v_data_set);
END IF;
END IF;
IF v_relacion = 37
THEN
v_value := CASE v_value
WHEN 0
THEN NULL
ELSE v_value
END;
v_value2 := CASE v_value2
WHEN 0
THEN NULL
ELSE v_value2
END;
v_value3 := CASE v_value3
WHEN 0
THEN NULL
ELSE v_value3
END;
v_profile_id := NULL;
prc_configuration_item (i_operation => 'U',
i_option => 'A',
i_ci_id => v_id_item,
i_actual_status => v_value,
i_impact => v_value2,
i_incharge_id => v_value3,
i_profile_id => v_profile_id,
i_flag_history_ci => 1,
o_page_size => v_page_size,
o_err_cod => v_codigo,
o_err_msg => v_mensaje,
o_cis_used => v_cis_used,
cur_out => v_data_set
);
END IF;
END LOOP;
CLOSE cur_result;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END;
--ELIMINA EL CASO DE LA TABLA DE MODIFICAR RELACIONADOS
DELETE FROM asdk_rules_modify_items
WHERE fl_int_case_id = i_codcaso
AND fl_int_action_id = i_action_id;
END IF;
END;
END prc_asdk_modificar_rel;