1

この質問は、TalendOpenStudioコードに関するものです。

tSendmailコンポーネントを子ジョブとして使用します。これは、親ジョブが失敗したときに実行する必要があります(tFtpPut)。ただし、tFtpPutでは、ファイル名はファイル名マスクによってフィルタリングされます(たとえば、Ee *をマスクとして配置すると、Eedohという名前のファイルがアップロードされます)が、tSendMailではそうではありません。

tFtpPutはファイルシステムの特殊文字を使用してファイル名マスクを作成し、tSendMailはJava正規表現を使用する必要があることを理解しています。問題は(ソースコードで見たように)、List.add(String)関数を使用してファイル名を追加しているため、.add関数のパラメーターとして正規表現を使用できないことです。

したがって、正規表現に一致する名前のすべてのファイルをアップロードする方法が必要です。

ところで、ソースコードを変更しようとしましたが(フォルダ全体を繰り返し、名前が正規表現と一致するすべてのファイルを追加しようとしました)、それは役に立ちませんでした。どこかでエラーが発生し、問題を追跡できませんでした。

4

1 に答える 1

0

その問題については、コンポーネント (FTP および sendMail) の前に正規表現フィルターを作成します。

「詳細モード」の tFilterRow コンポーネントを使用すると、非常に簡単です。フィルタ条件はinputrow.filenamefield.matches("java_regexpr")です。

この外部フィルターは両方のコンポーネントで同じであり、FTP コンポーネントの特定のフィルターを使用する必要はもうありません。

于 2010-03-12T16:37:24.747 に答える