Esempio n. 1
0
 protected Pattern(Vulcan.Packages.VulcanPackage vulcanPackage,DTS.IDTSSequence parentContainer)
 {
     _vulcanPackage = vulcanPackage;
     _parentContainer = parentContainer;
     _firstExecutableGeneratedByPattern = null;
     _lastExecutableGeneratedByPattern = null;
 }
Esempio n. 2
0
        public FileSystemTask(
            Packages.VulcanPackage vulcanPackage, 
            string name, 
            string taskDescription, 
            DTS.IDTSSequence parentContainer,
            string sourceConnection, 
            string destConnection,  
            Microsoft.SqlServer.Dts.Tasks.FileSystemTask.DTSFileSystemOperation operation
            )
            : base(vulcanPackage,
            name,
            taskDescription,
            parentContainer)
        {
            Connection source = new Connection(vulcanPackage, sourceConnection, sourceConnection, "FILE",String.Format("\"{0}\"",ExpressionPathBuilder.EscapeBackslashes(sourceConnection)));
            Connection dest = new Connection(vulcanPackage, destConnection, destConnection, "FILE",String.Format("\"{0}\"",ExpressionPathBuilder.EscapeBackslashes(destConnection)));

            source.SetProperty("FileUsageType", 2);
            dest.SetProperty("FileUsageType", 2);
            fileSystemTask = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:FileSystemTask");
            fileSystemTask.Name = name;
            this.Task.Operation = operation;
            this.Task.Source = source.ConnectionManager.ID;
            this.Task.Destination = dest.ConnectionManager.ID;
        }
Esempio n. 3
0
File: Task.cs Progetto: japj/vulcan
 protected Task(Packages.VulcanPackage vulcanPackage ,string taskName, string taskDescription, DTS.IDTSSequence parentContainer)
 {
     _vulcanPackage = vulcanPackage;
     _name = taskName;
     _description = taskDescription;
     _parentContainer = parentContainer;
 }
Esempio n. 4
0
 public PrecedenceConstraint(Packages.VulcanPackage vulcanPackage, string from, string to, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, 
         from + "_" + to,
         "", 
         parentContainer)
 {
     this.from = from;
     this.to = to;
 }
Esempio n. 5
0
 public SQLTask(Packages.VulcanPackage package, string name, string description, DTS.IDTSSequence parentContainer,Connection destinationConnection)
     : this(package,
     name, 
     description, 
     parentContainer, 
     destinationConnection,
     null)
 {
 }
Esempio n. 6
0
 public SsisSequence(DTS.IDTSSequence dtsSequence, SequenceTask objContainer)
 {
     if (objContainer.ConstraintMode != "Linear" && objContainer.ConstraintMode != "Parallel")
     {
         MessageEngine.Global.Trace(Severity.Error, "Unknown ConstraintMode: {0} ", objContainer.ConstraintMode);
     }
     _constraintMode = objContainer.ConstraintMode;            
     _transactionMode = objContainer.TransactionMode;
     _dtsSequence = dtsSequence;
 }
Esempio n. 7
0
 public SsisVariable(string name, object value, DTS.DtsContainer parentContainer)
 {
     if (null == parentContainer)
     {
         this._parentContainer = (DTS.DtsContainer)SsisPackage.CurrentPackage.DTSPackage;
     }
     else
     {
         this._parentContainer = parentContainer;
     }
     _dtsVariable = _addVariable(name, value, _parentContainer);
 }
Esempio n. 8
0
        public static string EvaluateSSISExpression(string expression, DTS.DtsContainer container)
        {
            var dtsVariable = 
                container.Variables.Add("__" + Guid.NewGuid().ToString("N"), false, "User", null);
            dtsVariable.EvaluateAsExpression = true;
            dtsVariable.Expression = expression;
            
            string retval = dtsVariable.Value.ToString();
            container.Variables.Remove(dtsVariable.ID);

            return retval;
        }
