問題
AW Computing社の採用チームは、求職者の求人承諾(Job_Accepted__c)と入社日(Hire_Date__c)を求人応募カスタムオブジェクトに記録します。候補者が採用担当者のオファーを受諾すると、入社日が入力され、その後のレコード編集で変更されないようにする必要があります。アプリケーション構築者は入力規則でどの数式を使用すべきでしょうか。
- (ISBLANK(Job_Accepted__c) || NOT(ISCHANGED(Hire_Date__c))
- (ISBLANK(Job_Accepted__c) && NOT(ISCHANGED(Hire_Date__c))
- NOT(ISBLANK(Job_Accepted__c)) && ISCHANGED(Hire_Date__c)
- NOT(ISBLANK(Job_Accepted__c)) || ISCHANGED(Hire_Date__c)
正解
- (ISBLANK(Job_Accepted__c) || NOT(ISCHANGED(Hire_Date__c))
- (ISBLANK(Job_Accepted__c) && NOT(ISCHANGED(Hire_Date__c))
- NOT(ISBLANK(Job_Accepted__c)) && ISCHANGED(Hire_Date__c)
- NOT(ISBLANK(Job_Accepted__c)) || ISCHANGED(Hire_Date__c)
解説
Salesforceの数式で使用されるISBLANK()
, NOT()
, ISCHANGED()
関数について説明します。
- ISBLANK()
ISBLANK()
関数は、指定されたフィールドが空(null)であるかどうかを確認するために使用されます。この関数は、フィールドに値が入力されていないか、値が存在しない場合にtrue
を返します。たとえば、ISBLANK(FieldName)
は、FieldName
が空の場合にtrue
を返します。
- NOT()
NOT()
関数は、指定された条件の論理否定(つまり、その逆)を求めるために使用されます。この関数は、条件がfalse
の場合にtrue
を、true
の場合にfalse
を返します。例えば、NOT(ISBLANK(FieldName))
は、FieldName
が空でない場合にtrue
を返します。
- ISCHANGED()
ISCHANGED()
関数は、レコードのフィールドが前の値から変更されたかどうかを確認するために使用されます。この関数は、主にレコードの保存時にそのフィールドが変更されているかどうかをチェックするために使われます。例えば、ISCHANGED(FieldName)
は、FieldName
が前回の保存から変更されている場合にtrue
を返します。
上記から以下の思考回路で選択肢を探します。
- 数式関数の選定:
- オファーが受諾されていることを確認するためには、
Job_Accepted__c
が空でないこと(つまりオファーが受諾されていること)を確認する必要があります。これにはNOT(ISBLANK(Job_Accepted__c))
を使用します。 - 入社日が変更されたかどうかを検知するためには、
ISCHANGED(Hire_Date__c)
を使用します。
- オファーが受諾されていることを確認するためには、
- 論理演算子の適用:
- オファーが受諾されていて、かつ入社日が変更された場合にのみ、数式が真(
true
)を返すようにする必要があります。これにはAND演算子(&&
)を使用して、両方の条件が同時に真である場合にのみ真を返すようにします。
- オファーが受諾されていて、かつ入社日が変更された場合にのみ、数式が真(
それぞれの選択肢の理由について説明します。
□ (ISBLANK(Job_Accepted__c) || NOT(ISCHANGED(Hire_Date__c))
これは不正解です。この数式は、「Job_Accepted__c」が空である、または「Hire_Date__c」が変更されていない場合に真となります。しかし、これでは求職者がオファーを受諾した後に「Hire_Date__c」を変更することを防げません。
□ (ISBLANK(Job_Accepted__c) && NOT(ISCHANGED(Hire_Date__c))
これは不正解です。この数式は、「Job_Accepted__c」が空であり、かつ「Hire_Date__c」が変更されていない場合に真となります。この条件は、オファーが受諾されていない場合に「Hire_Date__c」が変更されるのを防ぎますが、オファーが受諾された後の「Hire_Date__c」の変更を防ぐことはできません。
□ NOT(ISBLANK(Job_Accepted__c)) && ISCHANGED(Hire_Date__c)
これは正解です。この数式は、「Job_Accepted__c」が空でない(つまり、オファーが受諾されている)かつ「Hire_Date__c」が変更されている場合に真となります。これは求職者がオファーを受諾し、その後で入社日を変更しようとしたときに真となる条件であり、要件を満たします。
□ NOT(ISBLANK(Job_Accepted__c)) || ISCHANGED(Hire_Date__c)
これは不正解です。この数式は、「Job_Accepted__c」が空でない、または「Hire_Date__c」が変更されている場合に真となります。この条件では、オファーが受諾されていない場合でも「Hire_Date__c」が変更されるのを許可してしまうため、要件を満たしません。
コメント