1

Pentaho の Kettle ツールを使用して、ディレクトリからすべての XML ファイルを取得するための Get File Names ステップから始まる変換をセットアップしました。ステップは次のように構成されます。

File/Directory: "c:\DataFolder"
Wildcard (RegExp): ".*xml"

これはうまく機能し、「DataFolder」フォルダー内のすべての XML ファイルを取得できます。

ただし、DataFolder が存在しない場合 (他の誰かが削除したため)、次のエラーが発生します。

2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) : org.apache.commons.vfs.FileNotFolderException: Could not list the contents of "file:///c:/DataFolder" because it is not a folder.
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at org.apache.commons.vfs.provider.AbstractFileObject.getChildren(Unknown Source)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at org.pentaho.di.core.fileinput.FileInputList.createFileList(FileInputList.java:268)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at org.pentaho.di.trans.steps.getfilenames.GetFileNamesMeta.getFileList(GetFileNamesMeta.java:690)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at org.pentaho.di.trans.steps.getfilenames.GetFileNames.init(GetFileNames.java:336)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:62)
2012/11/30 12:15:27 - FileInputList - ERROR (version 4.3.0-stable, build 16786 from 2012-04-24 14.11.32 by buildguy) :  at java.lang.Thread.run(Unknown Source)

要するに: FileNotFolderException: 「file:///c:/DataFolder」はフォルダーではないため、内容を一覧表示できませんでした。

フォルダが存在しない場合は、単純に変換を停止して続行したくありません。

File Exists ステップと Filter Rows ステップを組み合わせて条件付きを提供しようとしましたが、うまくいきませんでした。Hello World チュートリアルでは、フォルダー全体ではなく、ファイルが存在するかどうかを確認する方法を示します。

4

1 に答える 1

2

親ジョブを作成し、これをhttp://wiki.pentaho.com/display/EAI/Check+if+a+folder+is+emptyに追加し、FALSE の場合はフローを変換にリダイレクトします

または、フォルダー作成ステップジョブを試すこともできます: http://wiki.pentaho.com/display/EAI/Create+a+folder

于 2012-12-01T13:15:01.740 に答える