「会議室利用予約をリスト化&会議室利用予約情報報告プロジェクト」【 ASTERIA WarpとGoogle Calendar連携】その②

今回は「会議室利用予約をリスト化&会議室利用予約報告プロジェクト」の「GoogleCalendarGetコンポーネントでデータ取得、RDBDiffコンポーネントでレコードを比較する」についてご紹介します。

①事前準備とGoogle Calendarコネクション作成 

②GoogleCalendarGetコンポーネントでデータ取得、RDBDiffコンポーネントでレコードを比較する←今回紹介

*********************

②GoogleCalendarGetコンポーネントでデータ取得、RDBDiffコンポーネントでレコードを比較する

フローの流れ

各部署共有の会議室利用予約のGoogleカレンダーがございます。

共有のGoogleカレンダーに新規予約、予約内容更新、予約削除など会議室利用予約内容に変化がありましたら、この内容をChatWorkへ報告します。

フローの詳細説明

■Mapper1の内容

NowDateCalcを使用して、現在より2時間前の日付を取得

SQLパラメーターのNOWへ値を代入

Mapper1の内容

■GoogleCalendarGetの内容

GoogleCalendarAllCalendarsから会議室利用予約リストを取得

条件としては、EndDateTime項目に条件を付けて、現在より2時間前以降のリストを取得

GoogleCalendarGETの内容

■Mapper2の内容

GoogleCalendarから取得した会議室利用予約リストをマッピングする

Mapper2の内容

■RDBDiffの内容

RDBDiffで入力されたレコードとRDBのテーブルに存在する全レコードを比較し、差分のレコードを出力する

差分があったら、RDBのテーブルに差分レコード内容を更新する

RDBDiffの内容

■Converterの内容

Recordストリーム型からCSVストリームへ変換する

■Mapper3の内容

RDBDiffから出力した差分レコードをマッピングする

Mapper3の内容

■BranchStartの内容

差分のレコード件数が存在するかを確認し、条件分岐する

$record.レコード件数=0

■RDBGETの内容

最新の会議室利用予約リストを取得

RDBGETの内容

■Mapper4の内容

RDBGETの出力データをExcelOutputへマッピングする

Mapper4の内容

■ExcelOutputの内容

用意されたテンプレートを使用し、Excelビルダーでレコードの追加、登録

ExcelOutputの内容

■FilePutの内容

ExcelBuilderで使用したテンプレートファイルを更新して使用しないため、FilePutのファイルパスに出力先のパスを記入する

FilePutの内容

■Mapper5の内容

差分のレコードが存在する場合、差分レコード内容をマッピングする

Mapper5の内容

■Velocityの内容

ChatWorkへ送信するためのメッセージ作成と差分レコード内容をforeachでループして取得

Velocityの内容

■Mapper6の内容

ChatWorkへ送信するためのメッセージとアップロードファイルをマッピングする

Mapper6の内容

■RESTの内容

ChatWorkapiを利用して対象roomへメッセージとファイルを送信する

基本のURLプロパティにファイルとメッセージを同時送信したいので、いかのAPIを使用
https://api.chatwork.com/v2/rooms/{room_id}/files room_idには対象のidを記入

Content-Typeにはmultipart/form-data、HTTPメソッドにはPOSTを選択

X-ChatWorkTokenには対象のAPIトークンを記入

アップロードファイルにはパラメーター名にfile、ファイルパスには対象のパス、ファイル名には対象のファイル名

RESTの内容

■フローを実行する差分レコード件数が0であれば、フローを終了し
差分のレコードが存在する場合以下ように差分内容とリスト一覧が記載されているExcelファイルがChatwork へ送信されます。

Insertは新規予約
Updateは既存の予約内容を更新
Deleteは既存の予約内容を削除

実行結果
MeetingList.xlsxの内容