次の方法で共有


カスタム タスクの作成

適用対象: SQL Server Azure Data Factory の SSIS 統合ランタイム

カスタム タスクの作成手順は、Integration Services の他のカスタム オブジェクトの作成手順と同様です。

  • 基本クラスを継承する新しいクラスを作成します。 タスクの場合、基本クラスは Microsoft.SqlServer.Dts.Runtime.Task です。

  • クラスに、オブジェクトの種類を識別する属性を適用します。 タスクの属性は DtsTaskAttribute です。

  • 基本クラスのメソッドとプロパティの実装をオーバーライドします。 タスクでは、Validate メソッドおよび Execute メソッドが対象です。

  • 必要に応じて、カスタム ユーザー インターフェイスを開発します。 タスクでは、IDtsTaskUI インターフェイスを実装するクラスが必要です。

カスタム タスクの概要

プロジェクトおよびクラスの作成

すべてのマネージド タスクは Microsoft.SqlServer.Dts.Runtime.Task 基本クラスから派生するため、カスタム タスクを作成するには、最初に任意のマネージド プログラミング言語でクラス ライブラリ プロジェクトを作成し、基本クラスを継承するクラスを作成します。 この派生クラスで、基本クラスのメソッドとプロパティをオーバーライドして、カスタム機能を実装します。

同じソリューション内に、もう 1 つのクラス ライブラリ プロジェクトをカスタム ユーザー インターフェイス用に作成します。 配置を容易にするため、ユーザー インターフェイス用に別個のアセンブリを使用することをお勧めします。そうすれば、接続マネージャーやそのユーザー インターフェイスの更新や再配置を個別に行うことができます。

どちらのプロジェクトも、アセンブリに署名するよう構成します。アセンブリは、厳密な名前のキー ファイルを使用して、ビルド時に生成されます。

DtsTask 属性の適用

作成したクラスに DtsTaskAttribute 属性を適用して、そのクラスがタスクとして識別されるようにします。 この属性には、名前、説明、およびタスクの種類など、デザイン時の情報を指定します。

UITypeName プロパティを使用して、タスクをそのカスタム ユーザー インターフェイスにリンクします。 このプロパティに必要な公開キー トークンを取得するには、sn.exe -t を使用して、ユーザー インターフェイス アセンブリへの署名に使用するキー ペア (.snk) ファイルから公開キー トークンを表示します。

using System;  
using Microsoft.SqlServer.Dts.Runtime;  
namespace Microsoft.SSIS.Samples  
{  
  [DtsTask  
  (  
   DisplayName = "MyTask",  
   IconResource = "MyTask.MyTaskIcon.ico",  
   UITypeName = "My Custom Task," +  
   "Version=1.0.0.0," +  
   "Culture = Neutral," +  
   "PublicKeyToken = 12345abc6789de01",  
   TaskType = "PackageMaintenance",  
   TaskContact = "MyTask; company name; any other information",  
   RequiredProductLevel = DTSProductLevel.None  
   )]  
  public class MyTask : Task  
  {  
    // Your code here.  
  }  
}  
Imports System  
Imports Microsoft.SqlServer.Dts.Runtime  
  
<DtsTask(DisplayName:="MyTask", _  
 IconResource:="MyTask.MyTaskIcon.ico", _  
 UITypeName:="My Custom Task," & _  
 "Version=1.0.0.0,Culture=Neutral," & _  
 "PublicKeyToken=12345abc6789de01", _  
 TaskType:="PackageMaintenance", _  
 TaskContact:="MyTask; company name; any other information", _  
 RequiredProductLevel:=DTSProductLevel.None)> _  
Public Class MyTask  
  Inherits Task  
  
  ' Your code here.  
  
End Class 'MyTask  

カスタム タスクの作成、配置、およびデバッグ

Integration Services でカスタム タスクを作成、配置、およびデバッグする手順は、その他の種類のカスタム オブジェクトで必要な手順とほとんど同様です。 詳細については、「カスタム オブジェクトのビルド、配置、デバッグ」を参照してください。

参照

カスタム タスクの作成
カスタム タスクのコーディング
カスタム タスク用ユーザー インターフェイスの開発