数式のHELP
####項目のNULL判定
ISNULL(項目API名)
ISBLANK(項目API名) テキスト項目サポートをISNULLに加えた関数
ISNULL(Datatype__c)
多くの型(テキスト型、参照型)がISNULLだとうまく判定できないので、ISBLANKの方が安全
数式の数値項目で ISNULL判定がうまく動かない場合は、数式フィールドの下記の設定をチェックする。「0として処理する」だと期待したように動かない。
####選択リストとの値の比較
ISPICKVAL(項目API名, '項目値')
ISPICKVAL(DataType__c, '選択リスト')
####選択リストのNULL判定
ISBLANK(TEXT(項目API名))
###チェックボックスがOFFの判定
NOT(項目API名),
####IF判定
IF(条件式,trueの値,falseの値)
IF(ISNULL(Datatype__c),true,false)
//Datatype__cはテキスト型
IF(IsAnswered, '回答済み','未回答')
//IsAnsweredはcheckbox型
####項目が更新されたかどうか
ISCHANGED(項目API名)
####更新前の値の取得
PRIORVALUE(項目API名)
ISPICKVAL(PRIORVALUE(項目API名), '項目値')
####文字列の連結
Year(RecordedDate__c ) & "/" & Month(RecordedDate__c)
####相対月の算出
前年同月の比較とかを行いたい場合に利用(0:当月、-12:前年同月という感じの値となる)
( (Year(RecordedDate__c) - Year(today())) * 12 ) + (Month(RecordedDate__c) - Month(today()))
####四半期の算出
CASE(
MONTH(TODAY()),
1, 1,
2, 1,
3, 1,
4, 2,
5, 2,
6, 2,
7, 3,
8, 3,
9, 3,
4
)
####日付に営業日を加算する
次の数式は、指定した date から 3 営業日後を確認する。
CASE(
MOD( date - DATE( 1900, 1, 7 ), 7 ),
3, date + 2 + 3,
4, date + 2 + 3,
5, date + 2 + 3,
6, date + 1 + 3,
date + 3
)
この数式は、date 項目値の曜日を確認します。日付が水、木、金曜日の場合5日 (週末 2 日と 3 日) が加算される。
####複数の条件の判定
AND(xxx, xxx)
OR(xxxx, xxxx)
####数値の判定
ISNUMBER(XXX__c)
####数値、テキスト変換
VALUE(xxx__c) //数値に変換
TEXT(xxx__c) //テキストに変換
####新規レコードの作成の判定
ISNEW()
####自分が所有者かどうかの判定
$User.xx はログインユーザーによって値が変化する
OwnerId <> $User.Id
###商談の所有者がログインユーザーと同じ部門かを判定
(Userオブジェクトにカスタムフィールド department__c が設定されていることが前提)
AND($User.department__c != null,
$User.department__c = Owner.department__c)
####Validation Rules(入力チェック)の例
特定のプロファイルのユーザーに、自分が所有者ではないレコードの更新を禁止させるためのValidation。
ただし、xxx__c 項目への更新だけは許可する。
AND(
NOT(ISNEW()),
OwnerId <> $User.Id,
OR(
$Profile.Name='Admin User',
$Profile.Name='Marketing User'
),
NOT(ISCHANGED(xxx__c))
)
####カスタム設定の参照
階層型のみサポートされる。
{!$Setup.CustomSettingName__c.CustomFieldName__c}
####SalesforceのベースURLを取得
LEFT($Api.Partner_Server_URL_XXX, FIND( '/services', $Api.Partner_Server_URL_XXX))
Partner_Server_URL_URL_XXX はAPIバージョン
https://xxx.cs31.my.salesforce.com/ のようなURLを取得可能