SSIS中是否有从包中提取功能以添加到其他包中的功能?



我刚刚将错误处理功能添加到我正在升级的SSIS包中,并且我需要将相同的错误处理添加到大约30多个包中。是否有一种方法可以提取错误处理控制流、参数、变量等,以便我可以轻松地将它们添加到其余的包中?

我使用的是Visual Studio Enterprise 2019和SSIS 15.0。

我找到了一堆关于BIML的文章,但看起来那只是用来创建新包的。我知道存在复制和粘贴,但我想尝试找到一种解决方案,可以轻松地应用于未来的包以及当前正在更新的包。如果这个问题已经被问过了,我很抱歉,我搜索了,但我不确定我甚至真的知道哪些搜索词是适用的。

是的,Biml是创建一致性包的最佳选择。即使您只是生成带有错误处理逻辑的空包,这也是一种模式,也是Biml的强大之处。

随着对BimlExpress的更改和现在免费的反向工程包的能力,一种方法可能是将包反向工程到Biml。这些都是静态层,但你需要全部选中,然后在新的BimlScript文件中,添加如下错误处理

<#
foreach(AstPackageNode apn in this.RootNode.Packages)
{
if (!apn.Events.Where(x => x.EventType==EventType.OnError).Any())
{
AstTaskEventHandlerNode onError = new AstTaskEventHandlerNode(null);
onError.EventType = EventType.OnError;
onError.Name = "OnError";
// TODO: add tasks and such
apn.Events.Add(onError);
}

//WriteLine(apn.GetBiml());
}
#>

一旦看起来很好,你右键单击所有的东西,并生成包。

非bim方法将测试你的c#(或VB.NET)技能。我已经十多年没有接触过这种类型的SSIS开发了,但概念将保持不变。https://billfellows.blogspot.com/2016/10/what-packages-still-use-configuration.html

你需要找到所有的SSIS包。对于其中的每一个,使用对DTS Runtime应用程序的引用来加载它。然后查看包的Events集合,如果没有OnError,你将不得不添加一个到集合中,然后添加所有相关的任务,配置它们,然后保存。

最新更新