ALTER PROCEDURE [dbo].[PRC_ASDK_TASK_CASE] ( @i_operation CHAR(1), @i_option CHAR(1), @i_task_id INT = NULL, @i_task_type INT = NULL, @i_case_type INT, @i_user_modifier INT = NULL, @i_result_code INT = NULL, @o_verify INT = NULL OUTPUT, @o_service_id INT = NULL OUTPUT, @io_case_id INT OUTPUT, @io_procedure_id INT = NULL OUTPUT, @io_project_id INT = NULL OUTPUT ) AS BEGIN --Local variables DECLARE @v_count INT, @v_pk_column NVARCHAR(35), @v_sql_command NVARCHAR(150); --Exception handling variables DECLARE @v_error_code INT, @v_error_message NVARCHAR(255); IF @i_operation = 'I' BEGIN --Insert Operations IF @i_option = 'A' BEGIN EXEC @v_count = PRC_ASDK_TASK_CASE @i_operation = 'S', @i_option = 'A', @i_task_id = @i_task_id, @i_case_type = @i_case_type, @io_case_id = @io_case_id; IF @v_count = 0 BEGIN IF @i_case_type = 1 --Creates incident-task relation BEGIN INSERT INTO ASDK_INCIDENT_TASK ( inci_id, task_id, procedure_id, task_type, result_code ) VALUES ( @io_case_id, @i_task_id, @io_procedure_id, @i_task_type, @i_result_code ); END ELSE IF @i_case_type = 2 --Creates problem-task relation BEGIN INSERT INTO ASDK_PROBLEM_TASK ( prob_id, task_id, procedure_id, task_type, result_code ) VALUES ( @io_case_id, @i_task_id, @io_procedure_id, @i_task_type, @i_result_code ); END ELSE IF @i_case_type = 3 --Creates change-task relation BEGIN INSERT INTO ASDK_CHANGE_TASK ( chan_id, task_id, procedure_id, task_type, result_code ) VALUES ( @io_case_id, @i_task_id, @io_procedure_id, @i_task_type, @i_result_code ); END ELSE IF @i_case_type = 4 --Creates service_call-task relation BEGIN INSERT INTO ASDK_SERVICECALL_TASK ( serv_id, task_id, procedure_id, task_type, result_code ) VALUES ( @io_case_id, @i_task_id, @io_procedure_id, @i_task_type, @i_result_code ); END; END; END; ELSE IF @i_option = 'B' BEGIN IF @i_case_type = 1 --Inserts an incident snapshot BEGIN INSERT INTO ASDK_INCIDENT_RULES SELECT * FROM V_ASDK_INCIDENT_SNAPSHOT WHERE inci_id = @io_case_id EXCEPT SELECT inci_id, inci_id_by_project, inci_category_id, inci_codreceptor, inci_impact_id, inci_urgency_id, inci_priority_id, inci_status_id, inci_opened_date, inci_colsed_date, inci_description, inci_responsible_id, inci_expired_date, inci_attention_esti_date, inci_attention_real_date, inci_registry_type_id, inci_commentary, inci_responsible_group_id, inci_author, inci_user_id_modifier, inci_fl_int_project_id, inci_estimated_cost, inci_real_cost, inci_reason_id, inci_associated_ci, inci_current_time, inci_attention_time, inci_solution_time, inci_sdb_last_shot, inci_current_progress, inci_service_id, inci_service_sla_id, inci_involved_user, inci_involved_ci, inci_involved_company, inci_customer_id, inci_vendor_id, inci_solution_real_date, inci_attention_real_time, inci_solution_real_time, inci_flag_category, inci_flag_priority, inci_flag_impact, inci_flag_urgency, inci_flag_status, inci_flag_service, inci_flag_sla, inci_flag_resp_user, inci_flag_resp_group, inci_flag_reason, add_str_1, add_str_2, add_str_3, add_str_4, add_str_5, add_str_6, add_str_7, add_str_8, add_str_9, add_str_10, inci_cost, inci_price, inci_effort, inci_flag_note, inci_note_count, inci_final_status, inci_interface_id, add_str_11, add_str_12, add_str_13, add_str_14, add_str_15, add_str_16, add_str_17, add_str_18, add_str_19, add_str_20, add_str_21, add_str_22, add_str_23, add_str_24, add_str_25, add_str_26, add_str_27, add_str_28, add_str_29, add_str_30, inci_flag_note_priv, inci_note_count_priv, GETDATE() time_stamp, inci_status_time, survey_succeeded, inci_procedure_id, inci_subject FROM ASDK_INCIDENT_RULES WHERE inci_id = @io_case_id AND time_stamp = ( SELECT MAX(time_stamp) FROM ASDK_INCIDENT_RULES WHERE inci_id = @io_case_id ); END ELSE IF @i_case_type = 2 --Inserts a problem snapshot BEGIN INSERT INTO ASDK_PROBLEM_RULES SELECT * FROM V_ASDK_PROBLEM_SNAPSHOT WHERE prob_id = @io_case_id EXCEPT SELECT prob_id ,prob_id_by_project ,prob_category_id ,prob_codreceptor ,prob_impact_id ,prob_urgency_id ,prob_priority_id ,prob_status_id ,prob_opened_date ,prob_colsed_date ,prob_description ,prob_responsible_id ,prob_expired_date ,prob_attention_esti_date ,prob_attention_real_date ,prob_registry_type_id ,prob_commentary ,prob_responsible_group_id ,prob_author ,prob_user_id_modifier ,prob_fl_int_project_id ,prob_known_error ,prob_estimated_cost ,prob_real_cost ,prob_reason_id ,prob_associated_ci ,prob_current_time ,prob_attention_time ,prob_solution_time ,prob_sdb_last_shot ,prob_current_progress ,prob_service_id ,prob_service_sla_id ,prob_cause_id ,prob_involved_user ,prob_involved_ci ,prob_involved_company ,prob_involved_incident ,prob_solution_real_date ,prob_attention_real_time ,prob_solution_real_time ,prob_flag_category ,prob_flag_priority ,prob_flag_impact ,prob_flag_urgency ,prob_flag_status ,prob_flag_service ,prob_flag_sla ,prob_flag_resp_user ,prob_flag_resp_group ,prob_flag_reason ,add_str_1 ,add_str_2 ,add_str_3 ,add_str_4 ,add_str_5 ,add_str_6 ,add_str_7 ,add_str_8 ,add_str_9 ,add_str_10 ,prob_cost ,prob_price ,prob_effort ,prob_flag_note ,prob_note_count ,prob_final_status ,prob_interface_id ,add_str_11 ,add_str_12 ,add_str_13 ,add_str_14 ,add_str_15 ,add_str_16 ,add_str_17 ,add_str_18 ,add_str_19 ,add_str_20 ,add_str_21 ,add_str_22 ,add_str_23 ,add_str_24 ,add_str_25 ,add_str_26 ,add_str_27 ,add_str_28 ,add_str_29 ,add_str_30 ,prob_flag_note_priv ,prob_note_count_priv ,GETDATE() time_stamp ,prob_status_time ,survey_succeeded ,prob_procedure_id ,prob_subject FROM ASDK_PROBLEM_RULES WHERE prob_id = @io_case_id AND time_stamp = ( SELECT MAX(time_stamp) FROM ASDK_PROBLEM_RULES WHERE prob_id = @io_case_id ); END ELSE IF @i_case_type = 3 --Inserts a change snapshot BEGIN INSERT INTO ASDK_CHANGE_RULES SELECT * FROM V_ASDK_CHANGE_SNAPSHOT WHERE chan_id = @io_case_id EXCEPT SELECT chan_id ,chan_id_by_project ,chan_category_id ,chan_codreceptor ,chan_impact_id ,chan_urgency_id ,chan_priority_id ,chan_status_id ,chan_opened_date ,chan_colsed_date ,chan_description ,chan_responsible_id ,chan_registry_type_id ,chan_commentary ,chan_responsible_group_id ,chan_author ,chan_user_id_modifier ,chan_fl_int_project_id ,chan_estimated_cost ,chan_real_cost ,chan_reason_id ,chan_customer_id ,chan_vendor_id ,chan_associated_ci ,chan_aproved_id ,chan_aproved_date ,chan_current_time ,chan_sdb_last_shot ,chan_current_progress ,chan_service_id ,chan_service_sla_id ,chan_scope ,chan_back_out_plan ,chan_current_stage_id ,chan_attention_time ,chan_attention_date ,chan_real_attention ,chan_solution_time ,chan_solution_date ,chan_real_solution ,chan_rfc_att_time ,chan_rfc_att_date ,chan_rfc_sol_time ,chan_rfc_sol_date ,chan_cab_att_time ,chan_cab_att_date ,chan_cab_sol_time ,chan_cab_sol_date ,chan_bui_att_time ,chan_bui_att_date ,chan_bui_sol_time ,chan_bui_sol_date ,chan_tes_att_time ,chan_tes_att_date ,chan_tes_sol_time ,chan_tes_sol_date ,chan_bop_att_time ,chan_bop_att_date ,chan_bop_sol_time ,chan_bop_sol_date ,chan_rev_att_time ,chan_rev_att_date ,chan_rev_sol_time ,chan_rev_sol_date ,chan_clo_att_time ,chan_clo_att_date ,chan_clo_sol_time ,chan_clo_sol_date ,chan_psa ,chan_procedure_id ,chan_flag_category ,chan_flag_priority ,chan_flag_impact ,chan_flag_urgency ,chan_flag_status ,chan_flag_service ,chan_flag_sla ,chan_flag_resp_user ,chan_flag_resp_group ,chan_flag_reason ,add_str_1 ,add_str_2 ,add_str_3 ,add_str_4 ,add_str_5 ,add_str_6 ,add_str_7 ,add_str_8 ,add_str_9 ,add_str_10 ,chan_cost ,chan_price ,chan_effort ,chan_flag_note ,chan_note_count ,chan_final_status ,chan_interface_id ,add_str_11 ,add_str_12 ,add_str_13 ,add_str_14 ,add_str_15 ,add_str_16 ,add_str_17 ,add_str_18 ,add_str_19 ,add_str_20 ,add_str_21 ,add_str_22 ,add_str_23 ,add_str_24 ,add_str_25 ,add_str_26 ,add_str_27 ,add_str_28 ,add_str_29 ,add_str_30 ,chan_flag_note_priv ,chan_note_count_priv ,GETDATE() ,chan_status_time ,survey_succeeded ,chan_subject FROM ASDK_CHANGE_RULES WHERE chan_id = @io_case_id AND time_stamp = ( SELECT MAX(time_stamp) FROM ASDK_CHANGE_RULES WHERE chan_id = @io_case_id ); END ELSE IF @i_case_type = 4 --Inserts a service call snapshot BEGIN INSERT INTO ASDK_SERVICE_CALL_RULES SELECT * FROM V_ASDK_SERVICE_CALL_SNAPSHOT WHERE serv_id = @io_case_id EXCEPT SELECT serv_id ,serv_id_by_project ,serv_category_id ,serv_codreceptor ,serv_impact_id ,serv_urgency_id ,serv_priority_id ,serv_status_id ,serv_opened_date ,serv_colsed_date ,serv_description ,serv_responsible_id ,serv_expired_date ,serv_attention_esti_date ,serv_attention_real_date ,serv_registry_type_id ,serv_commentary ,serv_responsible_group_id ,serv_author ,serv_user_id_modifier ,serv_fl_int_project_id ,serv_estimated_cost ,serv_real_cost ,serv_reason_id ,serv_associated_ci ,serv_current_time ,serv_attention_time ,serv_solution_time ,serv_sdb_last_shot ,serv_current_progress ,serv_service_id ,serv_service_sla_id ,serv_involved_user ,serv_involved_ci ,serv_involved_company ,serv_customer_id ,serv_vendor_id ,serv_solution_real_date ,serv_attention_real_time ,serv_solution_real_time ,serv_procedure_id ,serv_flag_category ,serv_flag_priority ,serv_flag_impact ,serv_flag_urgency ,serv_flag_status ,serv_flag_service ,serv_flag_sla ,serv_flag_resp_user ,serv_flag_resp_group ,serv_flag_reason ,add_str_1 ,add_str_2 ,add_str_3 ,add_str_4 ,add_str_5 ,add_str_6 ,add_str_7 ,add_str_8 ,add_str_9 ,add_str_10 ,serv_cost ,serv_price ,serv_effort ,serv_flag_note ,serv_note_count ,serv_final_status ,serv_interface_id ,add_str_11 ,add_str_12 ,add_str_13 ,add_str_14 ,add_str_15 ,add_str_16 ,add_str_17 ,add_str_18 ,add_str_19 ,add_str_20 ,add_str_21 ,add_str_22 ,add_str_23 ,add_str_24 ,add_str_25 ,add_str_26 ,add_str_27 ,add_str_28 ,add_str_29 ,add_str_30 ,serv_flag_note_priv ,serv_note_count_priv ,GETDATE() ,serv_status_time ,survey_succeeded ,serv_subject FROM ASDK_SERVICE_CALL_RULES WHERE serv_id = @io_case_id AND time_stamp = ( SELECT MAX(time_stamp) FROM ASDK_SERVICE_CALL_RULES WHERE serv_id = @io_case_id ); END; END; END; ELSE IF @i_operation = 'D' BEGIN --Delete operations --Delete procedure from case IF @i_option = 'A' BEGIN BEGIN TRY BEGIN TRANSACTION; CREATE TABLE #temp_task ( task_id INT, task_type INT ); SET @v_sql_command = N'INSERT INTO #temp_task ' + N'SELECT task_id, ' + N' task_type ' + N'FROM ASDK_' + CASE @i_case_type WHEN 1 THEN N'INCIDENT' WHEN 2 THEN N'PROBLEM' WHEN 3 THEN N'CHANGE' ELSE N'SERVICECALL' END + N'_TASK ' + N'WHERE ' + CASE @i_case_type WHEN 1 THEN N'inci_' WHEN 2 THEN N'prob_' WHEN 3 THEN N'chan_' ELSE N'serv_' END + N'id ' + N'= @v_case_id ' + N'AND procedure_id IS NOT NULL'; EXEC sp_executesql @v_sql_command, N'@v_case_id INT', @io_case_id; DELETE ASDK_TASK_TRANSITION WHERE task_initial_id IN ( SELECT task_id FROM #temp_task WHERE ASDK_TASK_TRANSITION.task_type = #temp_task.task_type ) OR task_final_id IN ( SELECT task_id FROM #temp_task WHERE ASDK_TASK_TRANSITION.task_type = #temp_task.task_type ); IF @i_case_type = 1 --Delete incident-task relation BEGIN DELETE ASDK_INCIDENT_TASK WHERE inci_id = @io_case_id AND procedure_id IS NOT NULL; UPDATE ASDK_INCIDENT SET inci_procedure_id = NULL, @io_procedure_id = inci_procedure_id WHERE inci_id = @io_case_id; END ELSE IF @i_case_type = 2 --Delete problem-task relation BEGIN DELETE ASDK_PROBLEM_TASK WHERE prob_id = @io_case_id AND procedure_id IS NOT NULL; UPDATE ASDK_PROBLEM SET prob_procedure_id = NULL, @io_procedure_id = prob_procedure_id WHERE prob_id = @io_case_id; END ELSE IF @i_case_type = 3 --Delete change-task relation BEGIN DELETE ASDK_CHANGE_TASK WHERE chan_id = @io_case_id AND procedure_id IS NOT NULL; UPDATE ASDK_CHANGE SET chan_procedure_id = NULL, @io_procedure_id = chan_procedure_id WHERE chan_id = @io_case_id; END ELSE IF @i_case_type = 4 --Delete service_call-task relation BEGIN DELETE ASDK_SERVICECALL_TASK WHERE task_id = @io_case_id AND procedure_id IS NOT NULL; UPDATE ASDK_SERVICE_CALL SET serv_procedure_id = NULL, @io_procedure_id = serv_procedure_id WHERE serv_id = @io_case_id; END; DELETE ASDK_TASK WHERE id_task IN ( SELECT task_id FROM #temp_task WHERE task_type = 0 ); DELETE ASDK_TASK_AFLS WHERE id IN ( SELECT task_id FROM #temp_task WHERE task_type = 1 ); EXECUTE PRC_ASDK_HIST_MODIFY @i_item_id = @io_case_id, @i_row_type = @i_case_type, @i_current_user = @i_user_modifier, @i_is_associated = 0, @i_task_proc = @io_procedure_id, @o_err_msg = NULL; EXECUTE [dbo].[PRC_ASDK_TASK_CASE] @i_operation = 'I', @i_option = 'B', @i_case_type = @i_case_type, @io_case_id = @io_case_id; COMMIT TRANSACTION; END TRY BEGIN CATCH ROLLBACK TRANSACTION; END CATCH END --Delete a specific task ELSE IF @i_option = 'B' BEGIN IF @i_case_type = 1 BEGIN DELETE it FROM ASDK_INCIDENT_TASK it JOIN ASDK_TASK t ON t.id_task = it.task_id AND it.task_type = 0 WHERE it.task_id = @i_task_id AND it.inci_id = @io_case_id AND ( 1 = CASE WHEN it.procedure_id IS NOT NULL THEN ( CASE WHEN EXISTS ( SELECT TOP(1) * FROM ASDK_TASK_TRANSITION WHERE task_final_id = @i_task_id OR task_initial_id = @i_task_id ) THEN 0 ELSE 1 END ) ELSE 1 END ) AND t.datestart_real IS NOT NULL; END; ELSE IF @i_case_type = 2 BEGIN DELETE it FROM ASDK_PROBLEM_TASK it JOIN ASDK_TASK t ON t.id_task = it.task_id AND it.task_type = 0 WHERE it.task_id = @i_task_id AND it.prob_id = @io_case_id AND ( 1 = CASE WHEN it.procedure_id IS NOT NULL THEN ( CASE WHEN EXISTS ( SELECT TOP(1) * FROM ASDK_TASK_TRANSITION WHERE task_final_id = @i_task_id OR task_initial_id = @i_task_id ) THEN 0 ELSE 1 END ) ELSE 1 END ) AND t.datestart_real IS NULL; END; ELSE IF @i_case_type = 3 BEGIN DELETE it FROM ASDK_CHANGE_TASK it JOIN ASDK_TASK t ON t.id_task = it.task_id AND it.task_type = 0 WHERE it.task_id = @i_task_id AND it.chan_id = @io_case_id AND ( 1 = CASE WHEN it.procedure_id IS NULL THEN ( CASE WHEN EXISTS ( SELECT TOP(1) * FROM ASDK_TASK_TRANSITION WHERE task_final_id = @i_task_id OR task_initial_id = @i_task_id ) THEN 0 ELSE 1 END ) ELSE 1 END ) AND t.datestart_real IS NULL; END; ELSE IF @i_case_type = 4 BEGIN DELETE it FROM ASDK_SERVICECALL_TASK it JOIN ASDK_TASK t ON t.id_task = it.task_id AND it.task_type = 0 WHERE it.task_id = @i_task_id AND it.serv_id = @io_case_id AND ( 1 = CASE WHEN it.procedure_id IS NOT NULL THEN ( CASE WHEN EXISTS ( SELECT TOP(1) * FROM ASDK_TASK_TRANSITION WHERE task_final_id = @i_task_id OR task_initial_id = @i_task_id ) THEN 0 ELSE 1 END ) ELSE 1 END ) AND t.datestart_real IS NULL; END; IF @@ROWCOUNT = 0 BEGIN RAISERROR('Cannot delete registry', 11, 1); RETURN; END; EXECUTE PRC_ASDK_HIST_MODIFY @i_item_id = @io_case_id, @i_row_type = @i_case_type, @i_current_user = @i_user_modifier, @i_is_new_task = 0, @i_task_id = @i_task_id, @o_err_msg = @v_error_message OUTPUT; IF ISNULL(@v_error_message, '') <> '' BEGIN RAISERROR(@v_error_message, 11, 1); RETURN; END; END; END ELSE IF @i_operation = 'S' BEGIN --Select operations IF @i_option = 'A' BEGIN IF @i_case_type = 1 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_INCIDENT_TASK WHERE inci_id = @io_case_id AND ( task_id = @i_task_id OR @i_task_id IS NULL ); END ELSE IF @i_case_type = 2 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_PROBLEM_TASK WHERE prob_id = @io_case_id AND ( task_id = @i_task_id OR @i_task_id IS NULL ); END ELSE IF @i_case_type = 3 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_CHANGE_TASK WHERE chan_id = @io_case_id AND ( task_id = @i_task_id OR @i_task_id IS NULL ); END ELSE IF @i_case_type = 4 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_SERVICECALL_TASK WHERE task_id = @io_case_id AND ( task_id = @i_task_id OR @i_task_id IS NULL ); END; SET @o_verify = @v_count; RETURN @v_count; END ELSE IF @i_option = 'B' --Gets item procedure, project and global id. BEGIN IF @i_case_type = 1 BEGIN SELECT @io_case_id = it.inci_id, @io_procedure_id = it.procedure_id, @io_project_id = i.inci_fl_int_project_id FROM ASDK_INCIDENT_TASK it JOIN ASDK_INCIDENT i ON i.inci_id = it.inci_id WHERE it.task_id = @i_task_id AND it.task_type = @i_task_type; END ELSE IF @i_case_type = 2 BEGIN SELECT @io_case_id = pt.prob_id, @io_procedure_id = pt.procedure_id, @io_project_id = p.prob_fl_int_project_id FROM ASDK_PROBLEM_TASK pt JOIN ASDK_PROBLEM p ON p.prob_id = pt.prob_id WHERE pt.task_id = @i_task_id AND pt.task_type = @i_task_type; END ELSE IF @i_case_type = 3 BEGIN SELECT @io_case_id = ct.chan_id, @io_procedure_id = ct.procedure_id, @io_project_id = c.chan_fl_int_project_id FROM ASDK_CHANGE_TASK ct JOIN ASDK_CHANGE c ON c.chan_id = ct.chan_id WHERE ct.task_id = @i_task_id AND ct.task_type = @i_task_type; END ELSE IF @i_case_type = 4 BEGIN SELECT @io_case_id = st.serv_id, @io_procedure_id = st.procedure_id, @io_project_id = s.serv_fl_int_project_id FROM ASDK_SERVICECALL_TASK st JOIN ASDK_SERVICE_CALL s ON s.serv_id = st.serv_id WHERE st.task_id = @i_task_id AND st.task_type = @i_task_type; END END ELSE IF @i_option = 'C' --Gets item project, service and procedure id. BEGIN IF @i_case_type = 1 BEGIN SELECT @io_project_id = inci_fl_int_project_id, @io_procedure_id = inci_procedure_id, @o_service_id = inci_service_id FROM ASDK_INCIDENT WHERE inci_id = @io_case_id; END ELSE IF @i_case_type = 2 BEGIN SELECT @io_project_id = prob_fl_int_project_id, @io_procedure_id = prob_procedure_id, @o_service_id = prob_service_id FROM ASDK_PROBLEM WHERE prob_id = @io_case_id; END ELSE IF @i_case_type = 3 BEGIN SELECT @io_project_id = chan_fl_int_project_id, @io_procedure_id = chan_procedure_id, @o_service_id = chan_service_id FROM ASDK_CHANGE WHERE chan_id = @io_case_id; END ELSE IF @i_case_type = 4 BEGIN SELECT @io_project_id = serv_fl_int_project_id, @io_procedure_id = serv_procedure_id, @o_service_id = serv_service_id FROM ASDK_SERVICE_CALL WHERE serv_id = @io_case_id; END END ELSE IF @i_option = 'D' BEGIN IF @i_case_type = 1 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_INCIDENT_TASK JOIN ASDK_TASK ON id_task = task_id WHERE inci_id = @io_case_id AND result_code <> 0 AND grp_id IS NULL; END ELSE IF @i_case_type = 2 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_PROBLEM_TASK JOIN ASDK_TASK ON id_task = task_id WHERE prob_id = @io_case_id AND result_code <> 0 AND grp_id IS NULL; END ELSE IF @i_case_type = 3 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_CHANGE_TASK JOIN ASDK_TASK ON id_task = task_id WHERE chan_id = @io_case_id AND result_code <> 0 AND grp_id IS NULL; END ELSE IF @i_case_type = 4 BEGIN SELECT @v_count = COUNT(1) FROM ASDK_SERVICECALL_TASK JOIN ASDK_TASK ON id_task = task_id WHERE serv_id = @io_case_id AND result_code <> 0 AND grp_id IS NULL; END; RETURN @v_count; END END ELSE IF @i_operation = 'U' BEGIN --Update operations; IF @i_option = 'A' BEGIN IF @i_case_type = 1 --Asociates procedure to incident BEGIN UPDATE ASDK_INCIDENT SET inci_procedure_id = @io_procedure_id WHERE inci_id = @io_case_id; END ELSE IF @i_case_type = 2 --Asociates procedure to problem BEGIN UPDATE ASDK_PROBLEM SET prob_procedure_id = @io_procedure_id WHERE prob_id = @io_case_id; END ELSE IF @i_case_type = 3 --Asociates procedure to change BEGIN UPDATE ASDK_CHANGE SET chan_procedure_id = @io_procedure_id WHERE chan_id = @io_case_id; END ELSE IF @i_case_type = 4 --Asociates procedure to service call BEGIN UPDATE ASDK_SERVICE_CALL SET serv_procedure_id = @io_procedure_id WHERE serv_id = @io_case_id; END END END END