月に一回学習進捗報告をGmailで送信するプロジェクト【 ASTERIA WarpとGmailの連携】 その④

今回はGmailSQLCallコンポーネントを利用して学習進捗報告をメールで送信するフローをご紹介します。

ASTERIA WarpGoogleSheetsの連携】
 
事前準備とGoogle Sheetsコネクション作成

ASTERIA WarpGmailの連携】
 事前準備とGmailコネクション作成

ASTERIA WarpGoogleSheetsの連携】
 Google Sheets Getを利用して、各シートの進捗内容を取得

ASTERIA WarpGmailの連携】 ← 今回紹介
 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

SubFlow_Gmail送信フロー

FileListコンポーネントで前回フローで作成したpdfファイル一覧を取得する

「対象フォルダー」プロパティに作成したフォルダー名を設定する

 ※このフローでは「1016進捗」を設定した

 [1016進捗]配下には[学生名.pdf]のようなファイルが複数存在する

FileListコンポーネントの内容

FileGetコンポーネントでメールリスト一覧が記載されているファイルを読込

 「ファイルパス」プロパティに読み込みたい対象のファイルのパスを設定

  メールリストファイルには以下のような内容が記載されている

FileGetコンポーネント内容

・1つ目のMapperコンポーネント(FileList直後)でFileNameFilePathを取得

 FileNameExtractStringを利用して「.pdf]前だけを取得

 ※Aさん.pdfAさん

1つ目のMapperコンポーネント内容

2つ目のMapperコンポーネント(FileGet直後)で「mail_list.csv」から読み込んだフィールド一覧をマッピングする

2つ目のMapperコンポーネント内容

Record Joinコンポーネントで入力キーと出力キーを設定する

 入力キーに設定された内容によりレコードをジョインさせる

 このフローでは入力キー1にはMapper1.FileNameと入力キー2にはMapper2.学生名が設定されている

 設定によりFileNameと学生名が一致するレコードがジョインされる

Record Joinコンポーネント内容

3つ名のMapperコンポーネントでRecord Joinから出力フィールドをフロー変数にマッピングする

 FileNameFilePath,学生名、メール、親名等

3つ目のMapperコンポーネント内容

Velocityコンポーネントで本文を作成する

 各学生により文書が異なるので、直前のMapperでフロー変数にマッピングされた学生名、親名を使って動的に本文を作成する

 Velocityコンポーネントの$flow.get(“変数名“)関数でフロー変数の値を取得しています。

Velocityコンポーネント内容

・4つ目のMapperコンポーネントでメール送信必要な情報をSQLパラメータにマッピングする

 件名はこのMapperコンポーネントで作成しています。〇月進捗報告ご送付

 〇の部分は動的に作成される

4つ目のMapperコンポーネント内容

GmailSQLCallコンポーネントでストアド実行によりメール送信を行う

 ASTERIA Warpではストアドプロシージャを{call プロシージャ名}で呼び出す

 SQL文は以下ように設定されいる

 {call SendMailMessage(?Subject?,?To?,NULL,NULL,NULL,?Content?,?AttachmentPath?)}

 NULLFrom(送信元)、CCBCCの値を指す
 ※省略したい場合はNULLを設定し、そうでない場合はご自身の都合により設定をしてください。

 すべて設定をしたい場合↓

 {call SendMailMessage(?To?,?From?,?Subject?,?CC?,?BCC?,?Content?,?AttachmentPath?)}

GmailSQLCallコンポーネント内容

※親フロー「GoogleSheets進捗取得_PDF生成Flow」を実行すると以下のようにメールが送信される

Aさんの親に送信されるメール内容
Bさんの親に送信されるメール内容
Cさんの親に送信されるメール内容