Esempio n. 9
0
 public override bool OnError(
     DTS.DtsObject source, 
     int errorCode, 
     string subComponent,
     string description, 
     string helpFile, 
     int helpContext, 
     string idofInterfaceWithError)
 {
     // Add application-specific diagnostics here.
     MessageEngine.Trace(Severity.Debug, "Validation Error in {0}/{1} : {2} : {3}", source, subComponent, description, helpFile);
     _validationErrorCount++;
     return false;
 }
Esempio n. 10
0
        private void SetVariablePath(DTS.DtsContainer dtsContainer)
        {
            StringBuilder sPath = new StringBuilder(dtsContainer.Name);

            while (dtsContainer.Parent != null)
            {
                dtsContainer = dtsContainer.Parent;
                sPath.Insert(0, "/");
                sPath.Insert(0, dtsContainer.Name);
            }

            sPath.Insert(0, "/Root/");
            _path = sPath.ToString();
        }
Esempio n. 11
0
 public ExecutePackageTask(
     Packages.VulcanPackage vulcanPackage, 
     string name, 
     string taskDescription, 
     DTS.IDTSSequence parentContainer,
     Connection packageConnection
     )
     : base(vulcanPackage,
     name,
     taskDescription,
     parentContainer)
 {
     executePackageTaskHost = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:ExecutePackageTask");
     executePackageTaskHost.Name = name;
     Task.Connection = packageConnection.ConnectionManager.ID;
 }
Esempio n. 12
0
        public SQLTask(Packages.VulcanPackage package, string name, string description, DTS.IDTSSequence parentContainer, Connection destinationConnection, Dictionary<string,object> propertiesDictionary)
            : base(package,
            name,
            description,
            parentContainer)
        {
            this._expressionBuilder = new Vulcan.Common.Helpers.ExpressionPathBuilder(package);

            _sqlTask = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:SQLTask");
            _sqlTask.Name = name;
            _sqlTask.Description = description;

            SetProperties(propertiesDictionary);
            if (destinationConnection != null)
            {
                SetProperty("Connection", destinationConnection.ConnectionManager.Name);
            }
        }
Esempio n. 13
0
        private void SetParameterMapping(IList<DataFlowSourceQueryParameter> parameters, DTS.Variables variables)
        {
            StringBuilder parameterBuilder = new StringBuilder();
            foreach (DataFlowSourceQueryParameter param in parameters)
            {
                if (variables.Contains(param.VariableName))
                {
                    DTS.Variable variable = variables[param.VariableName];
                    parameterBuilder.AppendFormat("\"{0}\",{1};", param.Name, variable.ID);
                }
                else
                {
                    MessageEngine.Global.Trace(Severity.Error, Resources.DTSVariableNotExists, param.VariableName);
                }
            }

            _instance.SetComponentProperty("ParameterMapping", parameterBuilder.ToString());
        }
Esempio n. 14
0
        private DTS.Variable _addVariable(string name, object value, DTS.DtsContainer dtsContainer)
        {
            _name = name;

            SetVariablePath(dtsContainer);

            if (!dtsContainer.Variables.Contains(name))
            {
                MessageEngine.Global.Trace(Severity.Alert, "Creating variable {0} with value {1} in Container {2}", name, value, dtsContainer.Name);
                DTS.Variable var = dtsContainer.Variables.Add(name, false, "User", value);
                _dtsVariable = var;
                return var;
            }
            else
            {
                _dtsVariable = dtsContainer.Variables[name];
                return dtsContainer.Variables[name];
            }
        }
Esempio n. 15
0
 public void AddPrecedenceConstraint(DTS.Executable from, DTS.Executable to, DTS.IDTSSequence parentContainer)
 {
     if (from != null && to != null && parentContainer != null)
     {
         if (
             parentContainer.Executables.Contains(this.ExtractNameFromDTSExecutable(from)) &&
             parentContainer.Executables.Contains(this.ExtractNameFromDTSExecutable(to))
            )
         {
             DTS.PrecedenceConstraint pc =
                                      parentContainer.PrecedenceConstraints.Add(from, to);
             pc.Name = ExtractNameFromDTSExecutable(from) + "_" + ExtractNameFromDTSExecutable(to);
         }
     }
 }
