AppSheetを使っていると次のようなエラーが発生することがあります。
「Data action ‘アクション名 Action – 1’ uses an invalid value expression ‘=SELECT( [書籍名], [書籍名]=[_THISROW].[書籍名] )’. SELECT has invalid inputs, Unable to find table ‘TEST’, did you mean」
特徴的なのは「Action -1」のような表記があることです。
ここではこのエラーの発生原因や対処法についてまとめています。
エラーの内容
エラーの内容は例えば以下のようなものになります。
例エラー1:テーブルが見つからない
「Data action ‘本一覧の残数更新のアクション実行 Action – 1’ uses an invalid value expression ‘=SELECT( TEST[書籍名], [書籍名]=[_THISROW].[書籍名] )’. Unable to find table ‘TEST’, did you mean ‘本一覧’?」
例エラー2:入力内容が不適切
「Data action ‘本一覧の残数更新のアクション実行 Action – 1’ uses an invalid value expression ‘=SELECT( [書籍名], [書籍名]=[_THISROW])’. SELECT has invalid inputs」
例エラー3:タイプ(型)がおかしい
「The value ‘=SELECT( 本一覧[No], [書籍名]=[_THISROW].[書籍名] )’ of data action ‘本一覧の残数更新のアクション実行 Action – 1’ does not match the expected type List or its expected type details」
エラーの発生原因
これらのエラーはAcutomation(自動化)でBotsを設定したときに、「Run a data action」で「Run action on rows」を選択し、他のテーブルの行の値を変更しようとしたときに発生する傾向にあります。
より具体的には「Referenced rows」の設定をミスっていることが多いです。
エラー対処法
もし、Automationのbotsのアクションの設定で「Referenced rows」を設定しているときにこのエラーが発生している場合は、以下の点に注意してみてください。
Referenced Rowsとは、選択したテーブルの中で処理適用する行を選択する場所になります。行をリスト形式で指定する必要があるため、基本的にはSELECT関数やFILTER関数を使います。
また、ここで指定する行はKEYでなければいけないという制約があります。
ここを満たし、パースエラーなどの記述ミスのない数式を記載すればエラーは消えるはずです。
実例
例えば、「Referenced Table」で指定した「本一覧」テーブルのKEYが以下のように「書籍名」カラムとなっているとします。
このとき、Referenced Rowsは次のように設定します。
SELECT( 本一覧[書籍名], [書籍名]=[_THISROW].[書籍名] )
[_THISROW]には、選択中の行が入ります。
一般的な書き方で書くと次のようになります。
SELECT( Reference Tabelで指定したテーブル名[KYEとなっているカラム名], [KYEとなっているカラム名]=[_THISROW].[KYEとなっているカラム名] )