※こちらは過去に公開していたブログからの移行記事です。
項目自動更新で、数式を使用して複数選択リスト値で他の項目を更新しようとしたところ、 TEXT、ISPICKVALの関数ではエラーになりました。
調べたところ、選択リスト(複数選択)にサポートされる関数は少ないようです。
複数選択リスト項目で使用できる関数
INCLUDES
ISBLANK
ISNULL
ISCHANGED(評価条件が [レコードが次の場合にルールを評価:] [作成されたとき、および編集されるたび] に設定されている割り当てルール、入力規則、ワークフロー項目自動更新、およびワークフロールールのみ)
PRIORVALUE(評価条件が [レコードが次の場合にルールを評価:] [作成されたとき、および編集されるたび] に設定されている割り当てルール、入力規則、ワークフロー項目自動更新、およびワークフロールールのみ)
数式の例
INCLUDESとIFの2つ関数を使用して、値の文字列を表示しました。
IF( INCLUDES( 複数選択リスト項目 , "値A" ) , "値A; " , "" ) + IF( INCLUDES( 複数選択リスト項目, "値B" ) , "値B; ", "" )複数選択リスト項目に 「A」 が含まれていたら「 A」と表示、「B 」が含まれていたら 「B」と表示する。
(選択リスト値ごとにIF~の数式を作成して繋げ、複数選択リストで選択されている値をすべて置き換えて表示できるようにする)
もし複数選択リスト項目でAとBが両方選択されていたら、
↑の数式で更新した項目では「A;B;」と表示されます。
※「;」は別の値だと区別しやすくするために入れています。
Apexトリガを定義できればその方法はもっときれいな代替案になるらしいですが、標準機能では、このような数式で複数選択リストを羅列するしか方法はないようです。
参考
◇ Salesforce > developers > Discussion Forums > 「選択リスト(複数選択)」の数式表示◇ Salesforce > Trailblazer community > ヘルプ > 選択リストおよび複数選択リスト数式項目の使用のヒント
{{i18n("articles.view.premium")}}