関連オブジェクトのフィールドに値を割り当てるには、次のように代入演算子を使用します:
// Assume script runs in context of an Activity_c object (child of TroubleTicket_c)
// and that TroubleTicket is the name of the parent accessor
TroubleTicket.Status_c = 'Open'
子オブジェクトは一部の親行によって所有される必要があるため、TroubleTicket
アクセサは、常にnullを返すのではなく、有効な親行を返すと想定できます。 これは、Activity
オブジェクトのTroubleTicket_Id
フィールドの親外部キー値が必須であるという直接的な結果です。 この場合、Groovy安全なナビゲーション演算子を使用する必要は「厳密に」ではありませんが、実際には常に使用することをお薦めします:
TroubleTicket?.Status_c = 'Open'
このアドバイスに従うことで、オプションの関連オブジェクトに対するアクセサを操作した場合に、コードがNullPointerException
エラーで失敗することはないことが確実になります。 たとえば、SecondaryAssignee_c
という名前のカスタム動的選択フィールドをActivity
オブジェクトに追加し、その値がオプションであるとします。 つまり、関連する外部キー・フィールドSecondaryAssignee_Id_c
がnullの場合、SecondaryAssignee_Obj_c
という名前の関連アクセサ・フィールドを参照するとnullが返されます。 この場合、現在のアクティビティにセカンダリ割当て先がない場合、試行された割当てが無視されるように、safe-navigation演算子を使用する必要があります。
SecondaryAssignee_Obj_c?.OpenCases_c = caseTotal