Contact
やAssignedTo
などの参照フィールドを持つTroubleTicket
などのオブジェクトのビジネス・ロジックを記述する場合は、それぞれの参照フィールドのセカンダリ関連オブジェクト・アクセサ・フィールドを使用して、参照フィールドによって参照されるオブジェクトにアクセスできます。
詳細は、「動的選択リスト・フィールドに関連するセカンダリ・フィールドの理解」を参照してください。
Contact
およびAssignedTo
参照フィールドの場合、セカンダリ関連オブジェクト・アクセサ・フィールドの名前は、それぞれContact_Obj_c
およびAssignedTo_Obj_c
になります。 次の例では、TroubleTicket
のコンテキストで記述されたスクリプトから2つの参照オブジェクトを参照し、各フィールドの1つにアクセスする方法を示します。 次の例に示すように、参照される参照オブジェクトを常にローカル変数に格納することをお薦めします。 これにより、関連オブジェクトから何個のフィールドにアクセスしても、1回のみ取得できます。
// Store the contact object and assignedTo object in a local variable
def customer = Contact_Obj_c
def supportRep = AssignedTo_Obj_c
// Now reference one or more fields from the parent
if ((endsWith(customer?.EmailAddress_c,'.gov') ||
endsWith(customer?.EmailAddress_c,'.com')
)
&&
(startsWith(supportRep?.PhoneNumber_c,'(202)')||
startsWith(supportRep?.PhoneNumber_c,'(206)')
)
)
{
// Do something here because contact's email address
// is a government or business email and assigned-to
// support rep is in 202 or 206 Washington DC area code
}
動的選択リスト・フィールドContact_c
およびAssignedTo_c
はオプションである可能性があるため、その値はnull
である可能性があるため、関連オブジェクト・アクセサの値もnull
である可能性があります。 このため、関連オブジェクトがnull
の場合に、Groovyセーフ・ナビゲーション演算子(?.
)を使用して関連オブジェクトのフィールドを参照します。