AppSheetにはオートメーションという機能があります。この機能を使って、入出庫履歴の記録と数量ゼロの在庫リスト削除を実行してみたいと思います。
入出庫履歴の記録や数量ゼロの在庫リスト削除については、ワークフローとアクションの機能を使って同じことができていますが、ここでは、ワークフローをオートメーションのボットに置き換える形になります。実際に何をさせるかを定義するアクションについては、同じものを使います。
なお、AppSheetではワークフローをオートメーションに統合されていきますが、ワークフローを使った入出庫履歴の記録については、こちらの記事もご参照ください。
【AppSheetで在庫管理】ワークフローとアクションで入出庫履歴を記録
AppSheetで在庫管理、入出庫履歴も記録する。ワークフローとアクションを使って在庫管理アプリに機能を追加します。
オートメーションとはどんな機能?
オートメーション機能のまとめについては、AppSheetのヘルプセンターで見ることができますが、一般的なビジネスプロセスとドキュメントベースのワークフローは自動化すると・・・これを見ても具体的にAppSheetでどのような機能が使えそうなのかはよくわかりません・・・
しかし、実際にオートメーションを見てみると、「条件分岐などのプロセスを定義し、それに応じたタスクを実行させる」機能であることがわかります。
ワークフローとの大きな違いは、複数の処理を連続して実行できることです。あるタスクを実行した後、次のタスクを実行することができます。また、実行の順番を決めることができます。同じ実行条件のワークフローがある場合、実行の順番はAppSheetが自動的に決めますが、アプリの意図した順番になるとは限らず、想定しない挙動になることがあります。オートメーションでは、きちんと順番通りに実行できるので、想定外の動きが少なくなると思われます。
オートメーションのイメージとして、今回作るプロセスの流れは以下の通りです。
これをオートメーションのボット、イベント、ステップ、ブランチ、タスクの機能を使って構築していきます。
ボット
ボットはプロセスフローそのものです。上記のプロセスフローの全体を指します。ボットの中に、イベントとイベント発生時に起動するタスクが入ります。なお、AppSheetではボットを作成するときに、自動的にいくつかのパターンを提案してくれます。AIが作ってくれるのでしょうか、考えを先読みされているようでちょっと怖いですね・・・
イベント
イベントは、プロセスを実行するタイミングを指定するものです。テーブルへの新規追加や変更、毎日何時といった繰り返しのタイミングなども指定することができます。イベントはプロセスの出発点ですので、正しく定義する必要があります。
ステップ
イベントが発生したとき、次に起こるアクションの種類を指定します。アクションには、
- タスクの実行
- 条件分岐
- 条件充足待ち
- 他のプロセスの呼び出し
- 値を返す
ブランチ
ブランチ(枝、分岐)はステップの一つですが、今回のプロセスでも使うものです。条件を満たせば指定したステップに進み、満たさない場合は違うステップ(省略も可能)に進みます。条件は数式で設定され、結果が数式を満たしているか(YES)、満たしていないか(NO)で分岐します。
タスク
条件を満たした際に実行されることで、実質的にはアクションと同じです。オートメーションでも、実行するタスクとして既存のアクションを選択することができます。今回もすでに作ってあるアクションをそのまま使うことにします。
オートメーションでプロセスを作成する
前置きが長くなりましたが、オートメーションを使って、入出庫履歴を記録するプロセスを作ることにします。プロセスのイメージは上記の通りですが、
- (イベント)在庫テーブルの情報が更新されたら(入出庫があったら)
- (タスク)入出庫履歴を記録し
- (ブランチ)在庫数量がゼロになったら
- (タスク)YESなら在庫テーブルから在庫情報を削除
- NOからタスクなし
- おわり
ボットの作成と設定
まずは、箱となるボットを作成します。AutomationメニューからBotsタブでボットのページを開き、New Botボタンを押して新しいボットを作成します。なお、この画面でオートメーションの各機能の関係を確認する図も表示されます。
ボタンを押すと、AppSheetがボットのプロトタイプをいくつか提案してくれます。目的にもっとも近そうなものを選んでボットを作り、詳細を改修することにします。ここでは、対象テーブルがプロセスと一致していることが重要ポイントです。違うテーブルのボットを選ぶと、後続プロセスやタスクが対象テーブルと紐つかなくなり、設定できなくなる可能性があります。
もちろん、自分で最初から設定することも可能です。
すぐにボットができましたが、これではデータが削除された時のプロセスを定義しているので、詳細を変更します。イベントボタンを押し詳細設定画面を表示、「Data change type」欄でイベント発生となるデータ変更のトリガー種類を設定します。ここでは「ALL_CHANGES」つまりテーブルに対するすべての変更をトリガーとします。
このボットでは、イベントとして、Inventory Listテーブルのデータが変更された時(新規追加・変更・削除)にプロセスが起動する設定になりました。
プロセスの設定
プロセスも、このままではSMSの発信になっているので、入出庫履歴を記録するタスクに変更します。プロセスのボタンを押すと、右側に詳細設定画面が現れます。
元々のタスクはSMSの発信になっていますが、「Task to run」で入出庫履歴記録のタスクを選びます。なお、タスクリストは、すでに設定されているアクションをもとにAppSheetが自動生成しているのではないかと思います。
入出庫履歴タスクを選ぶと、「Action to run」欄に、入出庫履歴のアクションが自動設定されました。自分で再設定することもできますが、あまりに便利でびっくりしますね。
条件分岐を入れる
次は、在庫数量がゼロかどうかの判定をする条件分岐を入れます。「Add a step」ボタンを押して次のステップを作ります。
ここでもAppSheetからステップの提案がありますが、今回は手動で新しいステップを設定しますので、「Create a custom step」を押します。「New step」ボタンが出てきますので、押して詳細設定に進みます。
詳細設定では、タスクの種類で「Branch on a condition」を選択、Conditionに条件判定の数式を入力します。数量(Inventory ListテーブルのQuantity列)がゼロかどうかを判定しますので、
[Quantity]=0
が数式になります。
条件分岐先のタスクを設定
最後に、条件分岐がYESの場合のタスクを設定します。YESの下にあるプラスボタンを押すと、次のステップを設定することができます。
AppSheetの提案に従い、Deleteを選びます。詳細設定することが可能ですが、ここでは初期設定どおりにします。
SAVEボタンを押す
これですべての設定が完了しました。最後にSAVEボタンを押すのを忘れずに。
ワークフローの無効化
ワークフローをボットに置き換える場合、既存のワークフローの動きを停止する必要があります。
BehaviorメニューのWorkflowsタブでワークフローを表示し、右上のDisableボタンを押すと、ワークフローの機能を無効化することができます。
以上でオートメーションによるイベント、プロセスとタスクの設定は完了です。これらの組み合わせにより、さらに柔軟なアクションをアプリに持たせることができるようになりそうです。それを活かすアイディアを考えるのが大変ですね。
実行
実際にアプリで実行してみました。想定どおり、在庫リストの数量が変化するとボットが起動し入出庫履歴の記録が行われます。皆さんもぜひ使ってみてください。
なお、オートメーションには、ボットのテスト機能があります。本番環境で実施する前に、実行テストをできるのですが、こちらについても後ほど使ってみたいと思います。
シリーズ目次
素人がノーコードで在庫管理アプリを簡単に作る・・・実際に作ってみるとどうなるのか?AppSheetを使って食料品の在庫管理アプリを作ってみました。バーコードの読み取り、入庫、出庫の動きをアプリで作りながら、ポイントや気づきを中心に触れてみました。素人ですので、書いてあるよりも良い方法もあるかもしれませんが、AppSheetからアプリを使い始めるまでの流れは一通り説明しています。実際の開発時間は、夕食後の時間を使って一週間程度です。さらに続編として、入出庫履歴の記録と在庫データの表示も追加しています。
在庫管理アプリ構築編
その2:AppSheetの導入とテーブルの設定
その3:アプリの表示をカスタマイズする
その4:数式と関数のフィルターでスライスを作ってデータを抽出する
その5:データを抽出、そのバーコードありますか?
その6:数式で分岐を設定する
その7:LINKTOFORM関数を使ってデータも引き渡し
その8:他のフォームに遷移する
その9:データを自動消去する
その10:デプロイしてみる
その11:おわりに
0 件のコメント:
コメントを投稿