我们在SSIS的设计过程中,经常会用到表达式。我也经常在讲课的时候提到:变量和表达式是SSIS包的灵魂,只有掌握了这两个东西的使用,才能设计足够灵活的包。
那么,我们怎么样给自定义组件的自定义属性实现表达式绑定支持呢?
其实比较简单,我们只需要一句代码就可以了。不需要其他任何的具体实现
IDTSCustomProperty90 folder = ComponentMetaData.CustomPropertyCollection.New();
folder.Name = "Folder";
//folder.TypeConverter = typeof(FolderEnum).AssemblyQualifiedName;
folder.UITypeEditor = typeof(MyTypeUIEditor).AssemblyQualifiedName;
folder.ExpressionType = DTSCustomPropertyExpressionType.CPET_NOTIFY;
注意,只要给自定义属性指定一个ExpressionType即可。指定为NOTIFY
在BI Studio中测试效果
选中“数据流任务”,在属性窗口中,点击“Expressions”右侧的一个小按钮
在这里就可以与变量进行绑定。为了演示,我们准备一个变量:vFolder
到这里为止,我们就实现了自定义属性的表达式绑定
题外话:
我们之前探讨过自定义任务项(Task)的开发。这些自定义任务项的属性是如何与表达式绑定呢?
好消息是:自定义任务项(Task)的属性是自动可以与表达式绑定的。无需任何设计。例如我们来看一下我们之前写的那个“超强XML任务”