為SSIS編寫自定義任務(wù)項(xiàng)(Task)之入門篇
在BI Studio中,默認(rèn)提供了很多很好用的任務(wù)項(xiàng)供我們使用。
但是如果這些任務(wù)還沒有滿足我們的要求,我們能不能自己寫一個然后添加到工具箱呢?答案是肯定的。
本文介紹如何開始該工作。
1. 創(chuàng)建一個類庫項(xiàng)目
將默認(rèn)的Class1重命名為MyXMLTask
添加程序集引用: Microsoft.SQLServer.ManagedDTS
2. 編寫一個最簡單的任務(wù)項(xiàng)。我們目前為其實(shí)現(xiàn)的功能是:當(dāng)它執(zhí)行的時候,彈出一個對話框,告訴我們它在執(zhí)行了
為此,我們添加System.Windows.Forms 的引用
讓我們的類型繼承自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任務(wù),"+ "它與標(biāo)準(zhǔn)的XML任務(wù)的區(qū)別就在于可以自動處理命名空間問題", DisplayName="超強(qiáng)XML任務(wù)", TaskContact="陳希章:http://www.xizhang.com" )] public class MyXMLTask:Task { /// <summary> /// 這個方法真正執(zhí)行操作 /// </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. 部署該任務(wù)項(xiàng)
請嚴(yán)格按照這篇文章的介紹操作 http://msdn.microsoft.com/zh-cn/library/ms403356.aspx
首先為其生成強(qiáng)名稱簽名
然后,生成項(xiàng)目,復(fù)制dll到如下目錄
與此同時,我們還需要將其添加到GAC
4. 在BI Studio中添加該Task
添加一個選項(xiàng)卡:“自定義”
在“自定義”的空白處,點(diǎn)擊右鍵,“選擇項(xiàng)”
切換到“SSIS控制項(xiàng)”這個頁面,選中“超強(qiáng)XML任務(wù)”
點(diǎn)擊“確定”
5. 測試該Task
我們新建一個包來測試該任務(wù)
執(zhí)行該任務(wù)
到這里為止,我們寫的自定義任務(wù)已經(jīng)可以工作了,當(dāng)然它現(xiàn)在的工作幾乎沒有什么意義。但本文主要是介紹開發(fā)和部署的流程。下一篇,我們將介紹,如何添加自定義編輯頁面

浙公網(wǎng)安備 33010602011771號