2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Answersで回答する時に使う数式のまとめ2

Last updated at Posted at 2022-02-27

数式を実際に書くときのためだけのサンプルを整理しておきます。

よく使う資料 Answersで回答する時に使う情報のまとめ
よく使うオブジェクト SOQL関係のまとめ
関数一覧【独自のまとめ】 数式で参照先のNameでエラーが出る時
Examples of Validation Rules Case(数式)のまとめ
数式の整理 Rich text項目を持つ数式項目を作成できません
CONTAINS(field__c, "text") 前方のゼロを消す TEXT(VALUE(ContractNumber))
RecordType.Name:日本語 DeveloperName:一意の英語 >=, <=
注意事項 ISCHANEDを入れておいかないと起動を修正時だけに限定できない
ADDMONTHS( Start_Date__c , Months__c ) ADDMONTHS( DATE(YEAR(TODAY()),MONTH(TODAY()),1),1) -1 DAY(DATEVALUE(ClosedDate)) HOUR(TIMEVALUE(ClosedDate)) MINUTE(TIMEVALUE(ClosedDate))
$Profile.Name <> 'System Administrator' NOW()-CreatedDate
TODAY()-DATEVALUE(CreatedDate) Probability <= 0.75 //%型の時は少数で指定する
OwnerId <> LastModifiedById --> $User.Id <> OwnerId //書き換えること CreatedBy.FirstName CreatedBy.LastName
Owner:User.FirstName & ' ' & Owner:User.LastName TEXT(PRIORVALUE(Status))="Working"
Owner:User.Username otsubo@brave-hawk-3moqt3.com $UserRole.Name
$Permission.sampleByPass = FALSE

数式

この式の場合は太字の部分は文字列として認識されると思います。(URLのパラメータなど)

{! }の部分は結果が文字列として返されると私は認識しています。

XX__c={! IF( CONTAINS(TEXT(Opportunity.ContractType__c), "AA"),"AA","")}

エラーになった最初の式だと太字の部分が文字列として認識されるので保存はできたとしてもパラメータとしては正しくないと思います。よって今回の場合はIFの結果を文字列として返したいのでIFの前に{!を置くの正解だと思います。

XX__c=IF( CONTAINS({!TEXT(Opportunity.ContractType__c)}, "AA"),"AA","")

Owner.Nameが参照できない。

I don't think the Name of the user object can be referenced properly.
try using this formula.

 {!$Record.Owner.FirstName} & " " & {!$Record.Owner.LastName}

連絡先はアカウント ID に関連付けられています

ISBLANK(AccountId)

when contains(FirstName, ''') then 'Invalid'

contains(FirstName, '\'') 

ベースURLをべた書きしない方法

カスタム設定とかのほうがいいかな?

LEFT({!$Api.Enterprise_Server_URL_570} , FIND('/services', {!$Api.Enterprise_Server_URL_570})) & "/lightning/r/kenmei__c/"& {!$Record.Id} &"/view"

15桁のId

Use 15-digit Ids in formulas
I think it's better to use Name/DeveloperName instead of hardcoding id.

評価前の状態が重要

メールフィールドが空です >> フィールドを編集できます
メール フィールドが null ではありません >> フィールドを編集できません

AND(
NOT(ISNEW()),
NOT(ISBLANK(PRIORVALUE(Email))), 
)

ライセンスの指定

NOT(ISPICKVAL(   $Profile.UserType   , 'Standard'))  
NOT(ISPICKVAL(   $Profile.UserType   , 'PowerCustomerSuccess'))  //カスタマーポータルマネージャ
PowerPartner //パートナー
CSPLitePortal //大規模ポータル

Profile

住所複合項目

SELECT Name, BillingStreet, BillingCity, BillingState, BillingPostalCode,BillingCountry, BillingLatitude, BillingLongitude from Account

住所複合項目

式ではIdを直接書かない

AND(
ISNEW(),
$User.Username <> 'exempt.user@your.org', 
ISBLANK( TEXT(LeadSource))
)

If you are gonna use " " or ' ' make sure you don't leave a blank space between the quotaion marks, because this => " " and this => ' ' do not equal blank/empty, they are literally a single blank space character (which is not the same thing)
Need help with validation rules excluding specific user and blank picklist field

条件式の場合には入力していない場合を忘れないようにする

AND(
NOT(ISBLANK(FieldName)),
OR(
LEN(FieldName) <> 6,
 NOT(ISNUMBER( FieldName))
)
)

restrict field to numbers and not zero

ISCHANGEDの注意

ISNEWと使う時は、ORで場合分けする。

The ISCHANGED function only evaluates when the value of a field is updated, it will not evaluate on NEW, so to cover all scenarios I would write it like this

ISCHANGED関数は、フィールドの値が更新されたときにのみ評価され、NEWでは評価されないため、すべてのシナリオをカバーするために、次のように記述します。

OR(
	AND(
	ISNEW(),
	NOT(ISBLANK(Price_Per_Unit__c)),
	ISBLANK( Description__c)
	),
	AND(
	ISCHANGED(Price_Per_Unit__c),
	ISBLANK( Description__c)
	)
)

checkbox型にISBLANKは使えない

Checkboxes are never empty -- they are either TRUE or FALSE.
So, for the checkbox, you can use. NOT(Set_CFIN_Defaults__c)

Validation Rule

Validation Ruleはレコードの保存前に実行されるので、データ作成時には関連先のフィールドは参照できないです。

Validation not working before record is saved

Nameは必須項目なので、nullのチェックをしても意味がない

文字数を無意味に増やしているだけ

Job__c.Construction_Start_Date__c = " ",には要注意

Just an fyi , this Job__c.Construction_Start_Date__c = " " <== is not saying "ob__c.Construction_Start_Date__c field is blank, or null, or empty".

That is litrerally saying "Job__c.Construction_Start_Date__c field has a single space character in it.

Also, it kills a baby seal....

Warning Error when encoding row-level formula: Syntax error. Missing ')'

100円の位を切り捨て

FLOOR(X20221205a__c/1000) *1000

フィルターロジック

OR (1 AND 2 AND (4 OR 5)) OR (1 AND 3 AND (4 OR 5)) OR (2 AND 3 AND (4 OR 5)) OR (2 AND 6) OR (2 AND 7) OR (1 AND 3 AND 6) OR (2 AND 3 AND 6)

先頭のORは必要ない

(1 AND 2 AND (4 OR 5)) OR (1 AND 3 AND (4 OR 5)) OR (2 AND 3 AND (4 OR 5)) OR (2 AND 6) OR (2 AND 7) OR (1 AND 3 AND 6) OR (2 AND 3 AND 6)

結果的にはよく分からない

フロー

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?