TriggerHandler.Record
The record passed to every handler method. It wraps the new and old versions of one trigger record together with the enriched parent records.
Predicates read the new record. In delete contexts, where there is no new record, they read the old one.
Accessors
getId
Id getId()Id of the record. null in before insert.
getNewSObject
SObject getNewSObject()The Trigger.new record. null in delete contexts. Writable in before contexts.
Contact contact = (Contact) record.getNewSObject();getOldSObject
SObject getOldSObject()The Trigger.old record. null in insert and undelete contexts.
getNewRelated
SObject getNewRelated(String relationshipName)Parent record enriched for the new version of the record. Requires NewRecordEnrichment. Returns null when the lookup is empty or the parent was not declared.
Account account = (Account) record.getNewRelated('Account');getOldRelated
SObject getOldRelated(String relationshipName)Parent record enriched for the old version of the record. Requires OldRecordEnrichment.
put
Record put(SObjectField field, Object value)Sets a field on the new record. Use it in before contexts. Returns the record for chaining.
record.put(Contact.Description, 'Populated by trigger').put(Contact.LeadSource, 'Web');Record Type
isRecordTypeEqual
Boolean isRecordTypeEqual(String recordTypeDeveloperName)isRecordTypeNotEqual
Boolean isRecordTypeNotEqual(String recordTypeDeveloperName)Compare RecordTypeId with the record type resolved by developer name from the object describe.
record.isRecordTypeEqual('Business_Contact')Value Predicates
equals
Boolean equals(SObjectField field, Object value)doesNotEqual
Boolean doesNotEqual(SObjectField field, Object value)contains
Boolean contains(SObjectField field, String value)false when the field is null.
doesNotContain
Boolean doesNotContain(SObjectField field, String value)true when the field is null.
startsWith
Boolean startsWith(SObjectField field, String value)endsWith
Boolean endsWith(SObjectField field, String value)isNull
Boolean isNull(SObjectField field)isNotNull
Boolean isNotNull(SObjectField field)isEmpty
Boolean isEmpty(SObjectField field)true when the field is null or its string value is empty.
isNotEmpty
Boolean isNotEmpty(SObjectField field)isBlank
Boolean isBlank(SObjectField field)true when the field is null, empty or whitespace only.
isNotBlank
Boolean isNotBlank(SObjectField field)isTrue
Boolean isTrue(SObjectField field)isFalse
Boolean isFalse(SObjectField field)Comparison Predicates
Available for Integer, Long, Double, Decimal, Date and DateTime values. All return false when the field is null.
greaterThan
Boolean greaterThan(SObjectField field, Integer value)
Boolean greaterThan(SObjectField field, Long value)
Boolean greaterThan(SObjectField field, Double value)
Boolean greaterThan(SObjectField field, Decimal value)
Boolean greaterThan(SObjectField field, Date value)
Boolean greaterThan(SObjectField field, DateTime value)greaterThanOrEqualTo
Boolean greaterThanOrEqualTo(SObjectField field, Integer value)
Boolean greaterThanOrEqualTo(SObjectField field, Long value)
Boolean greaterThanOrEqualTo(SObjectField field, Double value)
Boolean greaterThanOrEqualTo(SObjectField field, Decimal value)
Boolean greaterThanOrEqualTo(SObjectField field, Date value)
Boolean greaterThanOrEqualTo(SObjectField field, DateTime value)lessThan
Boolean lessThan(SObjectField field, Integer value)
Boolean lessThan(SObjectField field, Double value)
Boolean lessThan(SObjectField field, Decimal value)
Boolean lessThan(SObjectField field, Date value)
Boolean lessThan(SObjectField field, DateTime value)lessThanOrEqualTo
Boolean lessThanOrEqualTo(SObjectField field, Integer value)
Boolean lessThanOrEqualTo(SObjectField field, Double value)
Boolean lessThanOrEqualTo(SObjectField field, Decimal value)
Boolean lessThanOrEqualTo(SObjectField field, Date value)
Boolean lessThanOrEqualTo(SObjectField field, DateTime value)record.greaterThan(Opportunity.Amount, 10000)
record.lessThan(Opportunity.CloseDate, Date.today())Change Predicates
Compare the new and old record. Use them in before update and after update only.
isChanged
Boolean isChanged(SObjectField field)isAnyChanged
Boolean isAnyChanged(SObjectField field1, SObjectField field2)
Boolean isAnyChanged(SObjectField field1, SObjectField field2, SObjectField field3)
Boolean isAnyChanged(SObjectField field1, SObjectField field2, SObjectField field3, SObjectField field4)
Boolean isAnyChanged(SObjectField field1, SObjectField field2, SObjectField field3, SObjectField field4, SObjectField field5)
Boolean isAnyChanged(Iterable<SObjectField> fields)areAllChanged
Boolean areAllChanged(SObjectField field1, SObjectField field2)
Boolean areAllChanged(SObjectField field1, SObjectField field2, SObjectField field3)
Boolean areAllChanged(SObjectField field1, SObjectField field2, SObjectField field3, SObjectField field4)
Boolean areAllChanged(SObjectField field1, SObjectField field2, SObjectField field3, SObjectField field4, SObjectField field5)
Boolean areAllChanged(Iterable<SObjectField> fields)isChangedTo
Boolean isChangedTo(SObjectField field, Object expectedValue)New value equals expectedValue and old value did not.
isChangedFrom
Boolean isChangedFrom(SObjectField field, Object priorValue)Old value equals priorValue and new value does not.
isChangedFromTo
Boolean isChangedFromTo(SObjectField field, Object fromValue, Object toValue)Old value equals fromValue and new value equals toValue.
record.isChangedFromTo(Case.Status, 'New', 'Closed')