2016-07-25 29 views
0

誰かがTalendでエラーメッセージを受け取る方法を知っていますか?電子メールでTalendでエラーメッセージを送信するにはどうすればよいですか?

私はtMSSqlInput ==>tMSSqlOutputです。 (下記のスキーマ参照)。

エラーがスローされた場合は、sendindの代わりにデフォルトでメール本体に入れて送信します。

私のようなものが見つかりました:

  • globalMap.put("errorCode", input_row.message);
  • "The message is: "+(String)globalMap.get("errorCode")

をしかし、私は最初の行を配置する場所を、知りません。明らかに、それはtMSSqlOutputのどこかにあるでしょう。しかしここで?

ありがとうございます。 tmysqloutput含む

schema

+0

tmysqloutputを含むほとんどのtalendコンポーネントには、コンポーネントが失敗または成功したときに使用できるエラーメッセージ(後)があります。これらの変数の値にアクセスして、次のコンポーネントにコンポーネントを投稿します。tMysqloutput --->(OnComponentOK)----> tJava ...tJavaでは、以下の式を使用してtmysqloutputコンポーネントに何があったかを確認できます。 - System.out.println((String)globalMap.get( "tMysqlOutput_1_ERROR_MESSAGE")); – garpitmzn

答えて

2

最も才能のコンポーネントは、コンポーネントが失敗したか成功した後に利用可能であるエラーメッセージを(後)があります。これらの変数の値にアクセスして、次のコンポーネントのコンポーネントをポストします。tMysqloutput --->(OnComponentOK)----> tJava ... tJavaでは、以下の式を使用してtmysqloutputコンポーネントに何があったかを確認できます。 - System .out.println((String)globalMap.get( "tMysqlOutput_1_ERROR_MESSAGE"));

このエラーメッセージをグローバル変数に格納し、このグローバル変数をtSendEmailコンポーネントで使用することができます。 グローバル変数に値を代入するには、globalMap.out( "variableName"、value);を使用します。 この値を取得する (String)globalMap.get( "variableName")

また、アプリケーションでtLogCatcherを追加し、コンポーネントでエラー時にダイオプションを有効にすることもできます。何が起こるのか、今例外が発生すると、tLogCAtcherはメッセージとコードをキャッチし、tLogCatcherを他のコンポーネントに接続してこのエラーコードを取得し、tSendEmailのような次のコンポーネントで使用してメールを送信することができます。

+0

例外が発生した場合にのみ、エラーが出力されます。あなたの仕事のスクリーンショットを置くことができますか?また、tlogcatcherも試してください – garpitmzn

+0

こんにちは、ありがとうございます。驚くばかり。ブリリアント。しかし今、ある仕事では、同期するテーブルがたくさんありますが、各コンポーネントごとに1つのtJavaを作成する必要はありません。私はtLogCatcherを使うことを好みます。エラーが発生した場合に検出します。しかし、1つのグローバル変数にエラーメッセージを表示する方法はありますか? Merci –

+0

私は、エラーメッセージを受け取るためにrow1.message =のようなことをしました。しかし、私はそれをグローバル変数tJavaに代入することはできません。globalMap.put( "errorCode"、row1.message); 'ダンノーはなぜ機能していないのですか? –

1

"OnComponentError"リンクを使用して、すべてのコンポーネントをtRowGeneratorに参加させます。今、tRowGeneratorで、ErrorDescのような列名を作成して、環境変数にグローバル変数で三項演算子を使用してエラーメッセージを取得できます。

((文字列)globalMap.get( "tRowGenerator_1_ERROR_MESSAGE"))!= null)? "Generic SP Inputs" +((String)、globalMap.get( "tRowGenerator_1_ERROR_MESSAGE")): "(プロシージャを呼び出す)+((String)globalMap.get(" tMysqlSP_2_ERROR_MESSAGE ")): (((String)globalMap.get(" tFileDelete_1_ERROR_MESSAGE "))!= null)? "tFileDelete" +((String)をglobalMap.get( "tFileDelete_1_ERROR_MESSAGE")): ""

あなたは、コンソール上の電子メールコンポーネントまたは表示するには、このエラーの説明を送ることができます。

関連する問題