2017-03-28 13 views
0

BIMLで生成されたSSISで変数値の変更をすべてログに記録しようとしています。 変数が値を変更するたびに書き込むイベントハンドラを作成することができました。 私が記録するとき、値を "System.VariableValue"に設定したパラメータを使用します。私はStoredProcにこのパラメータ(togheter変数名とPackageName)を渡し、私はログテーブルに書き込みます。 私の問題は頻繁に(ただし必ずしもそうではない)、パラメータには何の価値もないようです。 DBログテーブルに新しい行が表示されるので、これはevntが正しく引き上げられて処理されたことを意味しますが、パラメータが空であるようです。 最も奇妙なことは、時々値が正確に記録されることがあるが、常に同じではなく、同じパッケージではなく、まったくランダムに記録されることである。変数値を持つOnVariableValueChangedのSSISログ

いくつかの変数がほぼ同時に値を変更する可能性があるという問題がありますか(DBのいくつかの競合)?行自体がDBに書き込まれるので、私はそれを疑う。私は価値として、 '新しい価値=' +のようなものを書くことを試みた。つまり、パラメータ値を固定ストリングに追加します。固定部分は正しく書かれますが、値はありません。 値を変更した変数の名前は常に正しく書き込まれます。

これは何のために考えられますか?

回避策として、既製のSSISのログ機能を使用しようとしましたが、この場合はSYSSSISLOGテーブルのメッセージ列に、新しい値ではなく変更された変数の名前を読み取ることができます。

答えて

1

は、あなたがそれを行うためにEvent Handlerを使用することができthankx

Variablesページに移動し、Variable Grid Optionsにアクセスし、Raise event when variable value changesをチェックします。これらの変数にはさらに1つのオプションが表示されます(はデフォルトでFalse)。変更を追跡する必要がある変数についてはTrueに変更してください。そして、リセットされたパラメータの値、およびその値が、最も可能性が高いと等しいblankまたはwhitespaceに、まだ、それは価値の変化として認識されている可能性がありEvent handler

UPDATE 新ラインへのロギングタスクを置きます。

あなたはそれが起こったときに、あなたが特定のタスクにBreakpointを設定していただきありがとうございますどのように値の変更や値は、プロセスの途中

+0

blankをヒットするかどうかを確認するためにwatch windowを追加することができ非常にわからない場合あなたの時間。私の質問に書いたように、私はすでにそれを正確にやっています。それはロギングしていますが、変数の新しい値をハンドラに渡していません –

+0

答えを更新しました – LONG

+0

これまでのところ私は問題を理解できませんでしたが、少なくともSSISでブレークポイントと時計を使用することが可能でした。ありがとうございました。 –

関連する問題