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