Esempio n. 16
0
 public FTPTaskPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, parentContainer)
 {
 }
Esempio n. 17
0
 protected void SafeExecute(DTS.Executable executable)
 {
     Vulcan.Common.ErrorEvents errorHandler = new Vulcan.Common.ErrorEvents();
     DTS.DTSExecResult execResult = executable.Execute(null, null, errorHandler, null, null);
     if (execResult == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success && errorHandler.ValidationErrorCount == 0)
     {
         Message.Trace(
             Severity.Notification,
             "Success executing Task {0}",
             VulcanPackage.ExtractNameFromDTSExecutable(executable)
             );
     }
     else
     {
         Message.Trace(
             Severity.Error,
             "Error executing Task {0}: Result = {1} (BugBug: SSIS always returns success) but ErrorCount = {2}",
             VulcanPackage.ExtractNameFromDTSExecutable(executable),
             execResult,errorHandler.ValidationErrorCount
             );
     }
 }
Esempio n. 18
0
        public bool Edit(IWin32Window parentWindow, DTSRuntime.Variables variables, DTSRuntime.Connections connections)
        {
            ShowForm(parentWindow);

              return true;
        }
Esempio n. 19
0
 public SsisExecutable(DTS.Executable executable)
 {
     _executable = executable;
 }
Esempio n. 20
0
 public DimensionsPattern(Vulcan.Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage,
     parentContainer)
 {
 }
Esempio n. 21
0
        public FTPTask(
            Packages.VulcanPackage vulcanPackage,
            string name,
            string taskDescription,
            DTS.IDTSSequence parentContainer,
            string serverName,
            string port,
            string userName,
            string password,
            string remotePath,
            bool isRemotePathVariable,
            string localPath,
            bool isLocalPathVariable,
            Microsoft.SqlServer.Dts.Tasks.FtpTask.DTSFTPOp operation
            )
            : base(vulcanPackage,
            name,
            taskDescription,
            parentContainer)
        {
            fTPTask = (DTS.TaskHost)parentContainer.Executables.Add("STOCK:FTPTask");
            fTPTask.Name = name;
            fTPTask.Description = taskDescription;
            this.Task.Operation = operation;

            this.Task.IsRemotePathVariable = isRemotePathVariable;
            this.Task.IsLocalPathVariable = isLocalPathVariable;

            Connection fTPServerConnection = new Connection(vulcanPackage, serverName, serverName, "FTP", String.Format("\"{0}:{1}\"", serverName, port));
            fTPServerConnection.SetProperty("ServerUserName", userName);
            fTPServerConnection.SetProperty("ServerPassword", password);
            this.Task.Connection = fTPServerConnection.ConnectionManager.ID;

            if (this.Task.IsRemotePathVariable == true)
            {
                this.Task.RemotePath = remotePath;
            }
            else
            {
                this.Task.RemotePath = remotePath;
            }

            if (this.Task.IsLocalPathVariable == true)
            {
                this.Task.LocalPath = localPath;
            }
            else
            {
                Connection localConnection = new Connection(vulcanPackage, localPath, localPath, "File", String.Format("\"{0}\"", ExpressionPathBuilder.EscapeBackslashes(localPath)));
                int intFileUsageType = 2;
                switch (operation)
                {
                    case Microsoft.SqlServer.Dts.Tasks.FtpTask.DTSFTPOp.Send:
                        intFileUsageType = 0;
                        break;
                    case Microsoft.SqlServer.Dts.Tasks.FtpTask.DTSFTPOp.Receive:
                        intFileUsageType = 2;
                        break;
                    default:
                        intFileUsageType = 2;
                        break;
                }
                localConnection.SetProperty("FileUsageType", intFileUsageType);

                this.Task.LocalPath = localPath;
            }
        }
Esempio n. 22
0
 public StoredProcPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, parentContainer)
 {
 }
