0

MS Visual Studio 2008 を使用してビジネス インテリジェンス プロジェクトを作成しました。dtsx には単純なメール タスクがあります。dtsConfig ファイルから MailTo 変数を使用するにはどうすればよいですか?

<Configuration ConfiguredType="Property" Path="\Package.Variables[User::MailTo].Properties[Value]" ValueType="String"> <ConfiguredValue>hello@world.com</ConfiguredValue> </Configuration>

現在、Windows バッチ スクリプトを使用してこの dtsx パッケージを実行しています。

dtexec /f "D:\MyPath\Sample.dtsx" /conf "D:\MyPath\Sample.dtsConfig"

構成ファイル変数を変更した後に実行すると、起動[User::MailTo]しません。以前のメールIDにメールを送信しています。

[User::MailTo]実行時に dtsConfig ファイルの変数を使用するにはどうすればよいですか?

前もって感謝します...

4

1 に答える 1

0

変数は、ルート/パッケージ レベルで SSIS に存在します。変数は他のスコープに存在する可能性があるため、存在する場所を特定することが重要です。

使用している構成ファイルは、実行時に "hello@world.com" の値を @[User::MailTo] に割り当てます。

イベントを発生させた場合、MailTo の値が設計時の値 TempExpt@other.net から構成ファイルの値に変化することを確認できます。ここでの秘訣は、ハード コードされた値の代わりに、メール タスクで変数を使用することです。

これは、式によって実現されます。SSIS のすべてのオブジェクトは Expressions コレクションを公開します。単純なパッケージに見えるかもしれませんが、ここから他のエクスプレッションにリンクされたエクスプレッションで無限に配線することができます。私はよく、専門家と怠け者の違いは、式、構成、およびロギングの賢明な使用にあると述べています。

Send Mail Task をダブルクリックすると、Expressions タブが表示されます。そこの最初のグリッドで、To フィールドが見つかるまでドロップダウンをクリックします。次の列では、変数を使用します@[User::MailTo]

エディターを使用してオブジェクトに複雑な式を作成することはできますが、私はこれを行わないことを強くお勧めします。変数を作成し、そことオブジェクトで邪悪な複雑な式ロジックを使用して、変数を参照するだけです。その理由は、サポートとメンテナンスです。オブジェクトを検査して式が何であるかを確認することはできません。それらが悪い場合、パッケージが破裂し、トラブルシューティングに頼ることができなくなります. それが単なる式である場合は、それらにブレークポイントを設定してから、変数を調べて何が問題なのかを調べることができます。

于 2013-09-18T13:05:40.493 に答える