アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

【第6回】ActionとAutomationで業務を徹底的に自動化する

Featured image of the post

これまでの連載で、AppSheetのテーブル設計、Viewの作成、そしてシステムの振る舞いを設計するためのUML図作成と、アプリ開発の基礎を網羅してきました。しかし、真に価値のある業務アプリとは、単にデータを記録するだけでなく、「手作業を減らし、業務を自動化してくれる」ものです。連載第5回で作成したシーケンス図を思い出してください。ユーザーの「出庫」操作の裏側では、「入出庫履歴への書き込み」と「在庫マスタの更新」という2つの処理が連動して動く必要がありました。この連動をAppSheetで実現するのが、今回学ぶ「Action」と「Automation」です。この連載最終回では、在庫管理アプリを題材に、ボタン一つで複数の処理を実行するActionと、データの変更をトリガーにバックグラウンドで自動処理を行うAutomationを実装します。この記事を読み終える頃には、あなたはAppSheetの全工程を理解し、業務の自動化を設計・実装できる、真のAppSheet実務者となっているでしょう。


[目次を開く]

本記事でできるようになること

  • AppSheetのActionとAutomationの基本的な概念と役割を理解します。
  • Actionを組み合わせて、ボタン一つで複数のデータ操作を連動させる複合Actionを実装できます。
  • データの変更をトリガーに、メール通知などのバックグラウンド処理を自動で行うAutomation(Bot)を作成できます。
  • 連載第5回で設計したシーケンス図を、ActionとAutomationという具体的な機能に落とし込むスキルを習得します。
  • AppSheetの全工程(設計から自動化まで)を理解し、業務効率を最大化するアプリを開発できるようになります。

第1章:Actionの基本と種類

Actionとは?:ユーザー操作をトリガーにする

Actionは、ユーザーがアプリ上でボタンをタップしたり、スワイプしたりといった操作を行った際に実行される、一連の処理を定義する機能です。AppSheetアプリの「心臓部」とも言え、ユーザーの意図をシステムに伝える役割を果たします。Actionは、特定のテーブルに対して定義され、そのテーブルのレコードに対して実行されます。

データ操作系Action(Add, Delete, Set the values of some columns)

最も基本的なActionは、データの追加、削除、更新といったCRUD操作に関連するものです。

Actionの種類 概要 AppSheetでの設定
Add a new row to another table 別のテーブルに新しいレコードを追加する。 Target Tableと、追加する列の値を指定。
Delete 現在のレコードを削除する。 警告メッセージなどを設定可能。
Set the values of some columns 現在のレコードの特定の列の値を変更する。 変更したい列と、新しい値を指定する式を設定。

実体験: 私は当初、在庫数を更新する際に、Form Viewで直接ITEMSテーブルの数量列を編集させていました。しかし、これでは「いつ、誰が、どれだけ」変更したかの履歴が残りません。そこで、HISTORYテーブルにレコードを追加するActionと、ITEMSテーブルの数量を更新するActionを組み合わせる必要性に気づきました。これが複合Actionの導入のきっかけです。

第2章:複合Actionで出庫処理を自動化する

連載第5回で設計したシーケンス図の「出庫処理」は、Actionの連動によって実現されます。

シーケンス図をActionに落とし込む

シーケンス図のステップをActionに分解すると、以下のようになります。

  1. ユーザーがAppSheetアプリに「物品の出庫」を要求 → Actionの実行
  2. AppSheetアプリはユーザーに「出庫フォーム」を表示 → Form Viewの表示
  3. ユーザーは出庫情報を入力し、「保存」をタップ → 複合Actionのトリガー
  4. AppSheetアプリは、まず入出庫履歴 (HISTORY)テーブルに「出庫レコード」を追加するよう要求 → Action A: HISTORYテーブルへの追加
  5. 次に、AppSheetアプリは在庫マスタ (ITEMS)テーブルの該当する物品の「在庫数量」を更新(減算)するよう要求 → Action B: ITEMSテーブルの更新

最終的に、Action AとAction Bを順番に実行する複合Actionを作成します。

実演:出庫Actionで履歴追加と在庫更新を同時に行う