Esempio n. 23
0
        private static void SetVariablePath(DTS.DtsContainer dtsContainer)
        {
            var path = new StringBuilder(dtsContainer.Name);

            while (dtsContainer.Parent != null)
            {
                dtsContainer = dtsContainer.Parent;
                path.Insert(0, "/");
                path.Insert(0, dtsContainer.Name);
            }

            path.Insert(0, "/Root/");
        }
Esempio n. 24
0
 public LogUpdatePattern(Vulcan.Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage,
     parentContainer)
 {
 }
Esempio n. 25
0
 private void BindParameter(DTS.Variable variable, DTSTasks.ExecuteSQLTask.ParameterDirections direction, string parameterName, int dataType, int size)
 {
     DTSTasks.ExecuteSQLTask.IDTSParameterBinding binding = SSISTask.ParameterBindings.Add();
     binding.DtsVariableName = variable.QualifiedName;
     binding.ParameterDirection = direction;
     binding.ParameterName = parameterName;
     binding.ParameterSize = size;
     binding.DataType = dataType;
 }
Esempio n. 26
0
        public DTS.Sequence AddSequenceContainer(string name, DTS.IDTSSequence parentContainer)
        {
            if (name != null && parentContainer != null)
            {

                if (parentContainer.Executables.Contains(name))
                {
                    if (parentContainer.Executables[name] is DTS.IDTSSequence)
                    {
                        return (DTS.Sequence)parentContainer.Executables[name];
                    }
                }
                DTS.Sequence sequence = (DTS.Sequence)parentContainer.Executables.Add("STOCK:Sequence");
                sequence.Name = name;
                return sequence;
            }
            return null;
        }
Esempio n. 27
0
 public string ExtractNameFromDTSExecutable(DTS.Executable exec)
 {
     PropertyInfo namePropertyInfo = exec.GetType().GetProperty("Name");
     if (namePropertyInfo != null)
     {
         return (string)namePropertyInfo.GetValue(exec, null);
     }
     else
     {
         return "";
     }
 }
Esempio n. 28
0
 public ExecuteSQLPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage, parentContainer)
 {
 }
Esempio n. 29
0
        public static Pattern ProcessPattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer, XPathNavigator patternNavigator, Pattern previousPattern)
        {
            DTS.Executable lastExecutableInPattern = null;
            if (previousPattern != null)
            {
                lastExecutableInPattern = previousPattern.FirstExecutableGeneratedByPattern;
            }
            Pattern p = null;
            Message.Trace(Severity.Debug,"Emitting Pattern {0}", patternNavigator.Name);

            try
            {
                switch (patternNavigator.Name)
                {
                    case "HelperTables":
                        p = new HelperTablePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ETL":
                        p = new ETLPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "StoredProc":
                        p = new StoredProcPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Dimensions":
                        p = new DimensionsPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Logtainer":
                        p = new LogtainerPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "LogUpdate":
                        p = new LogUpdatePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "Container":
                        p = new ContainerPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FileSystemTask":
                        p = new FileSystemTaskPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ExecuteSQL":
                        p = new ExecuteSQLPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FactTable":
                        p = new FactTablePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "ExecutePackage":
                        p = new ExecutePackagePattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    case "FTPTask":
                        p = new FTPTaskPattern(vulcanPackage, parentContainer);
                        p.Emit(patternNavigator);
                        break;
                    default:
                        break;
                }
            }
            catch (System.Runtime.InteropServices.COMException ce)
            {
                Message.Trace(Severity.Error,ce,"Exception in Pattern {0}\n {1}\n", patternNavigator.Name, ce.Message);
            }
            catch (Exception e)
            {
                Message.Trace(Severity.Error,e,"Exception in Pattern {0}\n {1}\n", patternNavigator.Name, e.Message);
            }

            return p;
        }
Esempio n. 30
0
 public HelperTablePattern(Packages.VulcanPackage vulcanPackage, DTS.IDTSSequence parentContainer)
     : base(vulcanPackage,
     parentContainer)
 {
 }