AppSheet Automationを活用して編集履歴を取得する方法

AppSheet Automationとは

AppSheetはGoogleから提供されているノーコード開発ツールです。ブラウザからアクセスすることができ、プログラミング無しで手軽に素早くアプリを作成することが可能です。
AppSheet AutomationはそのAppSheetの機能の一部になります。イベントをトリガーとして動作するBOTを作成することでメール通知やデータソースの自動編集などを行うことが可能です。

このコラムでは、サンプルとしてSpreadSheetをベースとしたチェックリストアプリを作成し、元となるデータベースを更新した際に編集したユーザーのメールアドレスや編集日時を自動で記録するBOTを作成していきます。

実際にやってみた

今回は以下のようなSpreadSheetをベースに作成した店舗の棚卸作業時のチェック項目を入力するサンプルアプリに対して、元となるデータベースを更新したユーザーのメールアドレスや更新日時を記録するオートメーションを追加していきます。
主として店舗の棚卸作業時のチェック項目をAppSheetで作成したアプリから入力し、その回答をSpreadSheetに記録するようなケースで使用するようなアプリを想定します。

実際にやってみた

作成したアプリ画面はこのようになっています。この画面から店舗を選択し、Editボタンを押すと確認項目をチェックできるようになっています。それぞれの確認項目をチェックしてSaveボタンを押せばその内容がSpreadSheetに反映されます。

 

 

この時に確認者や確認日の列が編集できないように、アプリの作成時にDataタブから見えないように設定しておきます。

 

 

SpreadSheetは下記の構成になっています。確認項目のほかに各番号の「確認者」列、「確認日」列をあらかじめ準備しておき、この列に記録されるようにします。

 

(補足)SpreadSheetをAppSheetから更新したときの編集履歴について

SpreadSheetには元々セルの編集履歴を見ることができます。ですが、AppSheetからSpreadSheetのセルを編集した場合、アプリから操作をしたユーザーではなくアプリ作成者が編集者として記録されるようになっています。
そのため、誰がセルの値を更新したのかを記録しておく必要がある場合に正しく表示されなくなるという事象が発生します。

 

 

こちらはSpreadSheetだけでなくAppSheet独自に使用できるAppSheetDatabaseでも同様にアプリ作成者が記録されるようになっています。

Automationの設定

botの作成

Automationを設定していきます。
作成を選択するとSuggestionがいくつか出てきますが、今回はCreate Custom Robotを選択して、1_確認項目が更新されたときに動作するAutomationを作成していきます。

 

イベントの作成

どのような時にAutomationを動かすかを設定します。
今回はCreate a Custom Eventから自分で設定します。

 

 

「Event Type」から今回は確認項目が更新されたときを想定してUpdates onlyを選択します。

 

 

しかし、このままですとAppSheetでデータの編集をしたときに常にこのBOTが動いてしまうのでConditionで条件を設定していきます。Conditionでは

[_thisrow_before].[1_確認項目]<>[_thisrow_after].[1_確認項目]

と入力します。[_thisrow_before].[1_確認項目]で編集している行の1_確認項目列の編集前の値と[_thisrow_after].[1_確認項目]で編集した行の1_確認項目列の編集後の値を取得し、二つの値が違う時(=値が更新された時)だけAutomationが動作するようにします。

 

イベント発生時の動作を設定

次にイベントが発生したときの動作をプロセスで設定していきます。
「Run a data action」を選択し、「1_確認者」列に更新者のメールアドレスを表すUSERMAIL()を、「1_確認日」列には現在の日時を表すNOW()を設定すればBOTの作成は終了です。

このBOTで1_確認項目をチェックしたときに履歴を取ることができるようになったので、同じように2_確認項目と3_確認項目の履歴取得用のBOTを作成します。Conditionの設定やイベントが発生したときの動作の設定において、指定する列がそれぞれ変わるだけでそれ以外は全く同じ手順になります!
2_確認項目と3_確認項目の履歴取得用BOTの作成が終了すれば作業は完了です!

 

アプリの実行

以上が一連の流れになります。実際にアプリで編集したSpreadSheetにも自動でメールアドレスと更新日時が記録されています!(隠していますが赤枠の部分でメールアドレスが自動で記載されています)

 

使ってみて感じたこと

ブラウザから簡単にアクセスすることができ、さらにコードをほとんど記述することなく自動化の仕掛けを設定できます。
多少複雑な設定をする場合でも、今回のように簡単なコードを1行程度記述するだけでよい点も使いやすく感じました。

一方で、このような比較的単純なBOTでも、非常に多くの台数(約100台)作成するとアプリの動作が非常に重くなってしまうことも確認されました。
質問項目が多岐にわたる場合や自動化したい動作が非常に多い場合はAppSheetは不向きだと感じました。

最後に

弊社ではAppSheetだけでなく複数のRPAツールを取り扱っており、お客様の業務に合わせたツールの提案が可能です。またPoCから導入支援、内製化サポートまで、一気通貫でのご支援が可能です。RPAでお困りのことがございましたら、一度BTCにお問い合わせください。

最後までご覧いただき、ありがとうございました。

関連記事

最新情報をお届けします!

RPAに関する最新コラムやイベント情報をメールで配信中です。
RPA領域でお仕事されている方に役立つナレッジになりますので、ぜび登録してください!

最新情報を受け取る方はこちら

もっと知りたい方はこちら


ページトップ