サーバーサイド 活用編
本記事はサーバーサイド処理の活用シナリオにある「期限が近いタスクのステータスをメールで通知」の具体的な作成方法を解説したものです。
処理を定期実行することで、タスク管理テーブルに登録されているタスクのうち、状態が未完了かつ期限が処理実行日から3日後以内であるタスクの担当者に自動でメールが送信されます。
プロジェクトファイル (作成バージョン:8.0.5.0) | notification-email_before.fgcp notification-email_after.fgcp(実装済みプロジェクトファイル) |
1.プロジェクトを確認する
サンプルプロジェクトを開いてテーブルやページの確認を行います。
手順1-1.テーブルの確認
プロジェクトには既にタスク管理テーブルが用意されています。
手順1-2.ページの確認
タスク照会ページには、タスク管理テーブルをデータ連結したリストビューが配置してあります。
このリストビューの完了列は非表示に設定されており、代わりに完了列の値が1であれば「完了」、それ以外は「未完了」と表示する状態列が追加されています。
2.スケジュールタスクを作成する
指定のスケジュールに従ってレポートを自動で生成する処理を作成します。
手順2-1.スケジュールタスクの設定
リボンの[作成]から[サーバーオブジェクト]の[スケジュールタスク]を押下します。
スケジュールタスクの設定ウィンドウが開くので、[全般]タブの名前欄に「期限が近いタスクのステータスをメールで通知」と入力します。
手順2-1-1.トリガーの設定
トリガータブを開き、毎日23時に1回実行されるトリガーを作成します。
- 設定で「毎日」を選択
- 「間隔」を「1日」に設定
- 「開始」の時刻を「23:00:00」に設定
スケジュールタスクのテスト実行
上記設定では毎日23時ににスケジュールタスクの処理が行われます。
テスト結果をすぐに確認する場合、「テスト実行」ボタンを押下してください。
手順2-2.処理コマンドの作成
タスク管理テーブルのデータを走査し、メール送信を行う処理を作成します。
手順2-2-1.対象のレコードを抽出
タスクの期限が処理実行日から3日後以内、かつ未完了状態であるレコードを抽出するための変数を作成します。
コマンドタブを開き、変数の設定コマンドを追加し、以下の通りに設定します。
- 「変数名」に「メール送信対象レコード」と入力
- 「変数値」で「データベースのテーブルを参照」を選択
「対象テーブル」で「タスク管理」を選択 - 「変数値」の選択タブで「複数レコード」を選択
「フィールドの追加」ボタンを押下し以下の4項目を追加
フィールド | 変数名 |
---|---|
[タスク名] | タスク名 |
[期限] | 期限 |
[担当者].氏名 | 担当者 |
[担当者].メールアドレス | メールアドレス |
ユーザーアカウント型のフィールド
テーブルのフィールドが「ユーザーアカウント」型に設定されている項目は、ナビゲーションウィンドウ内に「氏名」「メールアドレス」「ロール」などのユーザーアカウントに関する詳細な項目が表示されます。
これにより、氏名やメールアドレスのフィールドを個別に用意することなくそれらのデータを利用することが可能です。
上記の例では、「フィールド」に「[担当者].氏名」「[担当者].メールアドレス」といった形で、ユーザーアカウント型のフィールド「担当者」の値に一致するユーザーアカウントに紐づいた詳細項目の値を利用しています。
ユーザーアカウントに関する詳細な項目を利用するためには、事前にユーザーアカウントの登録が必要です。ユーザーアカウントの管理については、下記のページを参照してください。
>ユーザーの管理(Forguncyヘルプ)
- 「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
- 「フィールド」に「[期限]」を設定
- 「条件」に「<=(以下)」を設定
- 「値」に「=TODAY()+3」と入力
- 再度「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
- 「And/Or」で「And」を選択
- 「フィールド」に「[完了]」を設定
- 「条件」に「=(等しい)」を設定
- 「値」に「=0」と入力
現在日時の取得
クエリーの値にはExcelと同じ関数を指定した式を使用することができます。
上述の「=TODAY()+3」では、 Excel と同様に現在の日付を取得し、それに+3することで3日後の日付を取得しています。利用可能な関数の一覧は、下記のページを参照してください。
>関数一覧(Forguncyヘルプ)
手順2-2-2.繰り返し処理の作成
メール送信処理は、上記の処理でタスク管理テーブルから抽出したレコードの分だけ繰り返し行います。
繰り返しコマンドを追加し、以下の通りに設定します。
- 「指定した回数分だけ繰り返し処理を行う」に「変数の設定」コマンドで設定した「メール送信対象レコード」を選択
手順2-2-3.メール送信処理の実装
メール送信を行う処理を実装します。
上記繰り返しの子コマンドにメール送信コマンドを追加し、以下のように設定します。
- 「差出人:」に任意のメール送信者となるメールアドレスを入力
- 「宛先:」に「Item.メールアドレス」を指定
- 「件名」に「作業期限通知」と入力
- 「本文:」の横の「本文に数式を使用する」にチェック
入力欄に「=Item.タスク名&”の期限は”&TEXT(Item.期限,”m月d日”)&”です。”」と入力
メールサーバー(SMTP送信サーバー)の設定
メール送信コマンドを使用する際には、事前にメールサーバー(SMTP送信サーバー)の設定が必要です。
詳細は、下記のページを参考にしてください。
>メール送信サーバーの設定(Forguncyヘルプ)
3.デバッグを実行
プロジェクトをデバッグ実行します。
手順3-1.デバッグを実行する
リボンの[ホーム]>[デバッグ]>[開始]ボタン、またはForguncy Builderの左上にある▶ボタンを押下してプロジェクトをデバッグ実行します。
作成したページがブラウザで表示されます。
スケジュールタスクの実行後、状態が未完了かつ期限が処理実行日から3日後以内であるタスクの担当者に自動でメールが送信されていることを確認できます。
Forguncyのコマンドについてもっと知る
Forguncyの開発スタートガイドやオンラインヘルプでは、今回使用したコマンドについてより詳しくご紹介しています。
こちらもぜひご活用ください。
>開発スタートガイド – 業務ロジックを実装する「コマンド」を知る