次の方法で共有


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

新規 : 2006 年 4 月 14 日

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

  • カスタム タスク
  • カスタム接続マネージャ   現在サポートされていない外部データ ソースに接続します。
  • カスタム ログ プロバイダ   現在サポートされていない形式でパッケージ イベントのログを記録します。
  • カスタム列挙子   現在サポートされていないオブジェクト形式または値形式のセットを繰り返し処理できるようにします。
  • カスタム データ フロー コンポーネント   変換元、変換、変換先のいずれかとして構成できます。

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

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

各種オブジェクトの実際のサンプルについては、「プログラミング サンプル」を参照してください。

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

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

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

  1. 種類がクラス ライブラリの新規プロジェクトを、任意のマネージ プログラミング言語で作成します。
  2. 次の表に示す、適切な基本クラスを継承します。
  3. 次の表に示す、適切な属性を新しいクラスに適用します。
  4. 必要に応じて基本クラスのメソッドをオーバーライドし、オブジェクトのカスタム機能のコードを記述します。
  5. 必要に応じて、コンポーネント用のカスタム ユーザー インターフェイスを構築します。配置を容易にするため、同一ソリューション内の別個のプロジェクトとしてユーザー インターフェイスを開発し、別個のアセンブリとしてビルドすることもできます。
  6. カスタム オブジェクトのビルド、配置、およびデバッグ」の説明に従って、新しいカスタム オブジェクトのビルド、配置、およびデバッグを行います。

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

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

カスタム オブジェクト 基本クラス 属性 重要なメソッド

タスク

Task

DtsTaskAttribute

Execute

接続マネージャ

ConnectionManagerBase

DtsConnectionAttribute

AcquireConnection, ReleaseConnection

ログ プロバイダ

LogProviderBase

DtsLogProviderAttribute

OpenLog, Log, CloseLog

列挙子

ForEachEnumerator

DtsForEachEnumeratorAttribute

GetEnumerator

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

PipelineComponent

DtsPipelineComponentAttribute

ProvideComponentProperties, PrimeOutput, ProcessInput

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

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

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

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

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

カスタム オブジェクト ユーザー インターフェイス用の基本クラス カスタム ユーザー インターフェイスを指定しなかった場合の既定の編集動作

タスク

IDtsTaskUI

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

接続マネージャ

IDtsConnectionManagerUI

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

ログ プロバイダ

IDtsLogProviderUI

(SQL Server 2005 Integration Services (SSIS) では実装されない)

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

列挙子

ForEachEnumeratorUI

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

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

IDtsComponentUI

詳細エディタ。

参照

処理手順

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

概念

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

ヘルプおよび情報

SQL Server 2005 の参考資料の入手