【 AppSheet 応用】別テーブルにデータを入力しよう【Action】
こんにちは。吉積情報(株)アプリケーション開発部のイイズナです。
AppSheet の機能を学ぶ「AppSheet 応用シリーズ」。
今回は Action(Actions) の応用編です。
基礎編では Action の基本的な設定方法をご紹介しました。
ここでは ”別テーブルにデータを入力する” タイプの動きをする Action を取り扱います。
▶ 基礎編はこちらから!
別テーブルにかかわる Action とは?
ここで取り上げるActionは 「Data: add a new row to another table using values from this row」 (この行の値を使って別のテーブルに新しく行追加をする)です。
「Data: execute an action on a set of rows」(行に対してアクションを実行する)も別テーブルがかかわる Action ですが、これとはまた違った動きとなるため、ここでご説明するとややこしくなるので別の機会にご説明することにします。
Action の内容は「Do this」を見てもらえればだいたい想像はつくので(英語が苦手な方は翻訳してみてください)、パッと見てわからなくても問題ありませんから、落ち着いてひとつひとつ見ていきましょう。
動きを見てみよう
具体的にイメージするために、「お気に入りを登録する」Action の例を見てみましょう。
動きはこのような感じです。
データ構成は以下のとおりです。
この Action におけるポイントは、ボタンの設置場所(Action の起点)はお気に入り登録対象データのある「商品」テーブルで、Action によるデータ追加先のテーブルは「商品」テーブルとはまた別の「お気に入り」テーブルである、ということです。
また、ここでは本題から逸れるため詳細は割愛しますが、お気に入りはユーザーごとに表示されるべきものなので Slice を活用してユーザーごとの表示制御をしていることもポイントです。
Action の設定をする
Action 設定の流れをざっくりいうと、
ボタン設置テーブルを決める → 動きを決める → 付随する設定をする → Action対象カラムを設定する
となります。
今回でいえば、「商品のデータをお気に入りテーブルに登録する」ですね。
設定項目は以下のとおりです。
- Action name:アクションの名前
Display name で何も設定しない場合は、ボタン名としてアプリ画面に表示されます。 - For a record of this table:データソーステーブル
ボタン(Action)の設置場所とするテーブルを指定します。今回は「商品」テーブルです。 - Do this:Action の動き
今回の Action でいうと「この行にある値を他のテーブルに新しく行追加する」です。 - Table to add to:追加するテーブル
上にある”他のテーブル”をここで指定します。今回は「お気に入り」テーブルです。 - Set these columns:値をセットするカラム
各カラムにセットする値を設定します。
左プルダウン側で「お気に入り」テーブルのカラムを選択、右側に「商品」テーブルの値などを入れます。 - Position:ボタンの表示位置
画面上でどの位置にボタンを表示するかを設定します。使わないボタンは「Hide」で非表示に。
その他、適宜「Display name」でボタン名(開発画面とは別名称を設定)、「Action icon」でアイコンのマークを設定するとユーザビリティを向上できていいですね。
あわせて覚えよう
一度お気に入りテーブルに追加したら、削除するまでお気に入り登録したユーザーのビュー上は「お気に入り登録」ボタンが表示されないように Behavior > Only if this condition is true でボタンの表示制御ができるとなお◎です。
表示制御の数式例。
お気に入りテーブルのデータをこの行の「商品ID」でフィルタリングし、さらにその中でユーザーのメールアドレスの有無を判定し、存在しない=お気に入り未登録の場合は、ボタンを表示する。
NOT(IN(USEREMAIL(),(SELECT(お気に入り[ユーザー],[商品id]=[_THISROW].[商品id]))))
Set these columns
今回のActionは”お気に入り登録機能”ということで、「お気に入り」テーブルの「商品id」に「商品」テーブルの「商品id」をセットしていますが、見ておわかりのようにセットする値(右側)は、数式を書けるようになっています。
そのため、この「商品」テーブルの値以外にも、例としている画面上にある「USEREMAIL()」のような値をセットしたり、この数式内で計算をしたうえで結果を別テーブルに格納したり、といった動きにも利用できます。
例えば、以下のような式も入れることができます。
[商品].[金額]*1.1
アクションボタン押下時に、自動的に消費税込み金額を入れるなんてことができるんです。
おわりに
いかがでしたでしょうか。
今回は Action の中でも汎用的なお気に入り機能を使った「Data: add a new row to another table using values from this row」(この行の値を使って別のテーブルに新しく行追加をする)のご紹介でした。
この機能を応用してActionを使ったテーブル間のデータ連携ができるようになると、ますます開発の幅が広がります。
ぜひ、積極的に利用してみてくださいね。
「そんな時間ない!」「直接質問したい!」という方などに向けて、弊社 吉積情報(株)では AppSheet トレーニングやサポートサービスも提供しております。
お困りのことがございましたら、AppSheet を利用するのに必要な Google Workspace の知見も豊富な弊社にご相談ください。
無料の Webセミナーも随時開催しておりますので、ご興味があればいらしてくださいね。
ありがとうございました。それではまた次回お会いしましょう。
サンプルアプリのご案内
※いただいたコメントは全て拝見させていただきますが、全てのご質問にはお答えできないことがございますので、あらかじめご了承くださいませ。
Discussion