選択リストのまとめ

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめN～Z](https://qiita.com/Keiji_otsubo/items/92f92bb9f668ca9688be)


# カスタム選択リスト項目をグローバル選択リスト値に昇格させましたが、Bオブジェクトの選択リスト項目には、そのグローバル選択リスト値を反映させることはできないのでしょうか。

+ [既存の選択リスト項目をグローバル選択リスト値セットのものにさせたい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007iflFt)

:::note
残念ながら既存の項目を既存のグローバル選択リスト値セットに変更することはできないようです。以下の投稿の中ではメタデータを変更してもエラーで変更できなかったという報告もあります。

+ You can only promote restricted picklists. If you want to promote an unrestricted picklist, first convert it to a restricted picklist.
+ You cannot promote a field to an existing global value set. But check out this Salesforce Lab App for some help.

https://salesforce.stackexchange.com/questions/123342/converting-an-existing-picklist-to-use-global-picklist
:::


# 新しく追加した選択リスト値が表示されない

+ [Account Types not showing](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007X7v0I)

:::note
Is the record type set for the Account object?

You must associate a record type with the picklist values ​​you added.

https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4XnKSAV

https://help.salesforce.com/s/articleView?id=sf.customize_recordtype_considerations.htm&type=5
:::

+ [Picklist Values not showing on Page Layout](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007CJ0FY)

Salesforce の取引先オブジェクトに選択リスト項目であるカスタム項目を作成しました。何らかの理由で、レポートをフィルタリングしている場合、そのフィールドにはすべての値が表示されますが、取引先オブジェクトのページ レイアウトでは、そのフィールドには選択リスト フィールドの下にあるすべての値が表示されません。 

:::note
I was facing the same issue, I got it fixed by checking the "Field Dependencies" the pick-list field was a "Dependent Field" , then just edit under action and add the new pick list value on the available columns.
Setup>Object Manager>Object>Field Relationships>Field Dependencies

Newest Picklist value not showing in drop-down
https://developer.salesforce.com/forums/?id=906F0000000BCmeIAG


私は同じ問題に直面していました。「フィールドの依存関係」をチェックして、選択リストフィールドが「依存フィールド」であることを確認して、アクションの下で編集し、使用可能な列に新しい選択リスト値を追加するだけで修正されました。
[セットアップ] > [オブジェクト マネージャー] > [オブジェクト] > [フィールドの関係] > [フィールドの依存関係]
:::

# 複数選択リストでワイルドカードが使えない

+ [Report Filter: Does picklist have to be exact text?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007X7nVE)

:::note
Looks like this is still an idea:

https://ideas.salesforce.com/s/idea/a0B8W00000GdezcUAB/report-filter-wildcard
:::


# 最大値の回避

選択リストに含めることができる最大文字数は、選択リストのタイプによって異なります。各選択リストの値には、表示されないが文字数制限に含まれる改行と戻り文字が含まれます。
リストビューフィルターの選択リスト値を選択する場合、選択した選択リスト値の合計サイズは240文字未満である必要があります。
その他の制限は、標準およびカスタムの選択リストに適用されます。 
 

[選択リストの制限](https://help.salesforce.com/s/articleView?id=sf.picklist_limitations.htm&type=5)

静的リストで回避できるみたい


元の質問：[「情報質問ピックリストの追加」の最大文字数制限](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000HlC4f)

:::note
this worked for us by using a static, and not global, picklist.
:::

# 複数選択リストの順序が正しくありません

+ [複数選択リストの順序が正しくありません](https://trailhead.salesforce.com/en/trailblazer-community/feed/0D54S00000JetFH)

データベースに関する限り、値は作成された順序で単純に入力されました。あなたが行ったことは、GUI に表示される順序を変更するように SF に指示することです。そのため、クエリの結果は、GUI に表示するように指示した順序ではなく、作成された順序で返されます。クエリは、GUI ではなく、メモリの場所をクエリするだけです。
[Order of values in a multi-select picklist is not consistent](https://salesforce.stackexchange.com/questions/10541/order-of-values-in-a-multi-select-picklist-is-not-consistent)

+ [Multi-select picklist - formula](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V000074WKSk)

:::note
Unfortnately Aayushi, you will have to list the 25 values. You will also need to decide when the picklist has mutliple values belonging to separate categories, if you want the formula to list all the possible categories (mayeb separated by a comma), or just the first one

残念ながら、アーユシさん、25 個の値をリストする必要があります。また、選択リストに個別のカテゴリに属する​​複数の値が含まれている場合、式ですべての可能なカテゴリ (カンマで区切られた可能性あり) をリストするか、最初のカテゴリのみをリストするかを決定する必要もあります。
:::

+ [複数選択リストの選択後の並び順について](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000PXz7x)

:::note
複数選択リストの値は入力された順番で格納されているようです。 

１つ目の投稿ではApexトリガーで並び替える 

２つ目の投稿ではVF-pageのコントロラー（Apexクラスを使っていると思います。）で並び替える 

という方法を取って回避していますね。 
今ならレコードトリガーフローを使って同じことができると思います。 

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000JetFH

https://salesforce.stackexchange.com/questions/10541/order-of-values-in-a-multi-select-picklist-is-not-consistent
:::




# メタデータ

+ [Retrieve Account.AccountSource Picklist Values with Metadata API](https://help.salesforce.com/s/articleView?id=000383067&type=1)
+ [StandardValueSet Names and Standard Picklist Fields](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/standardvalueset_names.htm)

# エラー

+ [Error: bad value for restricted picklist field: Completed bad value for restricted picklist field: Completed training or school](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007CJdkI)

:::note
Please check this article. 


Error 'bad value for restricted picklist field' appears when a record is created
https://help.salesforce.com/s/articleView?id=000384095&type=1
:::



+ [Global value set 'GenderIdentity' in record type on the entity 'Contact' cannot be resolved ](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PeriC)

:::note
After reviewing the article, I understand that I don't have any Global Value Sets in my unlocked package. The error is related to the Contact.GenderIdentity standard custom field which is not available in the Sandbox where I'm attempting to install the unlocked package version.

記事を確認した結果、ロック解除されたパッケージにグローバル値セットが含まれていないことがわかりました。このエラーは、ロック解除されたパッケージ バージョンをインストールしようとしているサンドボックスでは使用できない Contact.GenderIdentity 標準カスタム フィールドに関連しています。
:::

+ [INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST:From: bad value for restricted picklist field:](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000PmSth)

+ [グローバル選択リスト値の連動関係の設定をしたいのですが、可能でしょうか？](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007I57ut)

:::note
It seems like the addition caused another problem, but it seems to work.

Dependent Picklist using Global Value Set
https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A8KesSAF
:::

+ [不要になった選択リスト値を追加/無効化しようと思うのですが、既に作成されているレコードにどのような影響がでますか？](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ajhSU)

:::note
以下の挙動になります。

無効化した値がレコードの作成/更新時に選択可能なオプションとして表示されなくなります。ただし、削除前にこの値が含まれていた既存のレコードには引き続きこの値が表示されます。

https://help.salesforce.com/s/articleView?id=000384482&type=1
:::

+ [テキスト「[object Object]」を含む非アクティブなピックリスト値を取得するにはどうすればよいですか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007erOT4SAM)

:::note
+ 選択リスト フィールドが「制限」としてマークされていないと思います。
+ バックエンドからピックリスト フィールドを更新するロジックが存在する可能性があります。
+ 選択リスト フィールドの値が選択リスト フィールドに存在しない値で更新された場合、それらの値は非アクティブな選択リスト値として作成されます。
:::


# デフォルト値の設定

+ [選択リストのデフォルト値設定方法について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ajBLV)

:::note
英語ですがCase 関数を使って数式でデフォルト値を設定する方法が解説されていますが、

選択リストのAPI名で指定しているので、 インデックス番号(1) のような指定はできないと思います。

https://salesforce.stackexchange.com/questions/389886/how-to-set-a-default-value-on-a-picklist-from-the-running-users-user-record

https://salesforcefaqs.com/salesforce-picklist-default-value-formula/
:::

# フローで値を追加する

+ [選択リストのフローやAPEXによる編集](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ifh3e)

:::note
フローを使って値を追加できるみたいですが、フローでは有効化ができないみたいです。
この部分はApexのコードが必要です。

Metadata APIの操作が必要になると思います。

以前に指定ログインを使ってMetadata APIを操作しようとしたことがありますが、その時は302エラーになってしまいました。結局指定ログインを使わずにゴリゴリコーディングしたような記憶があります。

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000E03gySAB

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000EA1PZ
:::

# ピックリストの制御は 300 項目を超えることはできません - この制限を回避するカスタム ソリューションはありますか? 制限を 500 に上げたくない

+ [ピックリストの制御は 300 項目を超えることはできません - この制限を回避するカスタム ソリューションはありますか? 制限を 500 に上げたくない](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000N0Lg)

:::note
ここでのはるかに簡単なアプローチは、代わりにデータを介してこれらの選択を表すことです。各レベルのオブジェクトを作成し、それぞれを参照できます。を使用して、Lookup Filters親に対応する子のみを選択できるようにすることができます。経験から言うと、開発リソースが利用できる場合は、このアプローチを LWC で動作させることはかなり少ない労力で済みます。

https://salesforce.stackexchange.com/questions/388513/what-is-the-best-way-of-dealing-with-multi-tier-dependent-picklists
:::