in

TimberLandChapel.com
Community Stage

Untiring efforts and inspiration of the moment...
TimberLandChapel.com supports the engineers who study every day.

ログファイルで、日付による動的ファイル名と、任意の出力先ディレクトリを実現したい

Last post 火, 6 30 2009 21:43 by timberlandchapel. 1 replies.
Page 1 of 1 (2 items)
Sort Posts: Previous Next
  • 木, 6 25 2009 14:48

    • Kogepan
    • Top 25 Contributor
    • Joined on 木, 6 25 2009
    • Posts 2

    ログファイルで、日付による動的ファイル名と、任意の出力先ディレクトリを実現したい

    はじめまして。こげパンです。

    ログファイルを動的に作成しようとして、てこずってます。
    やりたいことは、ファイル名を日付ごとに分けることと、さらにディレクトリも任意に指定したいことです。

    過去ログを参考にしましたが、
    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

    Filed under:
  • 火, 6 30 2009 21:43 In reply to

    Re: ログファイルで、日付による動的ファイル名と、任意の出力先ディレクトリを実現したい

    お疲れ様です。TimberLandChapelです。

    すいません。ちょっと海外に出てたのでお返事遅れました。

    さて,

    1.※ここで適当な既存のファイルを指定しておかないとエラーになってしまいます。

    残念ながら,2005 SSIS ではだめですね。

    で,本題ですが,

    パッケージ構成ファイルにまでパスを持ってこられているのであれば,

    その変数 varLocalDir を使って式(Expression)を構成するのでうまくいかないですか?

    わざわざスクリプトを組む必要はないように思いますが。

     

    <-------------------------
     TimberLandChapel
     TimberLandChapel.com Community Stage Administrator
    --------------------------->
Page 1 of 1 (2 items)
©TimberLandChapel.com all right reserved 2005-2011.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems