2017-02-20 12 views
0

私はBIISを使用してSSISパッケージを作成しており、パッケージの1つのセクションでエラーが発生しました。私はExecute SQLタスクを使用しています。ストアドプロシージャを呼び出してエラーの詳細をデータベースに記録します。ストアドプロシージャには、エラーの説明とその他のカスタム情報の情報を保持するパラメータ@Commentsが必要です。式ビルダーでSystem :: ErrorDescriptionシステム変数を使用するには

私は、変数ERROR_DETAILSを作成し、@Commentsのparamの値を構築するために式を使用しようとしています。

<Parameters> 
    <Parameter Name="ParentPkgID" DataType="Int32">0</Parameter> 
</Parameters> 

<Variables> 
    <Variable Name="TableName" DataType="String"> 
     tblEmployee 
    </Variable> 
    <Variable Name="Error_Details" DataType="String" EvaluateAsExpression="true"> 
     &quot;Package execution failed, Error details :: &quot; + @[System::ErrorDescription] 
    </Variable> 
</Variables> 

問題は、私は、変数を作成するために、上記のコードを使用する場合、パッケージの作成が失敗している、私はシステムを理解:: ErrorDescriptionは、式ビルダでは使用できませんが、私のオプションは、ここで何をしています。

BIMLコードの特定のコンテキストでのみ使用できるシステム変数を使用するにはどうすればよいですか。

ご質問ありがとうございます。解決策を提案してください。

答えて

5

これはSSISの制限によるもので、SSDTデザイナーは上記の式を使用すると同様のエラーを表示します。

SSISは、OnErrorなどの特定のイベントハンドラタイプのコンテキストで使用できるSystem :: ErrorDescriptionおよびSystem :: ErrorCode変数のみを作成します。

ExecuteSQLタスクでイベントハンドラを作成し、その中のエラーの説明を取得し、イベントハンドラ内からストアドプロシージャ呼び出しを使用してパッケージを処理するために、パッケージを並べ替えることができます。以下は、期待どおりに構築するための最小限のサンプルコードです。

+0

ありがとうございました。最後に、変数Error_Detailsに必要な値を割り当てるために、イベントハンドラ内に式タスクを作成しました。 –

関連する問題