【AppSheet】[_THIS]を極める!動きを検証して理解を深めてみた
よく見かけるけど、意外と動きについて紹介している記事の少ない[_THIS]について検証してみました。
なんとな~く使っているだけでは途中成長が鈍化してしまうので、しっかりと動きを確認しながら深い理解ができたらいいよね!と思いこちらの記事をまとめていきます。
実際に手を動かしながら分かったところは、都度追加していこうと思います。
[_THIS]が利用できるのは、列が指定されているとき
[_THIS]が利用出来る時。
それはずばり、列が指定されていて、特定の値を一意に特定できる時です。
英語の通り、特定の列が指定されているから値が特定できるってことですね。いっぱいある中からthisって言ってもわかんないですもんね。
そして、その列を特定しているタイミングっていつ?というと、
こちらのヘルプに書かれている「列制約」の場合になります。
つまり、「列制約」で[_THIS]を使うと、その列の項目を取得することができるということになります。
(ただし、単独での利用はデータ型・列制約の項目によってはできなそうです。)
[_THIS]の挙動を検証してみる
「valid if」項目で[_THIS]を検証をしてみる。
こちらはサンプルで作った項目です。
各項目について、[_THIS]を使うとどうなるか見ていきたいと思います。
上記の各項目の鉛筆マーク(編集ボタン)から、編集メニューに遷移します。そして、valid ifに項目を入れ、テストをしていってみます。
各項目で[_THIS]がどう取得できるのか?検証してみた
上から検証していってみましたが、早速のエラー。
いったんエラー調査は無視して、他の項目を見ていきます。
次はタスクIDを取得していきます。
こちらの結果は、ちゃーんとIDが取れています。
お次のタスク名を取得してみると、こちらの結果はタスク名が取得できています。列が変わればとれる値も変わるようですね。
こんな感じで、他の項目もテストしてみました。
開始日時・終了日時・担当者では同じようなエラーになってしまいました。
The expression is valid but its result type 'XXX' is not one of the expected types: Yes/No, List エラーの原因を確認する
_RowNumber・開始日時・期限日時・担当者でエラーが出たため原因を確認していこうと思います。
結論、列制約で求められデータ型があり、それに合致しないとエラーになってしまう。ということみたいです。
ここからは確認内容を記載していきます。
まずは、同じ挙動をする項目名利用でも同じエラーになるのか確認していきます。
こちらの通りエラーに。
つまるところ、そもそも項目を取得することが出来ないのでは・・・?
ということで、エラーメッセージに従ってYes/Noで結果が返ってくるような式を入れてみます。
この通りエラーが解消しました!
どうも、記載の場所によっては[_THIS]だけでは利用が出来ないものもあるようですね。
この記事が気に入ったらサポートをしてみませんか?