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

240‐01 タスク管理| 活用編

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

処理を定期実行することで、「タスク管理」テーブルに登録されているタスクのうち、状態が未完了かつ期限が処理実行日から3日後以内であるタスクの担当者に自動でメールが送信されます。

プロジェクトファイルS240-01_notification-email_b.fgcp
S240-01_notification-email_a.fgcp(実装済みプロジェクトファイル)

定期実行処理の作成

プロジェクトを開き、リボンの「作成」メニューから「スケジュールタスク」を選択し「スケジュールタスクの設定」を表示します。
新規に「期限が近いタスクのステータスをメールで通知」という名前でスケジュールタスクを作成します。

トリガーの設定

トリガータブを開き、毎日23時に1回実行されるトリガーを作成します。

  • 設定で「毎日」を選択
  • 「間隔」を「1日」に設定
  • 「開始」の時刻を「23:00:00」に設定
スケジュールタスクのテスト実行

上記設定では毎日23時ににスケジュールタスクの処理が行われます。
テスト結果をすぐに確認する場合、「テスト実行」ボタンを押下してください。

処理コマンドの作成

タスク管理テーブルのデータを走査し、メール送信を行う処理を作成します。
コマンドタブを開き、「変数の設定」コマンドを追加します。
タスクの期限が処理実行日から3日後以内、かつ未完了状態であるレコードを抽出するため、以下の通りに設定します。

  • 「変数名」に「メール送信対象レコード」と入力
  • 「変数値」で「データベースのテーブルを参照」を選択
    「対象テーブル」で「タスク管理」を選択
  • 「変数値」の選択タブで「複数レコード」を選択
    「フィールドの追加」ボタンを押下し以下の4項目を追加
    • 「フィールド」に「[タスク名]」を選択
      「変数名」に「タスク名」と入力
    • 「フィールド」に「[期限]」を選択
      「変数名」に「期限」と入力
    • 「フィールド」に「[担当者].氏名」を選択
      「変数名」に「担当者」と入力
    • 「フィールド」に「[担当者].メールアドレス」を選択
      「変数名」に「メールアドレス」と入力
ユーザーアカウント型のフィールド

テーブルのフィールドが「ユーザーアカウント」型に設定されている項目は、ナビゲーションウィンドウ内に「氏名」「メールアドレス」「ロール」などのユーザーアカウントに関する詳細な項目が表示されます。
これにより、氏名やメールアドレスのフィールドを個別に用意することなくそれらのデータを利用することが可能です。
上記の例では、「フィールド」に「[担当者].氏名」「[担当者].メールアドレス」といった形で、ユーザーアカウント型のフィールド「担当者」の値に一致するユーザーアカウントに紐づいた詳細項目の値を利用しています。
ユーザーアカウントに関する詳細な項目を利用するためには、事前にユーザーアカウントの登録が必要です。ユーザーアカウントの管理については、下記のページを参照してください。
>ユーザーの管理(Forguncyヘルプ)

  • 「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
    • 「フィールド」に「[期限]」を設定
    • 「条件」に「<=(以下)」を設定
    • 「値」に「=TODAY()+3」と入力
  • 再度「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
    • 「And/Or」で「And」を選択
    • 「フィールド」に「[完了]」を設定
    • 「条件」に「=(等しい)」を設定
    • 「値」に「=0」と入力
現在日時の取得

クエリーの値にはExcelと同じ関数を指定した式を使用することができます。
上述の「=TODAY()+3」では、 Excel と同様に現在の日付を取得し、それに+3することで3日後の日付を取得しています。利用可能な関数の一覧は、下記のページを参照してください。
>関数一覧(Forguncyヘルプ)

メール送信処理は、上記の処理でタスク管理テーブルから抽出したレコードの分だけ繰り返し行います。
「繰り返し」コマンドを追加し、以下の通りに設定します。

  • 「指定した回数分だけ繰り返し処理を行う」に「変数の設定」コマンドで設定した「メール送信対象レコード」を選択

メール送信を行う処理を実装します。
上記「繰り返し」の子コマンドに「メール送信」コマンドを追加し、以下のように設定します。

  • 「差出人:」に任意のメール送信者となるメールアドレスを入力
  • 「宛先:」に「Item.メールアドレス」を指定
  • 「件名」に「作業期限通知」と入力
  • 「本文:」の横の「本文に数式を使用する」にチェック
    入力欄に「=Item.タスク名&”の期限は”&TEXT(Item.期限,”m月d日”)&”です。”」と入力
メールサーバー(SMTP送信サーバー)の設定

メール送信コマンドを使用する際には、事前にメールサーバー(SMTP送信サーバー)の設定が必要です。
詳細は、下記のページを参考にしてください。
>メール送信サーバーの設定(Forguncyヘルプ)

結果確認用のページの確認

「タスク照会」ページを開きます。
ページには「タスク管理」テーブルをデータ連結したリストビューが配置してあります。
このリストビューの「完了」列は非表示に設定されており、代わりに「完了」列の値が1であれば「完了」、それ以外は「未完了」と表示する「状態」列が追加されています。

結果を確認

プロジェクトをデバッグ実行し動作を確認します。
スケジュールタスクの実行後、状態が未完了かつ期限が処理実行日から3日後以内であるタスクの担当者に自動でメールが送信されていることを確認できます。

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

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

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

CTR IMG