为SSIS编写自定义任务项(Task)之入门篇

在BI Studio中,默认提供了很多很好用的任务项供我们使用。

image image

但是如果这些任务还没有满足我们的要求,我们能不能自己写一个然后添加到工具箱呢?答案是肯定的。

本文介绍如何开始该工作。

 

1. 创建一个类库项目

image

将默认的Class1重命名为MyXMLTask

image

添加程序集引用: Microsoft.SQLServer.ManagedDTS

image

2. 编写一个最简单的任务项。我们目前为其实现的功能是:当它执行的时候,弹出一个对话框,告诉我们它在执行了

为此,我们添加System.Windows.Forms 的引用

image

让我们的类型继承自Task,并为其重写Execute方法。同时为其添加一个DTSTask的Attribute

 

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
namespace MySSISTaskSample
{
    [DtsTask(
        Description="这是我的一个自定义XML任务,"+
            "它与标准的XML任务的区别就在于可以自动处理命名空间问题",
        DisplayName="超强XML任务",
        TaskContact="陈希章:http://www.xizhang.com"
        )]
    public class MyXMLTask:Task
    {

        /// <summary>
        /// 这个方法真正执行操作
        /// </summary>
        /// <param name="connections"></param>
        /// <param name="variableDispenser"></param>
        /// <param name="componentEvents"></param>
        /// <param name="log"></param>
        /// <param name="transaction"></param>
        /// <returns></returns>
        public override DTSExecResult Execute(Connections connections, 
            VariableDispenser variableDispenser, 
            IDTSComponentEvents componentEvents, 
            IDTSLogging log, object transaction)
        {

            MessageBox.Show("我在工作了");
            return base.Execute(connections, variableDispenser, componentEvents, log, transaction);
        }
    }
}

3. 部署该任务项

请严格按照这篇文章的介绍操作 http://msdn.microsoft.com/zh-cn/library/ms403356.aspx

首先为其生成强名称签名

image

然后,生成项目,复制dll到如下目录

image

与此同时,我们还需要将其添加到GAC

image

4. 在BI Studio中添加该Task

image

添加一个选项卡:“自定义”

image

在“自定义”的空白处,点击右键,“选择项”

image

切换到“SSIS控制项”这个页面,选中“超强XML任务”

点击“确定”

image

5. 测试该Task

我们新建一个包来测试该任务

image

执行该任务

image

image

到这里为止,我们写的自定义任务已经可以工作了,当然它现在的工作几乎没有什么意义。但本文主要是介绍开发和部署的流程。下一篇,我们将介绍,如何添加自定义编辑页面

本文由作者:陈希章 于 2009/6/20 16:02:05 发布在:http://www.cnblogs.com/chenxizhang/
本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点:陈希章的博客中心
posted @ 2009-06-20 16:02  陈希章  阅读(3807)  评论(5编辑  收藏  举报