見出し画像

【AppSheet】[_THIS]を極める!動きを検証して理解を深めてみた

よく見かけるけど、意外と動きについて紹介している記事の少ない[_THIS]について検証してみました。

なんとな~く使っているだけでは途中成長が鈍化してしまうので、しっかりと動きを確認しながら深い理解ができたらいいよね!と思いこちらの記事をまとめていきます。

実際に手を動かしながら分かったところは、都度追加していこうと思います。

[_THIS]が利用できるのは、列が指定されているとき

[_THIS]が利用出来る時。
それはずばり、列が指定されていて、特定の値を一意に特定できる時です。

英語の通り、特定の列が指定されているから値が特定できるってことですね。いっぱいある中からthisって言ってもわかんないですもんね。

そして、その列を特定しているタイミングっていつ?というと、
こちらのヘルプに書かれている「列制約」の場合になります。

つまり、「列制約」で[_THIS]を使うと、その列の項目を取得することができるということになります。
(ただし、単独での利用はデータ型・列制約の項目によってはできなそうです。)

列制約(Editable_If、Required_If、Show_If、Valid_If)で使用する場合、[_THIS]を使用して現在の行の現在の列の値を参照することができます。

AppSheet Help Column value expressionsより


[_THIS]の挙動を検証してみる

「valid if」項目で[_THIS]を検証をしてみる。

こちらはサンプルで作った項目です。
各項目について、[_THIS]を使うとどうなるか見ていきたいと思います。

上記の各項目の鉛筆マーク(編集ボタン)から、編集メニューに遷移します。そして、valid ifに項目を入れ、テストをしていってみます。

各項目で[_THIS]がどう取得できるのか?検証してみた

上から検証していってみましたが、早速のエラー。
いったんエラー調査は無視して、他の項目を見ていきます。

式は有効だが、結果の型「Number」が期待される型の1つではない:はい/いいえ、リスト


次はタスクIDを取得していきます。


こちらの結果は、ちゃーんとIDが取れています。


お次のタスク名を取得してみると、こちらの結果はタスク名が取得できています。列が変わればとれる値も変わるようですね。


こんな感じで、他の項目もテストしてみました。
開始日時・終了日時・担当者では同じようなエラーになってしまいました。

式は有効ですが、結果の型 'DateTime' が期待される型ではありません:Yes/No, List
式は有効だが、結果の型「Ref」が期待される型の1つではない:Yes/No、リスト


The expression is valid but its result type 'XXX' is not one of the expected types: Yes/No, List エラーの原因を確認する

_RowNumber・開始日時・期限日時・担当者でエラーが出たため原因を確認していこうと思います。

結論、列制約で求められデータ型があり、それに合致しないとエラーになってしまう。ということみたいです。

ここからは確認内容を記載していきます。
まずは、同じ挙動をする項目名利用でも同じエラーになるのか確認していきます。

こちらの通りエラーに。
つまるところ、そもそも項目を取得することが出来ないのでは・・・?

ということで、エラーメッセージに従ってYes/Noで結果が返ってくるような式を入れてみます。

この通りエラーが解消しました!
どうも、記載の場所によっては[_THIS]だけでは利用が出来ないものもあるようですね。

この記事が気に入ったらサポートをしてみませんか?