在庫管理アプリを作りながら、 AppSheet (アップシート)の使い方を学びましょう。
前回(第5回)はFormat Rulesで文字の書式設定をやってみました。
今回は、Automationでワークフローの自動化をやってみます。
商品の在庫量が発注点の数量以下になった時に、自動でアラートメールを送信します。
目次
1. AppSheet Automationでワークフローを自動化する
Automationとは、
- アプリ上でのデータ変更(追加、更新、削除)
- スケジュール(毎日定時、毎週○曜、毎月○日)
をトリガとして、決められた手順でワークフローを実行する機能です。
Automationの設定は以下の手順で行います。
- Bots(ボット):実行するワークフローを定義します。
- Event(イベント):プロセスを実行するトリガを設定します。
- Process(プロセス):ステップの実行手順を定義します。
- Step(ステップ):実行するタスクやアクションを設定します。
今回のケースでは、以下のようなAutomationを設定します。
2. 「Send an email」でメール送信する
Automationを使用して、発注点アラートメールを送信してみましょう。
在庫管理アプリでは、在庫量が発注点の数量以下になった時にアラートメールを送信します。
アプリが「Not deployed」(デプロイしていない、プロトタイプ)の状態の時、すべてのメールはアプリオーナー(自分)に送信されます。任意のアドレスにメール送信するためには、有料プラン契約後、アプリをデプロイ(Deployed)する必要があります。
1. ボットを作成する
はじめに、ボットを作成します。
左側メニュー「Automation」をクリックします。
Botsナビゲーションパネルの「+」ボタン(Create a new bot)をクリックします。
「Create a new bot」ボタンをクリックしてBotを作成します。
Botsナビゲーションパネルに「New Bot」が追加されます。
ボットの名前を付けます。
右端にある3点ドットアイコンをクリックして「Rename」をクリックします。
ボットの名前を「発注点アラートメール送信」に変更します。
2. イベントを設定する
続けて、イベントを設定します。
Automationでは、イベントで設定したトリガが発生した時に、後に続くプロセスを実行します。
「発注点アラートメール送信」ボットは、
- 入出庫履歴テーブルにデータを追加または更新した時に
- 商品の在庫量が発注点の数量以下になった時
をイベントトリガにします。
「Configure event」ボタンをクリックします。
Event nameを「入出庫履歴を追加または更新」にします。
エディタ画面右側にある Settings でイベントトリガを設定します。
はじめに、Event TypeとTableを以下のように設定します。
- Event Type
- Data Change
- Adds and updates
- Table:入出庫履歴
以上で、「入出庫履歴テーブルにデータを追加または更新した時」が設定できました。
イベントトリガに条件を設定します。
今回のケースでは「商品の在庫量が発注点の数量以下になった時」がプロセスを実行する条件になります。
Conditionの入力フィールドをクリックして、Expression Assitantを開きます。
Expression Assitantに以下の式をコピペします。
1 |
[商品].[在庫量] <= [商品].[発注点] |
入出庫履歴テーブルの「商品」列のType(データ型)には「Ref」を設定しています。
「商品」(Ref型)列を使用して、商品テーブル(Source table)の「在庫量」と「発注点」の数量を取得して、比較しています。
「在庫量」が「発注点」の数量以下(<=)の時に、プロセスを実行します。
Expression Assitantにコピペして「Save」します。
3. プロセスにステップを追加する
プロセスにメール送信ステップを追加します。
「Add a step」ボタンをクリックして、Stepを追加します。
Step nameを「発注点アラートメール送信」にします。
「Run a task」を選択します。
Settingsで「Send an email」を選択します。
続けて以下のように設定します。
- Email Type:Custom template
- Table name:入出庫履歴
- Email Subject:発注依頼
Toは、アラートメールを受信するメールアドレスを設定します。
アプリが「Not deployed」の時は、すべてのメールはアプリオーナー(自分)に送信されるので、ここでは省略します。
最後に、Email Bodyに以下の式をコピペします。
1 2 3 4 5 6 |
以下の商品について発注をお願いします。 商品:<<[商品].[商品名]>> JANコード:<<[商品].[JANコード]>> 発注点:<<[商品].[発注点]>> 在庫量:<<[商品].[在庫量]>> |
式は、タグを使って列の値を差し込みしています。
[列名]をタグ<<>>で囲むと、列の値が差し込みされます。
以上で、Automationの設定は完了です。
右上の「Save」ボタンをクリックして、設定を保存します。
3. 発注点アラートメールを送信してみる。
発注点アラートメールが送信できるかテストしてみましょう。
Settingsの上にある「Mobile」アイコンをクリックして、プレビューを表示します。
タブメニューで「入出庫履歴」を選択して、「+」(Add)ボタンをクリックします。
商品で「コカ・コーラ 500ml ペットボトル」を選んで、操作内容を「出庫」にします。
サンプルデータでは、
- 在庫量:10
- 発注点:5
に設定しています。出庫数量を7にして、「Save」してみましょう。
前回(第5回)で設定したFormat Ruelsにより、商品名と在庫量が赤字になります。
アラートメールが送信されたか確認してみましょう。
「発注依頼」という件名のメールが届いたでしょうか?
メール本文を確認してみましょう。
商品、発注点、在庫量に間違いがないか確認してください。
以上、Automationの「Send an email」タスクを使って、メール送信を自動化しました。
Automationにはメール送信以外にも、ワークフローを自動化するタスクが用意されています。
その他のタスクについては、以下のブログ記事で使い方と活用事例を解説しているので、是非参考にしてください。
次回(第7回)は、CSV形式でテーブルのデータをエクスポートしてみます。
在庫管理アプリでは、商品別の在庫量をVirtual Columnで計算しているので、データソース(Googleスレッドシート)には在庫量が記録されていません。
商品別在庫量を一覧したり、分析したりする場合、CSV形式でエクスポートすると、Virtual Columnを含めることができます。