0

シーケンス コンテナー内に 40 を超える独立したデータ フロー タスクがあります。

シーケンス コンテナー内の各データ フロー タスク内で宛先に転送された行数をフラット ファイルに記録する方法はありますか?

私はこの方法を試しました:

  1. rowcount タスクを使用して、rowcount 値を変数に格納します。
  2. 宛先テーブル タスクを実行します。
  3. データ フロー タスクの後に、スクリプト タスクを実行して、rowcount 変数をフラット ファイルに書き込みます。

この方法はうまくいきましたが、そのコンテナー内のすべてのデータフロー タスクに対してスクリプト タスクを追加し続ける必要があります。

各データ フロー タスクが完了した後にこのスクリプトを自動的に実行し、各データ フロー タスクが転送する行数を「xyz データ フロー タスクが xxxx 行を転送しました」というカスタム テキストで書き込む方法はありますか?

4

3 に答える 3

1

データフローごとに、マスターパッケージ、「パッケージハンドラーパッケージ」、および子パッケージが必要です。

まず、マスターパッケージで、データフローがある回数だけ「パッケージハンドラパッケージ」を呼び出します。それぞれについて、パッケージファイルパスを持つスコープ変数を設定します。

「パッケージハンドラパッケージ」で、データフローを表す子パッケージを(ファイルパスを保持する親パッケージ変数を使用して)呼び出し、パッケージ実行タスクが成功すると、番号を保持する変数を書き留めるスクリプトを呼び出します。ファイル(またはテーブル、または必要な場所)の行の数。

各子パッケージで、行数変換をパッケージに追加し、その値を親パッケージ変数に書き込むだけです。

したがって、パッケージのシーケンスは次のようになります。

               MasterPackage.dtsx
                 |             |
                 |             |
 PackageHandler.dtsx         PackageHandler.dtsx
        |                           |
        |                           |
 ChildPackage_1.dtsx         ChildPackage_2.dtsx

注:子パッケージにエラーが発生し、親パッケージ変数がこのパッケージに存在しないことを通知します。これで問題ありません。実行時に機能します。

于 2012-10-22T18:59:09.240 に答える
1

スクリプト タスクを何度も追加したくない場合は、カスタム データ フロー コンポーネントを作成することをお勧めします。

これは 1 回限りの作業ですが、さまざまな SSIS プロジェクトで何度でも再利用できます。

于 2012-10-22T16:39:08.517 に答える
0

http://pragmaticworks.com/Products/BI-xPressを使用します - パッケージを取得し、構成可能な監査フレームワークを挿入します。少し費用がかかりますが、利用可能なものを評価することをお勧めします。

于 2012-10-24T21:27:44.287 に答える