PRIORVALUE関数の入力規則で選択リスト値の変更順を制御する

PRIORVALUE関数の入力規則で選択リスト値の変更順を制御する

データの整合性を守るため、選択リストで値が更新される順番を制御されたいかた、こういう方法もございます。
PRIORVALUE関数の入力規則で選択リスト値の変更順を制御する
16
PRIORVALUE関数の入力規則で選択リスト値の変更順を制御する
Admin
2022/12/07 19:28:31
※こちらは過去に公開していたブログからの移行記事です。

選択リスト項目の値を、下図のように矢印の順にしか変更できないように設定するには、何を使用したらいいでしょうか。


・新規作成時は「空白」でないといけない。
・値を設定後、「空白」には変更できない。
・「AAA」に変更するには、前の値が「空白」または「BBB」でないといけない。
・「BBB」に変更するには、前の値が「AAA」でないといけない。
・「CCC」に変更するには、前の値が「AAA」でなくてはいけない。


PRIORVALUEを使用した入力規則で解決

「PRIORVALUE」という、項目の前の値を返す関数を使用した入力規則を設定します。

◇SALESFORCE ヘルプ >ドキュメント >
コードではなくてクリックによる SALESFORCE の拡張
数式の演算子と関数 I – Z


PRIORVALUE
説明:    項目の前の値を返します。
使用方法:    PRIORVALUE(field)
入力規則の例:    AND(PRIORVALUE(Amount) > Amount, IsClosed) を入力規則として指定すると、クローズされた商談の期待収益がユーザによって変更されるのを防ぐことができます。

設定した数式


OR (
ISNEW() && NOT( ISPICKVAL( Test__c , "" )) ,
(
AND (
OR (
ISPICKVAL( Test__c , "" ) ,
ISPICKVAL( Test__c , "AAA" ) && NOT(ISPICKVAL( PRIORVALUE ( Test__c ), "" ) || ISPICKVAL( PRIORVALUE (Test__c), "BBB" )) ,
ISPICKVAL( Test__c , "BBB" ) && NOT(ISPICKVAL( PRIORVALUE ( Test__c ), "AAA" )) ,
ISPICKVAL( Test__c , "CCC" ) && NOT(ISPICKVAL( PRIORVALUE ( Test__c ), "AAA" ))) ,
ISCHANGED( Test__c )
)
)
)



※「Test__c」が、該当の選択リスト項目です。
※ISBLANKを使用する場合、選択リスト項目では、ISBLANK(TEXT(Test__c))のように一度テキストに変換する必要があるため、今回は""で空白を表現しています。
※レコード作成時、PRIORVALUE関数は空白ではなく、項目に入力された値を返します。


ひとこと

数式の作り方はひとつではないので、今回の数式もあくまでも一例です。似たような状況のときに、参考情報として活用いただければ幸いです。

gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
16
コメント