首页 > 解决方案 > 从 MVC Web api 调用 SSIS 包并在包完成时返回成功

问题描述

我正在调用部署在 SSISDB 上的 SSIS 包。我使用下面的代码来调用一个包:

SqlCommand cmdCreateExecution = new SqlCommand("[SSISDB].[catalog].[create_execution]", cnn,transaction); 

SqlCommand cmdSetParams = new SqlCommand("[SSISDB].[catalog].[set_execution_parameter_value]", cnn,transaction); 
SqlCommand cmdSetParams1 = new SqlCommand("[SSISDB].[catalog].[set_execution_parameter_value]", cnn,transaction);  SqlCommand cmdStartExecution = new SqlCommand("[SSISDB].[catalog].[start_execution]", cnn, transaction);
            cmdCreateExecution.CommandType = CommandType.StoredProcedure;
            cmdSetParams.CommandType = CommandType.StoredProcedure;
            cmdSetParams1.CommandType = CommandType.StoredProcedure;
            cmdStartExecution.CommandType = CommandType.StoredProcedure;
            
            cmdCreateExecution.Parameters.Add("@folder_name", SqlDbType.NVarChar).Value = "Folder_Name";
            cmdCreateExecution.Parameters.Add("@project_name", SqlDbType.NVarChar).Value = "Project_Name";
            cmdCreateExecution.Parameters.Add("@package_name", SqlDbType.NVarChar).Value = "Package.dtsx";
            cmdCreateExecution.Parameters.Add("@reference_id", SqlDbType.BigInt).Value = null;
            cmdCreateExecution.Parameters.Add("@execution_id", SqlDbType.BigInt);
            cmdCreateExecution.Parameters["@execution_id"].Direction = ParameterDirection.Output;
            cmdCreateExecution.ExecuteNonQuery();
            execution_id = (long)cmdCreateExecution.Parameters["@execution_id"].Value;

            cmdSetParams.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
            cmdSetParams.Parameters.Add("@object_type", SqlDbType.SmallInt).Value = 30;
            cmdSetParams.Parameters.Add("@parameter_name", SqlDbType.VarChar).Value = "paramCompany";
            cmdSetParams.Parameters.Add("@parameter_value", SqlDbType.Variant).Value = Company;
            cmdSetParams.ExecuteNonQuery();

            cmdSetParams1.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
            cmdSetParams1.Parameters.Add("@object_type", SqlDbType.SmallInt).Value = 30;
            cmdSetParams1.Parameters.Add("@parameter_name", SqlDbType.VarChar).Value = "paramClientNumber";
            cmdSetParams1.Parameters.Add("@parameter_value", SqlDbType.Variant).Value = ClientNumber;
            cmdSetParams1.ExecuteNonQuery();

            cmdStartExecution.Parameters.Add("@execution_id", SqlDbType.BigInt).Value = execution_id;
            cmdStartExecution.ExecuteNonQuery();

此代码有效并成功运行 SSIS 包。包完成执行时,有什么方法可以从 web api 向调用客户端返回成功消息。

标签: asp.net-mvcssis

解决方案


推荐阅读