Talend ファイルに定義された宛先にメールを送信する(tContextLoad)

外部のファイルに定義された内容に応じて処理を実行するジョブを作成してみます。例えば、 データベースの接続先を本番環境と開発環境を切り替える為、接続先を外部ファイルに定義するといった使い方を想定します。

ここでは、簡単な例としてメールの送り先を外部ファイルに定義し、ファイルの内容を変更することで メールの送信先を切り替えれるようジョブを作成してみます。

ポイントは、tContextLoadコンポーネントを使用してコンテキスト変数を使うところかな。

ファイルからコンテキスト変数へ値をセット

最初にメールの送信先を登録したファイルを作成します。コンテキスト変数へ取り込むため、キーと値の セットで次のように作成します。

送信先定義ファイル

区切り文字を「;」として、キーを「TO」、値に送り先のメールアドレスを指定します。

次に「tFileInputDelimited」と「tContextLoad」コンポーネント配置します。

コンポーネントの配置

「tFileInputDelimited」で定義ファイルを読み込みコンテキスト変数へ値をセットします。

「tFileInputDelimited」をダブルクリックし、コンポーネントタブをアクティブにします。 「ファイル名/ストリーム」に送信先を定義したファイルを指定します。「フィールド区切り記号」は デフォルトの「;」にしておきます。

tFileInputDelimitedコンポーネントの設定

「tFileInputDelimited」を右クリックし、ポップアップメニューから[ロウ]-[メイン]を選択して 「tFileInputDelimited」と「tContextLoad」を繋ぎます。

コンテキスト変数セットジョブ

「tContextLoad」をダブルクリックし、コンポーネントタブをアクティブにします。

「スキーマ編集」のボタンをクリックし、スキーマ編集ダイアログを表示します。

tContextLoadの設定

「tContextLoad」には、keyとvalueの2つの項目が定義されていますので入力側も同様に定義します。

左向きの矢印ボタンをクリックしカラムを出力スキーマから入力スキーマにコピーします。

スキーマ編集

ここまでで、ファイルからコンテキスト変数へ値をセットする準備ができました。

コンテキスト変数の宛先へメールを送信する

「tSendMail」を選択し、ジョブビューへコンポーネントを配置します。

tSendMailの配置

コンテキスト変数への値セットジョブが成功するとメールの送信先が確定するので、 「tFileInputDelimited」を右クリックし、ポップアップメニューから[トリガ]-[サブジョブがOKの場合]を選択し、 「tFileInputDelimited」と「tSendMail」を繋ぎます。

トリガの設定

ジョブビュー上の各コンポーネントは、次のように繋がれているのでサブジョブが完了後 メール送信されるよう「tSendMail」コンポーネントの設定を行っていきます。

今回のジョブビュー

ジョブビュー上の「tSendMail」コンポーネントを選択し、コンポーネントの設定を行っていきます。

宛先にある初期値を削除した後、[F5]キーを押しユーザ定義のコンテキストパラメータを定義します。

コンテキスト変数の設定

名前に定義ファイルのキー名として定義した「TO」を指定し、タイプを「String」に設定します。

コンテキスト変数の設定

この設定により、コンテキストに変数が作成されキーを基に値がセットされるようになります。

コンテキスト

後は「差出人」、「題名」、「メッセージ」などを設定することで今回のジョブは完成となります。

ジョブを実行すると、ファイルに定義した宛先へメールが送信されます。