【Salesforce】入力規則 選択リスト の値によって別の項目を入力必須にする方法
はじめまして。CREFILでコンサルタントをしております久米と申します。
弊社ではSalesforceを使用した案件に携わることが多く、私は現在CRM開発を担当しております。
今回の記事では私が作成の際につまずいた入力規則について記載します。
限られたものではありますが、入力規則の作成、特に選択リストの値を使用した作成に悩んでいる方の参考になれば幸いです。
(例)【月次報告】オブジェクトでは、『品物』がセールで売れた場合、『値引き率』を選択し入力しなくてはならない。
(選択リストAの値が「1」の時に、選択リストBを入力しなければならない。)
このように、選択リストの選ぶ値によって、入力を必須にしたい項目があるかと思います。
選択リストは、他の項目と異なり項目の挿入をしても関数を使用しないと下記画像のような構文エラーが出てしまいます。
では下記のオブジェクトを仮定し、対処方法を記載していきます。
オブジェクト名
表示ラベル名:【月次報告】 API参照名:monthly_report
項目1
表示ラベル名:【商品】 API参照名:shouhin
データ型:「選択リスト」
選択リスト値:プロパー,セール API参照名「proper,sale」
項目2
表示ラベル名:【値引き率】 API参照名:discount_rate
データ型:「選択リスト」
値:15%,30%,50%,70% API参照名「15,30,50,70」
次に下記の関数を使用して解決したいと思います。
『AND』
値がすべて真である場合は TRUE を返し、1 つ以上の値が偽である場合は FALSE を返します。
『ISPICKVAL』
選択リスト項目の値が指定した文字列と等しいかどうかを判断します
では実際に記入していきます。
picklist_fieldに【商品】項目のAPI名『shouhin__c』
text_literalに値の『"sale"』を記入します。
次に、AND関数を使用し、【値引き率】項目を続けて記入します。
ANDの()内に二つの項目を記載します。
ISPICKVAL( discount_rate__c,"")の("")は空欄、「--なし--」を表現します。
画面確認
実際に画面を確認すると
これで、【商品】の『セール』を選択した場合(ISPICKVAL( shouhin__c,"sale"),)、【値引き率】を選択しなければならない( ISPICKVAL( discount_rate__c,"") )が完成しました。
終わりに
いかがでしょうか。数式や入力規則で選択リストの値を入力する際に使用する関数はいくつか種類がありますが、本記事では『ISPICKVAL』と使用頻度の高い『AND』を紹介、使用しました。
これからも開発で気づいたことや悩んだ事の解決策を記載していきます。
ご覧いただきありがとうございました。