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); } }
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); }