在庫が発注点を下回ったらアラートを通知

220‐01 |通知| 活用編

このサーバーサイド処理はサーバーサイド処理の活用シナリオにある「在庫が発注点を下回ったらTeamsのアラートを通知」の具体的な作成方法を解説したものです。

処理を定期実行することで、「在庫管理」テーブルのデータから在庫数を定期監視し、在庫数が発注点を下回ると、その旨を通知するアラートを自動的に送信します。
上記のシナリオではアラートの通知先をTeamsに指定していますが、Teamsとの連携はプラグインが必要となります。そのため、プロジェクトファイルにおいては、アラートの通知先をTeamsではなくメール送信に変更しています。
ここでは、メール送信・Teamsメッセージ送信の両方の実装手順を記載しています。

プロジェクトファイルS220-01_alert-notification_b.fgcp
S220-01_alert-notification_a.fgcp(実装済みプロジェクトファイル)

定期実行処理の作成

プロジェクトを開き、リボンの「作成」メニューから「スケジュールタスク」を選択し「スケジュールタスクマネージャー」を表示します。
「全般」タブの名前欄に「在庫が発注点を下回ったらアラートを通知」と入力します。

トリガーの設定

トリガータブを開き、0時から12時間置きに実行されるトリガーを作成します。

  • 設定で「毎時」を選択
  • 「間隔」を「12.000時間」に設定
  • 「開始」の時刻を「00:00:00」に設定
動作確認のためのスケジュール設定

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

処理コマンドの作成

顧在庫管理テーブルの在庫数フィールドの値と発注点フィールドの値を比較し、在庫数が発注点を下回った場合にアラートを通知するための処理を作成します。
コマンドタブを開き、「変数の設定」コマンドを追加します。
対処となる在庫のデータを取得するための変数設定を以下の通りに設定します。

  • 「変数名」を「対象在庫」と入力
  • 「変数値」で「データベースのテーブルを参照」を選択
    「対象テーブル」で「在庫管理」を選択
  • 「変数値」の選択タブで「複数レコード」を選択
    「フィールドの追加」ボタンを押下し以下の3項目を追加
    • 「フィールド」に「[在庫数]」を選択
      「変数名」に「在庫数」と入力
    • 「フィールド」に「[発注点]」を選択
      「変数名」に「発注点」と入力
    • 「フィールド」に「[商品名]」を選択
      「変数名」に「商品名」と入力

「繰り返し」コマンドを追加し、以下の通りに設定します。

  • 「繰り返し回数、または繰り返し配列」に「変数の設定」コマンドで設定した「対象在庫」を選択
繰り返し配列オブジェクト名

繰り返しオブジェクト名を使用することで、繰り返し配列における現在のオブジェクトを取得することができます。
「繰り返し配列オブジェクト名」のデフォルトの名称は「Item」です。この名称は任意に変更が可能です。
上図の例では、変数の設定コマンドで設定済みである在庫管理の3つのフィールドの値を繰り返し配列として設定しています。後述の条件分岐等のコマンドでは、「=Item.在庫数」や「=Item.発注点」といった形で現在の在庫数の値や発注点の値を取得し使用しています。

次に、アラートを通知する対象となるデータかどうかを判定するためのコマンドを追加します。
「繰り返し」コマンドの子コマンドに「条件分岐」コマンドを追加し、その子コマンドのパラメーター「If [条件式]」部分を以下の通りに設定します。

  • 「変数」に「=Item.在庫数」、「条件」に「<=(以下)」、「値」に「=Item.発注点」を設定

アラート通知処理の作成

「定期実行処理の作成」で作成した、「条件分岐」コマンドの在庫数≦発注点という条件設定に当てはまった際に動作するアラート通知処理のためのコマンドを作成します。

お使いのツールによって実装の手順が異なります。
メールで通知を送信する場合は「メール送信コマンドの実装」を、Teamsメッセージで通知を送信する場合は「Teamsメッセージ送信コマンドの実装」をそれぞれ参照してください。

メール送信コマンドの実装

左側のツリーの「条件分岐」の子コマンドで、先ほど設定した「If =Item.在庫数 <=(以下) =Item.発注点」の子コマンドに「メール送信」コマンドを追加し、以下の設定を行います。

  • 「差出人:」に任意のメール送信者となるメールアドレスを入力
  • 「宛先:」に任意のメール受信者となるメールアドレスを入力
  • 「件名」に「在庫不足」と入力
  • 「本文:」の横の「本文に数式を使用する」にチェック
    入力欄に「=Item.商品名&”の在庫数が発注点を下回っています。”」と入力
メールサーバー(SMTP送信サーバー)の設定

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

Teamsメッセージ送信コマンドの実装(※要プラグイン)

左側のツリーの「条件分岐」の子コマンドで、先ほど設定した「If =Item.在庫数 <=(以下) =Item.発注点」の子コマンドに、「Teamsメッセージ送信」コマンドを追加し、以下の設定を行います。

  • 「着信WebフックのURL」に構成したWebhookのURLを入力
  • 「タイトル」に「在庫不足」と入力
  • 「本文」に「=Item.商品名&”の在庫数が発注点を下回っています。”」と入力
WebhookのURL

Teamsメッセージ送信コマンドを利用するには、プラグインのインストールの他に、あらかじめWebhookのURLの構成を完了しておく必要があります。詳細は、下記のページを参考にしてください。
>Teamsメッセージ送信コマンド(Forguncyヘルプ)

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

「在庫管理」ページを開きます。
ページには「在庫管理」テーブルをデータ連結したリストビューが配置してあります。
また、リストビューの各行には、入庫処理および出庫処理を行うための「入庫」ボタンと「出庫」ボタンが配置されています。

結果を確認

プロジェクトをデバッグ実行し動作を確認します。
スケジュールタスクの実行後、在庫が不足しているレコードについて、自身で設定した通知先にアラートが送信されていることを確認できます。

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

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

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

CTR IMG