0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SOQLで選択リストの表示ラベルを取得する

0
Posted at

SOQLで選択リストの表示ラベルを取得する

作業中の別問題の調査で引っかかり、忘れないようにメモっておきます。

問題:選択リスト値が翻訳されない。

翻訳設定を利用して、ユーザー言語に合わせて日本語と英語で表示していたけど、
あるカスタムLWC作成で、Datatableに詰め込んだデータの選択リストが翻訳されなくなっている。

原因:PickListのAPI参照名を取得していた。

SOQLで普通に選択リスト項目を取得すると、API参照名が取得されること。

[Select PickList__c From SomeCustomObject__c ];

上記だとAPI参照名が取得されるが、あいにく、設計が悪く、
ラベルとAPI参照名が同じになっていて、API参照名を取得したのを画面から気付かなかった。
ちなみに、API参照名だと翻訳が適用されないようだ。

対処:toLabel()で選択リスト項目のラベルを取得する。

そして、選択リスト項目にtoLabelメソッドを利用することで、選択リスト項目のラベルが取得でき、翻訳も正しく行えるようになる。

[Select toLabel(PickList__c) From SomeCustomObject__c ];

ちなみに、ラベルとAPI参照名の両方を取得したい場合は、
下記のように別名つける方法で対応できる。

[Select PickList__c, toLabel(PickList__c) picklistLabel From SomeCustomObject__c ];

※:SOQLで通常は項目に別名つけられません。集計関数など利用時のみ別名つけ可能

SOQL および SOSL リファレンス

toLabel():SOQL
toLabel():SOSL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?