今回はGmailSQLCallコンポーネントを利用して学習進捗報告をメールで送信するフローをご紹介します。
①【 ASTERIA WarpとGoogleSheetsの連携】
事前準備とGoogle Sheetsコネクション作成
②【 ASTERIA WarpとGmailの連携】
事前準備とGmailコネクション作成
③【 ASTERIA WarpとGoogleSheetsの連携】
Google Sheets Getを利用して、各シートの進捗内容を取得
④【 ASTERIA WarpとGmailの連携】 ← 今回紹介
Gmailで進捗報告を送信
*****************
フロー全体の流れ
前回紹介したフローで作成されたpdfファイル一覧とメールリスト一覧のファイルを読み込んで、Record JoinコンポーネントによりpdfFileNameと学生名を入力キーに設定し、名前が一致するレコードをジョインして出力する
その後Velocityコンポーネントで本文を動的に作成し、直後Mapperコンポーネントにより本文をマッピングする
このMapperコンポーネントでは本文以外のメール送信に必要な各情報をGmailSQLCallコンポーネントのSQLパラメータにマッピングする
GmailSQLCallコンポーネントはSendMailMessageストアドプロシージャによりメールを送信する
CData Gmail RESTデータモデルのストアドプロシージャは以下のリンクにより参考してください。
https://cdn.cdata.com/help/DLJ/jp/rcmd/pg_RESTsp-sendmailmessage.htm
・FileListコンポーネントで前回フローで作成したpdfファイル一覧を取得する
「対象フォルダー」プロパティに作成したフォルダー名を設定する
※このフローでは「1016進捗」を設定した
[1016進捗]配下には[学生名.pdf]のようなファイルが複数存在する
・FileGetコンポーネントでメールリスト一覧が記載されているファイルを読込
「ファイルパス」プロパティに読み込みたい対象のファイルのパスを設定
メールリストファイルには以下のような内容が記載されている
・1つ目のMapperコンポーネント(FileList直後)でFileNameとFilePathを取得
FileNameはExtractStringを利用して「.pdf]前だけを取得
※Aさん.pdf→Aさん
・2つ目のMapperコンポーネント(FileGet直後)で「mail_list.csv」から読み込んだフィールド一覧をマッピングする
・Record Joinコンポーネントで入力キーと出力キーを設定する
入力キーに設定された内容によりレコードをジョインさせる
このフローでは入力キー1にはMapper1.FileNameと入力キー2にはMapper2.学生名が設定されている
設定によりFileNameと学生名が一致するレコードがジョインされる
・3つ名のMapperコンポーネントでRecord Joinから出力フィールドをフロー変数にマッピングする
FileName、FilePath,学生名、メール、親名等
・Velocityコンポーネントで本文を作成する
各学生により文書が異なるので、直前のMapperでフロー変数にマッピングされた学生名、親名を使って動的に本文を作成する
Velocityコンポーネントの$flow.get(“変数名“)関数でフロー変数の値を取得しています。
・4つ目のMapperコンポーネントでメール送信必要な情報をSQLパラメータにマッピングする
件名はこのMapperコンポーネントで作成しています。〇月進捗報告ご送付
〇の部分は動的に作成される
・GmailSQLCallコンポーネントでストアド実行によりメール送信を行う
ASTERIA Warpではストアドプロシージャを{call プロシージャ名}で呼び出す
SQL文は以下ように設定されいる
{call SendMailMessage(?Subject?,?To?,NULL,NULL,NULL,?Content?,?AttachmentPath?)}
NULLはFrom(送信元)、CC、BCCの値を指す
※省略したい場合はNULLを設定し、そうでない場合はご自身の都合により設定をしてください。
すべて設定をしたい場合↓
{call SendMailMessage(?To?,?From?,?Subject?,?CC?,?BCC?,?Content?,?AttachmentPath?)}
※親フロー「GoogleSheets進捗取得_PDF生成Flow」を実行すると以下のようにメールが送信される