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