OK... 比較的単純な SSIS パッケージ (DTSDesigner100、Visual Studio 2008 バージョン 9.0.30729.4462 QFE、.NET Framework 3.5 SP1) があります。パッケージの SSIS 制御フローの最後に、ファイルの名前変更操作であるファイルシステム タスクがあります。
このファイル システム タスクのプロパティは次のとおりです。
- IsDetinationPathVariable: True
- DestinationVariable: ユーザー::出力ファイル名
- OverwriteDestination: True
- 説明: ファイル システム タスク
- 操作: ファイルの名前を変更
- IsSourcePathVariable: False
- SourceConnection: Excel テンプレートのコピー先
定義された表現はありません。ご覧のとおり、宛先は変数 User::OutputFileName として割り当てられています。それでは、その変数を見てみましょう...
- 名前: 出力ファイル名
- 範囲: パッケージ
- データ型 (ValueType): 文字列
- 価値:
- 名前空間: ユーザー
- EvaluateAsExpression: True
- 読み取り専用: 偽
- 式: (下記参照)
.
"\\\\SERVER\\Folder\\" + "MyAwesomeExcelWorkbook_"
+ (DT_WSTR,4)DATEPART("year", GETDATE())+ "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("mm", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("dd", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("hh", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("mi", GETDATE()), 2) + "-"
+ RIGHT("0" + (DT_WSTR,2)DATEPART("ss", GETDATE()), 2)
+ ".xlsx"
したがって、この式を正常に評価できます。パッケージが実行される (および失敗する) たびに、その値は、予想どおり、評価された式の値になります。
パッケージを実行すると、次のようになります...
- 前の手順は正常に実行されます。
- ファイル システム タスクが開始され、ファイルの名前が正常に変更されます。
- ただし、ファイル システム タスクが次のエラーで失敗するため、パッケージは失敗します。
.
Error: 0xC001F009 at Package: The type of the value being assigned to variable "User::OutputFileName" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object.
Task failed: Rename Excel Workbook
Error: 0xC0019001 at Rename Excel Workbook: The wrapper was unable to set the value of the variable specified in the ExecutionValueVariable property.
Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (4) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "Package.dtsx" finished: Failure.
ここで私が忘れているいくつかの細かい詳細があるようです。ここで、式全体を DT_WSTR,512 としてキャストしてみました。これは正常に評価されますが、ファイル システム タスクは同じエラーで失敗します。
私が見落としている詳細を指摘できる人はいますか? 前もって感謝します。