Integration Services 用のカスタム オブジェクトの開発

SQL Server Integration Services に含まれる制御フロー オブジェクトおよびデータ フロー オブジェクトが、求める条件を満たしていない場合は、次のようなさまざまな種類のカスタム オブジェクトを独自に開発できます。

  • カスタム タスク

  • カスタム接続マネージャー   現在サポートされていない外部データ ソースに接続します。

  • カスタム ログ プロバイダー   現在サポートされていない形式でパッケージ イベントのログを記録します。

  • カスタム列挙子   現在サポートされていないオブジェクト形式または値形式のセットを繰り返し処理できるようにします。

  • カスタム データ フロー コンポーネント   変換元、変換、変換先のいずれかとして構成できます。

Integration Services オブジェクト モデルにはこのカスタム開発を容易にする複数の基本クラスがあります。これらの基本クラスによって、カスタム実装に対し、一貫した信頼性の高いフレームワークが提供されます。

カスタム機能を複数のパッケージで再利用する必要がない場合には、スクリプト タスクおよびスクリプト コンポーネントを使用すると、マネージ プログラミング言語を最大限に活用でき、記述するインフラストラクチャ コードが大幅に削減されます。 詳細については、「スクリプティング ソリューションとカスタム オブジェクトとの比較」を参照してください。

Integration Services 用カスタム オブジェクトの開発手順

Integration Services で使用するカスタム オブジェクトを開発する際には、クラス ライブラリ (DLL) を開発します。このクラス ライブラリは、デザイン時に SSIS デザイナーによって、また実行時に Integration Services ランタイムによって、それぞれ読み込まれます。 実装の必要がある最も重要なメソッドは、独自のコードから呼び出すメソッドではなく、ランタイムによって適切な時点で呼び出され、コンポーネントの初期化および検証や、機能の呼び出しを行うメソッドです。

次に、カスタム オブジェクトの開発手順を示します。

  1. 種類がクラス ライブラリの新規プロジェクトを、任意のマネージ プログラミング言語で作成します。

  2. 次の表に示す、適切な基本クラスを継承します。

  3. 次の表に示す、適切な属性を新しいクラスに適用します。

  4. 必要に応じて基本クラスのメソッドをオーバーライドし、オブジェクトのカスタム機能のコードを記述します。

  5. 必要に応じて、コンポーネント用のカスタム ユーザー インターフェイスを構築します。 配置を容易にするため、同一ソリューション内の別個のプロジェクトとしてユーザー インターフェイスを開発し、別個のアセンブリとしてビルドすることもできます。

  6. 必要に応じて、カスタム オブジェクトのサンプルおよびヘルプ コンテンツへのリンクを SSIS ツールボックス内に表示します。

  7. カスタム オブジェクトのビルド、配置、およびデバッグ」の説明に従って、新しいカスタム オブジェクトのビルド、配置、およびデバッグを行います。

基本クラス、属性、および重要なメソッド

この表では、開発可能な各種カスタム オブジェクトに対する、Integration Services オブジェクト モデルの最も重要な要素を簡単に参照できます。

カスタム オブジェクト

基本クラス

属性

重要なメソッド

タスク

Task

DtsTaskAttribute

Execute

接続マネージャー

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection,ReleaseConnection

ログ プロバイダー

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

列挙子

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

データ フロー コンポーネント

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

サンプルとヘルプ コンテンツへのリンクの提供

マネージ コードで記述されたカスタム オブジェクトのサンプルおよびヘルプ コンテンツへのリンクを SSIS ツールボックスに表示するには、次のプロパティを使用します。

ネイティブ コードで記述されたカスタム オブジェクトのサンプルおよびヘルプ コンテンツへのリンクを表示するには、レジストリ スクリプト (.rgs) ファイルに SamplesTag、HelpKeyword、および HelpCollection のエントリを追加します。 以下に例を示します。

val HelpKeyword = s 'sql11.dts.designer.executepackagetask.F1'

val SamplesTag = s 'ExecutePackageTask'

カスタム ユーザー インターフェイスの提供

カスタム オブジェクトのプロパティをユーザーが構成できるようにするには、カスタム ユーザー インターフェイスの開発も必要になる場合があります。 カスタム ユーザー インターフェイスが特に必要ない場合も、既定のエディターよりもユーザー フレンドリなカスタム ユーザー インターフェイスを作成できます。

1 つのカスタム ユーザー インターフェイス プロジェクトまたはアセンブリには、通常 2 つのクラスがあります。特定の種類のカスタム オブジェクトのユーザー インターフェイスに対して Integration Services インターフェイスを実装するクラスと、このクラスによって表示される、ユーザーから情報を収集するための Windows フォームです。 実装するインターフェイスに含まれるメソッドは少数であるため、カスタム ユーザー インターフェイスの開発は難しくありません。

注意

多くの Integration Services ログ プロバイダーには、カスタム ユーザー インターフェイスがあります。カスタム ユーザー インターフェイスには IDtsLogProviderUI が実装され、[構成] ボックスが、使用可能な接続マネージャーがフィルター選択されたドロップダウン リストに置き換えられます。 ただし、カスタム ログ プロバイダーのカスタム ユーザー インターフェイスは、このリリースの Integration Services では実装されていません。 そのため、DtsLogProviderAttributeUITypeName プロパティに値を指定しても、影響がありません。

次の表では、各種カスタム オブジェクトに対するカスタム ユーザー インターフェイスの開発時に実装が必要なインターフェイスを、簡単に参照できます。 また、オブジェクトに対するカスタム ユーザー インターフェイスを開発しなかった場合や、オブジェクトの属性の UITypeName プロパティを使用して、オブジェクトをそのユーザー インターフェイスにリンクできなかった場合に、ユーザーに対してどのように表示されるのかについても説明します。 データ フロー コンポーネントにとっては強力な詳細エディターで十分な場合もありますが、タスクや接続マネージャーにとっては [プロパティ] ウィンドウは比較的わかりにくいソリューションであり、カスタム ForEach 列挙子はカスタム フォームなしでは構成不可能です。

カスタム オブジェクト

ユーザー インターフェイス用の基本クラス

カスタム ユーザー インターフェイスを指定しなかった場合の既定の編集動作

タスク

IDtsTaskUI

[プロパティ] ウィンドウのみ。

接続マネージャー

IDtsConnectionManagerUI

[プロパティ] ウィンドウのみ。

ログ プロバイダー

IDtsLogProviderUI

(Integration Services では未実装)

[構成] 列のテキスト ボックス。

列挙子

ForEachEnumeratorUI

[プロパティ] ウィンドウのみ。 エディターの列挙子構成領域は空です。

データ フロー コンポーネント

IDtsComponentUI

詳細エディター

外部リソース

Integration Services のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN の Integration Services のページを参照してください。


これらの更新が自動で通知されるようにするには、ページの RSS フィードを定期受信します。

関連項目

タスク

カスタム オブジェクトのビルド、配置、およびデバッグ

概念

カスタム オブジェクトの永続化