AppSheetを使っているとディープリンク(Deep Link)という言葉を耳にすることがあります。あまり耳にしたことがなく馴染のないワードです。
ですが、このDeepLinkはAppSheetで開発を行うえでとても便利な機能です。これを知らずにいいAppSheetは作ることができないと言っても過言ではありません。
ここでは、そもそもDeepLinkとは何か?について解説しています。
DeepLinkとは何か?
AppSheetのDeepLink(ディープリンク)とは、他のアプリやビューに移動することができるリンク(処理)の総称のようなものです。
意味的には「深いリンク」なので、https://などのURLや画像イメージへのパスのような通常のリンクと異なり、アプリやビュー間を遷移するより深いリンクを指しています。
ディープリンクの設定は手動で構築する方法と関数を使って式(ディープリンク式)を記述する方法の2パターンがあります。
基本的には、関数を使ってアクションを作成し、ビューにその作成したアクションを設定するという使い方になるかと思います。
以下でDeepLinkで使用される関数について解説していきます。
DeepLinkで使われる6つの関数
DeepLinkを設定するには次の6つの関数があります。
いずれも「LINKTO」とついているものが該当します。
6つのLINKTO関数の概要(まとめ)
DeepLinkの6つの関数はそれぞれ以下のような処理になります。
関数 | 説明 | 基本構文 |
---|---|---|
LINKTOAPP() | 指定したアプリに遷移 | LINKTOAPP(アプリ名) |
LINKTOFILTEREDVIEW() | 指定したビューをフィルター条件に指定した状態で表示(条件を指定できる) | LINKTOFILTEREDVIEW(ビュー名, フィルター条件) |
LINKTOFORM() | 指定したフォームへ遷移(カラムの値を指定できる) | LINKTOFORM(ビュー名, カラム1, 渡す値1, [カラム2, 渡す値2…], [アプリ名]) |
LINKTOPARENTVIEW() | 親ビューに遷移(いわるゆ「戻るボタン」) | LINKTOPARENTVIEW() |
LINKTOROW() | 指定したビューの行へ遷移 | LINKTOROW(KEYの値, ビュー名, [アプリ名]) |
LINKTOVIEW() | 指定したビューへ遷移 | LINKTOVIEW(ビュー名, [アプリ名]) |
※1:アプリ名が省略可能な関数の場合、アプリ名を省略すると現在のアプリへのディープリンクとなります。
※2:LINKTOFORMのように、遷移先のビューにデータを渡す関数の場合、対象のビューでINITAL VALUEなどの関数が設定されていても、それらを無視しディープリンク式の値で上書きします。
アプリ名とはどれのこと?
DeepLinkを使ってLINKTO~関数を使うときに、LINKTOAPPなどのようにアプリ名を指定する場合があります。
この場合のアプリ名とはAppSheetの「Settings」の中の「ShortName」ではありません。
アプリ名はULRに表示されている「appName=」の部分になります。(スプレッドシート経由でAppSheetアプリを作成したときに自動で生成されるフォルダ名です)
例えば以下のようなアプリが以下のようなURLの場合は太字の部分がアプリ名となります。
https://www.appsheet.com/template/AppDef?appName=ShiftManagement-3518598&appId=58bb9fcc-b701-462a-87fd-34129fe8fcba&quickStart=False#Data.Columns.Admin%20Scheduled%20Shift
終わりは次の「&」までです。(&appIdや&channelなど)
LINKTOAPP|アプリ遷移
基本構文
LINKTOAPP関数は指定した他のアプリへ遷移するためのディープリンクです。単に引数でアプリ名を指定するだけです。
LINKTOAPP("アプリ名")
実例
例えば、「本貸出管理-59683247」というアプリに遷移するには以下のように記述します。
LINKTOAPP("本貸出管理-59683247")
LINKTOFILTEREDVIEW|条件に合う行のみを表示したビューに遷移
基本構文
LINKTOFILTEREDVIEW関数は指定したビューをフィルター条件に指定した状態で表示することができるディープリンクです。(条件を指定できる)
LINKTOFILTEREDVIEW("ビュー名", フィルター条件)
実例1
例えば以下のように使います。
LINKTOFILTEREDVIEW("顧客一覧", ([都道府県] = [_THISROW].[都道府県]))
これは、顧客一覧テーブルの都道府県のカラムが、現在選択されている都道府県と一致しているもののみを表示した、顧客一覧カラムに遷移するための式です。
実例2
条件式を「true」にした場合、指定したカラムの全ての行を表示します。
LINKTOFILTEREDVIEW("顧客一覧", TRUE)
実例3
LINKTOFILTEREDVIEW("Order View", [Order Status] = Open)
LINKTOFILTEREDVIEW("Customers Table View", AND([Sales Rep] = [_THISROW].[Sales Rep Id], [Priority] = High))
LINKTOFILTEREDVIEW("Students Table View", [Age] < [_THISROW].[Age])
LINKTOFORM|フォームに遷移。データも渡せる
基本構文
LINKTOFORM関数は指定したフォームに遷移します。その際、指定したカラムの値を渡すことができます。
LINKTOFORM(ビュー名, カラム1, 渡す値1, [カラム2, 渡す値2…], [アプリ名])
実例1
例えば以下のように使います。
LINKTOFORM("顧客一覧_Form", "都道府県", "北海道", "郵便番号", "078-8220")
上記の場合、顧客一覧フォームに遷移し、その時に都道府県カラムの値は「北海道」、郵便番号カラムの値を「078-8220」とした状態にします。
※遷移先のビューはフォームなので「〇〇_Form」を指定します。
実例2
LINKTOFORM("顧客一覧_Form", "都道府県", [_THISROW])
これは、「顧客一覧」フォームに遷移し、そのときに、「都道府県」カラムに現在の行のキーとなっているカラムの値を渡します。
実例3
LINKTOFORM("大カテゴリー一覧_Form", "登録日", TODAY(), "大カテゴリー", [_THISROW].[カテゴリー名])
これは、「大カテゴリー一覧」フォームに移動し、「登録日」カラムに今日の日付を、「大カテゴリ」ーカラムに現在の行の「カテゴリー名」カラムの値を渡します。
LINKTOPARENTVIEW|親ビューに戻る。戻るボタン
基本構文
LINKTOPARENTVIEW関数は他のLINKTO関数でビューを遷移した後に、元のビューに戻るための関数です。
LINKTOPARENTVIEW()
とてもシンプルで引数はありません。
LINKTOROW|指定したビューの行を表示
基本構文
LINKTOROWは指定したビューで、指定したキーを持つ行を選択状態として表示するディープリンクです。
LINKTOROW(KEYの値, ビュー名, [アプリ名])
※アプリ名を省略した場合は、現在のアプリ内で遷移します。
実例1
例えば以下のように使います。
LINKTOROW("ディナー", "カテゴリー一覧")
上記の場合、同一のアプリ内で「カテゴリー一覧」テーブルにおいて、キーとなっているカラムの値が「ディナー」の行を選択状態として「カテゴリー一覧」ビューを表示します。
実例2
LINKTOROW([大カテゴリー], "大カテゴリー一覧")
これは、遷移先の「大カテゴリー一覧」ビューで、現在のビューにおいて「大カテゴリー」カラムの値がキーとなっている行をハイライトして表示します。
実例3
異なるアプリに遷移する場合は以下のように記述します。
LINKTOROW([大カテゴリー], "大カテゴリー一覧", "会計システム-1234565")
LINKTOROW("ディナー", "カテゴリー一覧", "会計システム-1234565")
LINKTOVIEW|指定したビューに遷移
基本構文
LINKTOVIEWは指定したビューに遷移するディープリンクです。
LINKTOVIEW(ビュー, [アプリ名])
※アプリ名を省略した場合は、現在のアプリ内で遷移します。
実例1
例えば以下のように使います。
LINKTOVIEW("取引履歴")
これは、アクションを設定したテーブルの行をクリックすると、どの行をクリックしたとしても「取引履歴」ビューに遷移します。
実例2
選択した行に合わせて遷移先のビューが変化するように設定するには、SWITCH関数とLINKTOVIEW関数を組み合わせます。
SWITCH([ビュー],
"取引履歴", LINKTOVIEW("★取引履歴"),
"購入先一覧", LINKTOVIEW("購入先一覧"),
"顧客一覧", LINKTOVIEW("顧客一覧"),
"大カテゴリー", LINKTOVIEW("大カテゴリー"),
"カテゴリー", LINKTOVIEW("カテゴリー"),
""
)
これは選択した「ビュー」カラムの値によって遷移先のビューを変更するディープリンク式です。IFS関数とLINKTOVIEW関数でも記述することができます。
DeepLinkをアクションとして設定する方法
DeepLinkをアクションとして実際のアプリに設定する方法については下記をご参考ください。