public List <IntegrationPackageResult> Execute(IList <ImportBankStmtParamItem> paramObjs) { Service1Client client = new Service1Client(); var result = new List <IntegrationPackageResult>(); foreach (var paramObj in paramObjs) { if (paramObj.Enabled) { var parameters = new SsisParameter[] { new SsisParameter() { ParameterName = "ChildPackageName", ParameterValue = paramObj.PackageName }, new SsisParameter() { ParameterName = "SourceConnectionString", ParameterValue = paramObj.FilePath }, new SsisParameter() { ParameterName = "Account", ParameterValue = paramObj.Account == null? "" : paramObj.Account.Name } }; IntegrationPackageResult childResult = client.ExecuteSsisPackage("BankStmtFile.dtsx", parameters); result.Add(childResult); } } return(result); }
public IntegrationPackageResult Execute(string packageName, SsisParameter[] parameters) { SqlConnection ssisConnection = new SqlConnection(SqlConnectionString); IntegrationServices ssisServer = new IntegrationServices(ssisConnection); // The reference to the package which you want to execute PackageInfo ssisPackage = ssisServer.Catalogs[CashDiscipline.Common.Constants.SsisCatalog].Folders[ssisFolderName].Projects[catalogName].Packages[packageName]; // Add execution parameter to override the default asynchronized execution. If you leave this out the package is executed asynchronized Collection <PackageInfo.ExecutionValueParameterSet> executionParameter = new Collection <PackageInfo.ExecutionValueParameterSet>(); executionParameter.Add(new PackageInfo.ExecutionValueParameterSet { ObjectType = 50, ParameterName = "SYNCHRONIZED", ParameterValue = 1 }); // Modify package parameter foreach (var svcParam in parameters) { ParameterInfo pInfo = null; var pKey = new ParameterInfo.Key(svcParam.ParameterName); if (!ssisPackage.Parameters.TryGetValue(pKey, out pInfo)) { throw new InvalidOperationException(string.Format("Parameter name {0} does not exist in package.", pKey.Name)); } pInfo.Set(ParameterInfo.ParameterValueType.Literal, svcParam.ParameterValue); } ssisPackage.Alter(); // Get the identifier of the execution to get the log long executionIdentifier = ssisPackage.Execute(false, null, executionParameter); // Loop through the log and add the messages to the listbox SsisMessages = new List <SsisMessage>(); var execution = ssisServer.Catalogs["SSISDB"].Executions[executionIdentifier]; foreach (OperationMessage message in ssisServer.Catalogs["SSISDB"].Executions[executionIdentifier].Messages) { SsisMessages.Add(new SsisMessage() { MessageSourceType = message.MessageSourceType, Message = message.Message, MessageType = message.MessageType }); } // Update result PackageResult = new IntegrationPackageResult(); PackageResult.SsisMessages = this.SsisMessages; PackageResult.ExecutionIdentifer = executionIdentifier; PackageResult.PackageName = packageName; PackageResult.OperationStatus = (SsisOperationStatus)execution.Status; return(PackageResult); }
public IntegrationPackageResult Execute(string inputFilePath) { Service1Client client = new Service1Client(); var parameters = new SsisParameter[] { new SsisParameter() { ParameterName = "SourceConnectionString", ParameterValue = inputFilePath ?? "" } }; IntegrationPackageResult result = client.ExecuteSsisPackage("WbcForexRate.dtsx", parameters); return(result); }