スクリプト タスク
スクリプト タスクでは、組み込みのタスクで利用できない関数を実行するコード、および SQL Server Integration Services で用意されている変換を実行するコードが用意されています。 また、スクリプト タスクを使用すると、複数のタスクおよび変換を使用しなくても、関数を 1 つのスクリプトに結合できます。 スクリプト タスクは、データ行ごとに 1 回ではなく、1 つのパッケージ内で 1 回 (または列挙されたオブジェクトごとに 1 回) 行う作業に使用します。
スクリプト タスクは、次の目的で使用できます。
組み込みの接続の種類ではサポートされていないその他のテクノロジを使用して、データにアクセスします。 たとえば、スクリプトは、Active Directory Service Interfaces (ADSI) を使用して Active Directory のユーザー名にアクセスし、ユーザー名を抽出できます。
パッケージ固有のパフォーマンス カウンターを作成します。 たとえば、スクリプトを使用して、複雑なタスクや時間のかかるタスクの実行中に更新されるパフォーマンス カウンターを作成できます。
指定されたファイルが空かどうか、またはそれらのファイルに含まれている行数を判断し、その情報に基づいて、パッケージ内の制御フローを調整します。 たとえば、ファイル内の行数が 0 行の場合は、変数の値が 0 に設定され、値を評価する優先順位制約で、ファイル システム タスクによるファイルのコピーが回避されます。
スクリプトを使用してセット内のデータ行ごとに同じ作業を行う必要がある場合は、スクリプト タスクではなく、スクリプト コンポーネントを使用します。 たとえば、郵送料が妥当かどうかを評価し、極端に高いデータ行や極端に安いデータ行をスキップする場合は、スクリプト コンポーネントを使用します。 詳細については、「スクリプト コンポーネント」を参照してください。
複数のパッケージで 1 つのスクリプトを使用する場合は、スクリプト タスクを使用せず、カスタム タスクを記述することをお勧めします。 詳細については、「カスタム タスクの開発」を参照してください。
スクリプト タスクがパッケージにとって適切な選択である場合、タスクが使用するスクリプトを開発して、タスク自体を構成する必要があります。
タスクが使用するスクリプトの記述と実行
スクリプト タスクでは、スクリプトを記述する環境、およびそのスクリプトを実行するエンジンとして Microsoft Visual Studio Tools for Applications (VSTA) を使用します。
VSTA には、色分け表示が可能な Visual Studio エディター、IntelliSense、オブジェクト エクスプローラーなど、Visual Studio 環境での標準機能がすべて含まれています。 VSTA には、他の Microsoft の開発ツールに付属しているのと同じデバッガーも含まれています。 スクリプト内のブレークポイントは、Integration Services のタスクやコンテナーのブレークポイントとシームレスに動作します。VSTA は、Microsoft Visual Basic と Microsoft Visual C# の両方のプログラミング言語をサポートしています。
スクリプトを実行するには、パッケージを実行するコンピューターに VSTA がインストールされている必要があります。 パッケージを実行すると、タスクはスクリプト エンジンを読み込み、スクリプトを実行します。 プロジェクト内のアセンブリへの参照を追加すると、スクリプトから外部の .NET アセンブリにアクセスできます。
注 |
---|
スクリプトをプリコンパイルするかどうかを指定できた以前のバージョンとは異なり、SQL Server 2008 Integration Services (SSIS) 以降のバージョンではすべてのスクリプトがプリコンパイルされます。 スクリプトがプリコンパイルされると、実行時に言語エンジンを読み込まないため、パッケージの実行速度が向上します。 ただし、コンパイル済みのバイナリ ファイルは多量のディスク領域を使用します。 |
スクリプト タスクの構成
スクリプト タスクは、次の方法で構成できます。
タスクを実行するカスタム スクリプトを指定します。
スクリプト タスク コードのエントリ ポイントとして Integration Services ランタイムが呼び出す、VSTA プロジェクトのメソッドを指定します。
スクリプト言語を指定します。
必要に応じて、スクリプトで使用する読み取り専用の変数および読み取り/書き込み変数の一覧を指定します。
これらのプロパティは SSIS デザイナーから設定するか、またはプログラムによって設定します。
デザイナーでのスクリプト タスクの構成
次の表では、スクリプト タスクでログに記録できる ScriptTaskLogEntry イベントについて説明します。 ScriptTaskLogEntry イベントは、[SSIS ログの構成] ダイアログ ボックスの [詳細] タブでログ記録の対象として選択できます。 詳細については、「Integration Services (SSIS) のログ記録」および「ログ記録用のカスタム メッセージ」を参照してください。
ログ エントリ |
説明 |
---|---|
ScriptTaskLogEntry |
スクリプト内でのログ記録の実装結果を報告します。 タスクは、Dts オブジェクトの Log メソッドを呼び出すたびにログ エントリを書き込みます。 タスクは、これらのエントリをコードの実行時に書き込みます。 詳細については、「スクリプト タスクでのログ記録」を参照してください。 |
SSIS デザイナーで設定できるプロパティの詳細については、次のトピックを参照してください。
SSIS デザイナーでこれらのプロパティを設定する方法については、次のトピックを参照してください。
プログラムによるスクリプト タスクの構成
プログラムによってこれらのプロパティを設定する方法の詳細については、次のトピックを参照してください。
関連コンテンツ
- shareourideas.com の技術記事「配信通知付きで電子メールを送信する方法 (C#)」
|