2

SSIS のエラー ログを強化しようとしています。sysssislog に保存される SSIS の組み込みログ (OnError、OnWarning など) を使用することに加えて、エラー出力にリダイレクトされる特定の行も追跡します (行を xml に変換し、パッケージの名前を追加し、データ フロー タスクを実行し、データベース内のテーブルに行をドロップします)。どのデータ フロー コンポーネントがエラーをスローしたかも含めて、リダイレクトされたエラー行を追跡するときにキャプチャされる情報を強化しようとしています。

私の問題は、ワークフローの一部になるようにコンポーネント名を渡す最善の方法がわからないことです。最初に考えたのは、この情報を取得するカスタム コンポーネントを作成することでしたが、IDTSInput100 オブジェクトから関連する IDTSPath100 オブジェクトに戻る方法が見つからないようです。それができれば、それに関連付けられている IDTSOutput100 オブジェクトの ID を取得し、さらに一歩前に戻って、データ フロー内の前のコンポーネントからメタデータを取得できると思います。

最終的な目標を達成するための最善の方法について何かアドバイスはありますか? 助けてくれてありがとう!

4

3 に答える 3

1

これについてはあまり読みませんが、派生列を作成して、必要なすべての情報を発信エラー行に追加することはできませんか? 私は通常、「顧客 ID: [ColumnName] のルックアップに失敗しました」というカスタム エラー メッセージをこのように (ルックアップで) 追加します。これは私にとってはうまくいきます。

于 2013-01-08T16:37:29.623 に答える
1

上流のコンポーネント名を取得する方法がわかりました! 各 IDTSInput100 オブジェクトに対して GetVirtualInput メソッドを使用し、IDTSVirtualInputColumn100 オブジェクトにアクセスして UpstreamComponentName を見つけました。もっと簡単な方法があるはずですが、少なくとも必要なことはできました。

また、rvphx、提案をありがとう。これは、エラー列の名前と説明を取得するのに役立ちます。

于 2013-01-15T15:19:38.680 に答える