Exemplo n.º 1
0
        private static void _processWriteMetadata(AstWritePersistentVariableNode astNode)
        {
            var workflowFragment = new List<AstTaskNode>();
            var parentContainer = (AstContainerTaskNode)astNode.ParentItem;

            var writePresistentVariableID = new AstVariableNode(parentContainer)
            {
                Name = _generateScopedVariableName(astNode.PersistentVariable),
                TypeCode = TypeCode.String,
                Value = String.Empty
            };
            parentContainer.Variables.Add(writePresistentVariableID);

            var execSqlwritePersistentVariable =
                new AstExecuteSqlTaskNode(parentContainer)
                {
                    Name = astNode.Name,
                    Connection = astNode.Connection,
                    ResultSet = ExecuteSqlResultSet.None
                };
            execSqlwritePersistentVariable.Query = new AstExecuteSqlQueryNode(execSqlwritePersistentVariable)
                                                       {
                                                           Body =
                                                               String.Format(
                                                               CultureInfo.InvariantCulture,
                                                               "\"EXECUTE [usp_VulcanLog_WriteMetadata] ? OUTPUT, '{0}', '\"+ (DT_WSTR, 2000)@[User::{1}] + \"', {2}\"",
                                                               astNode.PersistentVariable.ScopedName,
                                                               astNode.SourceVariable.Name,
                                                               Convert.ToInt32(astNode.Commit)),
                                                           QueryType = QueryType.Expression
                                                       };
            execSqlwritePersistentVariable.Query.Parameters.Add(
                new AstExecuteSqlParameterMappingTypeNode(execSqlwritePersistentVariable)
                {
                    Name = "0",
                    Variable = writePresistentVariableID,
                    Direction = Direction.Output,
                    Length = 255
                });
            workflowFragment.Add(execSqlwritePersistentVariable);

            parentContainer.Tasks.Replace(astNode, workflowFragment);
        }
Exemplo n.º 2
0
        private static void _processPackage(AstPackageBaseNode package)
        {
            packageName = new AstVariableNode(package) { Name = "PackageName", IsSystemVariable = true, TypeCode = TypeCode.String };
            packageGuid = new AstVariableNode(package) { Name = "PackageID", IsSystemVariable = true, TypeCode = TypeCode.String };
            parentPackageGuid = new AstVariableNode(package) { Name = "_parentPackageGuid", TypeCode = TypeCode.String, Value = String.Empty, InheritFromPackageParentConfigurationString = "System::PackageID" };
            source = new AstVariableNode(package) { Name = "SourceName", TypeCode = TypeCode.String, IsSystemVariable = true };
            sourceID = new AstVariableNode(package) { Name = "SourceID", TypeCode = TypeCode.String, IsSystemVariable = true };
            parentSourceID = new AstVariableNode(package) { Name = "ParentContainerGUID", TypeCode = TypeCode.String, IsSystemVariable = true };
            machineName = new AstVariableNode(package) { Name = "MachineName", TypeCode = TypeCode.String, IsSystemVariable = true };
            userName = new AstVariableNode(package) { Name = "UserName", TypeCode = TypeCode.String, IsSystemVariable = true };
            patchedExecutionGuid = new AstVariableNode(package) { Name = "_patchedExecutionGuid", TypeCode = TypeCode.String, Value = "@[User::_executionGuid] == \"\" ? @[System::ExecutionInstanceGUID] : @[User::_executionGuid]", EvaluateAsExpression = true };
            executionGuid = new AstVariableNode(package) { Name = "_executionGuid", TypeCode = TypeCode.String, Value = String.Empty, InheritFromPackageParentConfigurationString = "User::_patchedExecutionGuid" };
            errorDescription = new AstVariableNode(package) { Name = "ErrorDescription", TypeCode = TypeCode.String, IsSystemVariable = true };

            package.Variables.Add(executionGuid);
            package.Variables.Add(parentPackageGuid);
            package.Variables.Add(patchedExecutionGuid);

            if (package.LogConnection != null)
            {
                _packageBuildOnPreExecuteEvent(package);
                _packageBuildOnErrorEvent(package);
                _packageBuildOnEndEvent(package);
            }
        }