はじめまして。こげパンです。
ログファイルを動的に作成しようとして、てこずってます。
やりたいことは、ファイル名を日付ごとに分けることと、さらにディレクトリも任意に指定したいことです。
過去ログを参考にしましたが、
http://blogs.timberlandchapel.com/blogs/timberlandchapel/pages/ssis-lightning-ssis.aspx
これですと、ディレクトリが任意指定できません。
そこで、ディレクトリをパッケージ構成ファイルに指定して、さらにスクリプトタスクを利用して、
パス+ファイル名を生成して変数に渡すことで実現してみようと考えたのですが、
これがうまくいきません。
もしかすると、ファイル接続マネージャのConnectionStringは、スクリプトタスクで生成した
値は参照できないんでしょうか(変数に読み込むタイミングの問題?)
試したのは、以下のような実装です。
○変数
varLocalDir, スコープ:Package.dtsx, String, (null)
varLogFileConnStr, スコープ:Package.dtsx, String, (適当な既存のファイルを指定)
※ここで適当な既存のファイルを指定しておかないとエラーになってしまいます。
これも指定しなくてもよいように、何とかならないものでしょうか?
○スクリプトタスクのプロパティ
ReadVariables: varLocalDir
ReadWriteVariables: varLogFileConnStr
※スクリプトタスクは、すべてのタスクの先頭に持ってきております。
○スクリプトの実装(ログファイル 変数への代入)
Dts.Variables("varLogFileConnStr").Value = _
CType(Dts.Variables("varLocalDir").Value, String) + Today().ToString("yyyyMMdd") + ".log"
※varLocalDirは、パッケージ構成ファイルから読み込んでいます。
この値は、他の変数にも使用していて、そちらで正常に格納されていることが確認できています。
○ファイル接続マネージャ(Name: LogFile Connection)
Expressions
ConnectionString: @[User::varLogFileConnStr]
○ログの構成
テキストファイルのSSISログプロバイダ
構成に LogFile Connection を指定
今はひとまずあきらめて、上記のvarLogFileConnStrの変数に、パッケージ構成ファイルから、
フルパスを指定する形で実装しています。これだとうまくいきますが、
日付ごとにログを分けることができません。
お分かりになる方、どうかご教授お願いいたします。
環境: SQL Server 2005 SP2