Ejemplo n.º 1
0
        internal void MapInputColumn(string sourceComponentName, string sourceColumnName, string destinationColumnName, bool unMap)
        {
            IDTSVirtualInput90 cvi = unionAllCom.InputCollection["Input for " + sourceComponentName].GetVirtualInput();
            Dictionary <string, IDTSVirtualInputColumn90> virtualInputColumnsDictionary = new Dictionary <string, IDTSVirtualInputColumn90>();

            foreach (IDTSVirtualInputColumn90 inputColumn in cvi.VirtualInputColumnCollection)
            {
                virtualInputColumnsDictionary[inputColumn.Name] = inputColumn;
            }

            IDTSInput90 input = unionAllCom.InputCollection["Input for " + sourceComponentName];
            Dictionary <string, IDTSInputColumn90> inputColumnsDictionary = new Dictionary <string, IDTSInputColumn90>();

            foreach (IDTSInputColumn90 inputColumn in input.InputColumnCollection)
            {
                inputColumnsDictionary[inputColumn.Name] = inputColumn;
            }

            if (!inputColumnsDictionary.ContainsKey(sourceColumnName))
            {
                IDTSInputColumn90 newInputColumn = input.InputColumnCollection.New();
                newInputColumn.Name = sourceColumnName;

                IDTSCustomProperty90 newInputColumnCustomProperty = newInputColumn.CustomPropertyCollection.New();
                newInputColumnCustomProperty.Name  = "OutputColumnLineageID";
                newInputColumnCustomProperty.Value = unionAllCom.OutputCollection[0].OutputColumnCollection[destinationColumnName].LineageID;
            }
        }
Ejemplo n.º 2
0
        public static DerivedColumns CreateIsNullPatcherFromXml(Packages.VulcanPackage vulcanPackage, IDTSComponentMetaData90 parentComponent, MainPipe dataFlowTask, XPathNavigator nullNav)
        {
            if (nullNav == null || nullNav.Name.ToUpperInvariant() != "IsNullPatcher".ToUpperInvariant())
            {
                return(null);
            }

            string componentName = nullNav.SelectSingleNode("@Name", vulcanPackage.VulcanConfig.NamespaceManager).Value;

            Message.Trace(Severity.Debug, "Begin: IsNullPatcher variant DerivedColumns Transformation {0}", componentName);
            DerivedColumns dc = new DerivedColumns(vulcanPackage, dataFlowTask, parentComponent, componentName, componentName);

            IDTSVirtualInput90 vi = dc.Component.InputCollection[0].GetVirtualInput();

            TemplateEmitter te = new TemplateEmitter("NullPatcherIsnullTemplate", vulcanPackage, null);

            foreach (XPathNavigator nav in nullNav.Select("rc:Column", vulcanPackage.VulcanConfig.NamespaceManager))
            {
                string name         = nav.SelectSingleNode("@Name").Value;
                string defaultValue = nav.SelectSingleNode("@DefaultValue").Value;

                dc.SetInputUsageType(vi, vi.VirtualInputColumnCollection[name], DTSUsageType.UT_READWRITE);
                IDTSInputColumn90 inputCol = dc.Component.InputCollection[0].InputColumnCollection[name];

                string expression;
                te.SetParameters("#" + vi.VirtualInputColumnCollection[name].LineageID.ToString(), defaultValue);
                te.Emit(out expression);

                string friendlyExpression;
                te.SetParameters(name, defaultValue);
                te.Emit(out friendlyExpression);

                inputCol.CustomPropertyCollection["Expression"].Value         = expression;
                inputCol.CustomPropertyCollection["FriendlyExpression"].Value = friendlyExpression;
            }
            return(dc);
        }