複合Actionは、複数のActionを一つのボタンにまとめる機能です。手順1: 個別Actionの作成

  1. Action A: Add_History_Out
    Do this: Add a new row to another table
    Target Table: HISTORY
    Set these columns: 操作種別"出庫"数量変更-[出庫数量](出庫フォームで入力された値)に設定。
  2. Action B: Update_Item_Quantity
    Do this: Execute an Action on a set of rows
    Referenced Table: ITEMS
    Referenced Rows: SELECT(ITEMS[ItemID], [ItemID] = [_THISROW].[物品ID])(出庫対象の物品レコードを特定)
    Referenced Action: Set the values of some columns(ITEMSテーブルに定義した在庫更新用のAction)

手順2: 複合Actionの作成

  1. Action C: Do_Outbound_Process
    Do this: Grouped: execute a sequence of actions
    Actions: Action AAction Bの順に設定。

実体験: 複合Actionの順番を間違えると、在庫更新が先に行われてしまい、履歴に残す前の在庫数がわからなくなるというミスを犯しました。「ログ(履歴)を先に残し、マスタ(在庫数)を後で更新する」という原則を徹底することが、データの整合性を保つ鍵です。

第3章:Automationでバックグラウンド処理を自動化する

Actionがユーザーの操作をトリガーとするのに対し、Automationはデータの変更やスケジュールをトリガーに、バックグラウンドで自動的に処理を実行します。

Automationとは?:イベント駆動型の自動処理

Automationは、以下の3つの要素で構成されます。

  1. Event (イベント): 自動処理を開始するきっかけ。データの追加・更新・削除や、特定の時刻などが設定できます。
  2. Process (プロセス): イベントが発生した際に実行される一連の処理。
  3. Task (タスク): プロセスを構成する個々の処理。メール送信、データ変更、外部システム連携などがあります。

実演:在庫が一定数を下回ったら管理者にメール通知

手順1: Eventの作成

  1. Event Type: Data Change
  2. Table: ITEMS
  3. Change Type: Updates only(在庫数が更新された時のみ)
  4. Condition: [数量] < 10(在庫数が10を下回った場合)

