2017-12-05 5 views
2

次のVBスクリプトを実行して、SSISパッケージに新しいディレクトリを作成する際に問題が発生しています。次の新しいパスD:\ customers \ documents \ orders \ 20171205を作成する必要があります。単純なVBスクリプトで問題が発生する

Public Sub Main() 
    'set dir path 
    Dts.Variables("var_DirPath").Value = 
     "D:\customers\documents\orders\" + Date.Today.Year.ToString + 
     Date.Today.Month.ToString + Date.Today.Day.ToString 
    Dts.TaskResult = ScriptResults.Success 
End Sub 

スクリプトタスクエディタのReadWriteVariablesは、ユーザー:var_DirPathに設定されています。ファイルタスクは

UseDirector/Exists = True 
Operation = Create directory 
IsSourcePathAvailable = True 
Source variable = User:var_DirPath 

用に設定されている

それはデバッグ時にパッケージに解決されますが、なぜこの単純な私にはわからない:変数の値が「注文\ドキュメント\ \顧客\ D」でありますスクリプトが動作しません。

をどのような援助が認められる。

+0

何か怪しいようです。あなたが提供したコードは、@ jmcihinneyの提案とうまく一致しない場合、動作する必要があります。私にとっては、varを "D:¥customers¥documents¥orders¥2017125"に設定します。このコードが実行されていることを証明するためにパスなどを変更できますか? – GMan80013

+0

私は、Variableを式で使用する方が、スクリプトタスクを使用するよりも簡単だと思っています。 – Yahfoufi

+0

@DavidF私は答えでいくつかの提案をしましたが、 '単純なスクリプトがなぜうまくいかないのか分かりません。 .. *どのように動作していないのですか?エラーメッセージが表示されるのですか?* – Hadi

答えて

0

いくつかの提案

あなたが名前は大文字と小文字が区別されますので、変数名は、正しく入力されていることを確認する必要があります。また、日付部分を連結する代わりに Date.Now.ToString("yyyyMMdd")を使用することもできます。

Public Sub Main() 
    'set dir path 
    Dts.Variables("var_DirPath").Value = 
    "D:\customers\documents\orders\" & Date.Now.ToString("yyyyMMdd") 
    Dts.TaskResult = ScriptResults.Success 
End Sub 

またTrue

簡単な解決策には、ファイルシステムタスクDelay Validationプロパティを設定してください - ちょうどに行く、あなたが式を使用してこれを達成することができる方法によって、発現

を使用して変数リストvar_DirPathをクリックし、F4キーを押してプロパティタブを表示し、Evaluate as expressionプロパティをTrueに設定し、Expressionプロパティをクリックし、次の式を使用します。

"D:\\customers\\documents\\orders\\" + (DT_STR, 4, 1252) DATEPART("yyyy" , GETDATE()) + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("MM" , GETDATE()), 2) + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2) 
0

あなたが任意の日付のサブフォルダが表示されないだろうが、そのコードは他の問題を持っている理由は、私はよく分からない。例えば、1月11日と11月1日に生成します同じ年の同じフォルダ名です。試してください:

Dts.Variables("var_DirPath").Value = String.Format("D:\customers\documents\orders\{0:yyyyMMdd}", Date.Now) 

これは連結よりも優れており、すべての日付に対して一意のフォルダ名を保証します。

関連する問題