期限が近いタスクのステータスをメールで通知

サーバーサイド 活用編

本記事はサーバーサイド処理の活用シナリオにある「期限が近いタスクのステータスをメールで通知」の具体的な作成方法を解説したものです。

処理を定期実行することで、タスク管理テーブルに登録されているタスクのうち、状態が未完了かつ期限が処理実行日から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の開発スタートガイドやオンラインヘルプでは、今回使用したコマンドについてより詳しくご紹介しています。
こちらもぜひご活用ください。

>ノーコードWebアプリ開発ツール「Forguncy」

ノーコードWebアプリ開発ツール「Forguncy」

Forguncy(フォーガンシー)は複数のシステムと直接接続して参照・更新が行えるデータ管理機能と、Excel感覚でレイアウトができる画面デザイン機能を備えたノーコードWeb開発&運用プラットフォームです。基幹システムでは対応できず、仕方なくExcelやAccessで管理していた業務のサブシステム化を強力に支援します。

CTR IMG