手順2: Taskの作成

  1. Task Type: Send an email
  2. To: 管理者のメールアドレス(例: "admin@example.com"
  3. Email Body: "【在庫アラート】[物品名]の在庫が[数量]個を下回りました。"

手順3: ProcessとBotの作成

  1. ProcessTaskを設定し、EventProcessを紐づけてBotを完成させます。

このBotを設定することで、ユーザーがActionで出庫処理を行った結果、ITEMSテーブルの数量が10を下回った瞬間に、自動で管理者にメールが届くようになります。ユーザーは意識することなく、システムが裏側で業務をサポートしてくれるのです。

第4章:ActionとAutomationの連携と応用

ActionとAutomationを組み合わせることで、より高度な自動化を実現できます。

ActionからBotを呼び出す方法

Actionには、Call a process in a botという種類があり、ユーザー操作をトリガーにAutomationを直接実行させることができます。応用例: 物品の登録時に、ActionでITEMSテーブルにレコードを追加した後、Call a process in a botでBotを呼び出し、そのBotで「物品の写真を自動でリサイズしてS3にアップロードする」といった外部連携処理を実行させる、といった使い方が可能です。

応用:定期的な在庫棚卸しリマインダーの自動化

Event TypeScheduledに設定することで、特定の時間にBotを定期実行させることができます。

  • Event: 毎週金曜日の午前9時
  • Task: 全ユーザーに「今週の棚卸しを完了してください」というリマインダーメールを送信

このように、ActionとAutomationは、AppSheetアプリを単なるデータ管理ツールから、業務プロセス全体を自動化する強力なプラットフォームへと進化させます。

AppSheet用語表

用語 意味 AppSheetでの設定場所 応用例
Action ユーザー操作をトリガーに実行される処理。 Behavior > Actions ボタンタップで別画面に遷移、データ更新。
Automation データ変更やスケジュールをトリガーに実行されるバックグラウンド処理。 Automation > Bots 在庫アラートメール送信、定期レポート生成。
Grouped Action 複数のActionを順番に実行する複合Action。 Action TypeGrouped: execute a sequence of actionsを選択。 出庫処理(履歴追加と在庫更新)。
Event Automationの実行トリガー。 Automation > Bots > Event Data ChangeScheduled
Task Automationのプロセスを構成する個々の処理。 Automation > Bots> Process > Task Send an email、Run a Data Action。

FAQ

Q: ActionとAutomation、どちらを使うべきか迷います。

A: ユーザーの操作(ボタンタップなど)に連動して即座に実行したい処理はAction、データの変更や時刻をトリガーにバックグラウンドで実行したい処理はAutomationと使い分けるのが基本です。

Q: 複合Actionで実行できるActionの数に制限はありますか?

A: 公式な制限はありませんが、あまりに多くのActionを連ねると処理時間が長くなり、ユーザー体験を損なう可能性があります。複雑な処理は、ActionからAutomationを呼び出すなど、バックグラウンド処理に切り分けることを検討してください。

Q: Automationでメールを送信する際、HTMLメールは使えますか?

A: はい、TaskSend an email設定で、メール本文をHTML形式で記述できます。これにより、よりリッチなデザインの通知メールを作成することが可能です。

Q: AutomationのBotは、AppSheetアプリが閉じている状態でも動きますか?

A: はい、AutomationはAppSheetのクラウドサーバー側で実行されるため、ユーザーがアプリを閉じている状態や、オフラインの状態でも、トリガーとなるイベントが発生すれば自動的に処理が実行されます。

Q: ActionでGo to another Viewを実行する際、条件によって遷移先を変えられますか?

A: はい、Go to another View ActionのTarget設定で、LINKTOVIEW()などの式を使い、IF()SWITCH()関数で条件分岐させることで、動的に遷移先を変更できます。

まとめ/CTA

これにて、AppSheetによる業務アプリ開発の全工程を網羅した連載は完結です。第1回でテーブル設計の基礎を学び、第2回でテーブル間の連携(Ref)をマスターし、第3回でデータベース設計の思考法を身につけ、第4回でViewによるUI/UXを整え、第5回でUML図による処理の俯瞰を実践し、そして今回、ActionとAutomationによる業務の自動化という「仕上げ」を学びました。あなたは今、単なる「AppSheetの操作者」ではなく、「業務の課題をAppSheetで解決できる初級ITエンジニア」へと進化しました。この連載で得た知識は、あなたの業務を劇的に効率化するだけでなく、ノーコード開発者としての市場価値を高める強力な武器となるでしょう。

次のステップ:

  1. 実践: この連載で学んだ知識を活かし、あなたの職場の小さな課題からAppSheetアプリを開発してみましょう。
  2. 応用: ActionやAutomationの式をさらに深く学び、より複雑な業務ロジックを実装してみてください。
  3. 共有: あなたの成功体験をチームやコミュニティで共有し、AppSheetの輪を広げてください。

あなたのAppSheet開発の旅は、ここからが本番です。Good Luck!

関連記事

📄Arrow icon of a page link【第1回】AppSheetで在庫表から最短テーブル作成!初級エンジニア向け入門ガイド

📄Arrow icon of a page link【第2回】AppSheetのRefで親子連携!在庫管理アプリで学ぶテーブル連携の基本

📄Arrow icon of a page link【第3回】データベース設計入門:在庫管理アプリの要件定義からER図まで

📄Arrow icon of a page link【第4回】AppSheet View入門:基本の使い方と主要6タイプを徹底解説!

📄Arrow icon of a page link【第5回】AppSheet開発を変える!ユースケース図とシーケンス図で処理を俯瞰する

📄Arrow icon of a page link【第6回】ActionとAutomationで業務を徹底的に自動化する

業務効率化・DX推進でお悩みですか?

オンラインセッションで課題を可視化し、最適な解決策をご提案します。

  • DX推進を何から始めればいいかわからない
  • ツール導入を検討している
  • 社内でデジタル人材を育成したい
まずは無料で課題整理

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

業務効率化・DX推進のご相談はこちら

伴走支援プログラムの詳細を見る
無料相談はこちら