Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

複数選択リスト値の順序付けの振る舞い

公開日: Jun 26, 2023
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

複数選択リスト項目では、レコードで複数の値を選択してさまざまな使用事例に対応できます。項目の作成時に値を定義し、作成後も引き続き他の値を追加したり削除したりできます。これらの値は、表示をわかりやすくして UI の操作性を向上する目的で、昇順または降順に並べ替えることもできます。

ただし、これらの項目に SOQL、Apex、API からアクセスすると、設定またはリリース時に作成された順序で値が返されます。選択リスト項目に関して SOQL で ORDER BY を使用する場合と同様に、「並べ替えは設定時に決定された選択リストの並べ替えによって定義されます」。

この違いについては、次の 2 つの例を参照してください。 
  • まず、値を含む 2 つの複数選択リスト項目を示します。
    • shanep__Multi_Picklist1__c - option1; option2; option3
ユーザが追加した画像
  • shanep__Multi_Picklist2__c - option3; option2: option1 
ユーザが追加した画像
  • 最初の作成時の順序が維持されます。値の順序は UI と SOQL で設定されるようになります。 

レポート (UI)
ユーザが追加した画像

レコード (UI)
ユーザが追加した画像

ワークベンチ (SOQL)
ユーザが追加した画像
  • ここで、shanep__Multi_Picklist1__c の値の順序を option3、option1、option2 に変更します。
ユーザが追加した画像
  • UI には変更が反映されていますが、SOQL には反映されていないことがわかります。

レポート (UI)
ユーザが追加した画像

レコード (UI)
ユーザが追加した画像

ワークベンチ (SOQL)
ユーザが追加した画像


メモ: 使用中の選択リストの値を最初に置換せずに削除しないようお勧めしますが、計画せずに直接置換しても、順序付けられていない状態と同じ結果になる可能性があります。
 
解決策
メモ: まずサンプルデータを含む Sandbox で以下をテストし、ライブで変更する前にレコードデータとメタデータのバックアップがあることを確認してください。

上記の例を考慮した場合のアプローチを次に示します。
  • まず置換する値を追加します。作成される新しい値はリストの最後に表示されるため、置換する値だけでなく、すべての範囲の値を正しい順序で追加する必要があります。 
  • この例では、NewOption3、NewOption1、NewOption2 を追加します。これらが正しい順序で追加されていることを確認します。
ユーザが追加した画像
  • 次に、option1、option2、option3 をそれぞれ対応する値に置換します。オプションの変更ごとに各ジョブが完了するのを待機する必要がありますが、これには時間がかかる場合があるため、オフライン状態またはユーザーがシステムを頻繁に使用しない間に行うことをお勧めします。
ユーザが追加した画像
  • 3 つの値をすべて置換したら、テストレコードを使用して値が実際に変更されたことを確認します。値が正しい順序であることも SOQL で確認できます。

ワークベンチ (SOQL)
ユーザが追加した画像

レポート (UI)
ユーザが追加した画像

レコード (UI)
ユーザが追加した画像

メモ: 選択リスト値の名前を変更しても、レコードの値は変更されません。ユーザーが選択するオプションのみが変更されます。値の名前を再度変更する必要がある場合は、もう一度 [置換] を使用して既存の値を上書きする必要があります。古い値と比較して選択リスト値が新しいことを示す参照基準として、ダッシュやいずれかの大文字を追加すると、操作しやすくなります。
ナレッジ記事番号

000384484

 
読み込み中
Salesforce Help | Article