ModifySObject
ModifySObject implements SObjectFunction and modifies records by setting field values. Field values can be defined through a fluent interface.
Typically used with forEach() on SObjectCollection and SObjectStream.
setField
Defines the value of a field. Returns this for method chaining.
Signature
ModifySObject setField(String targetFieldName, Object value)
ModifySObject setField(Schema.SObjectField field, Object value)
Example
// Using field token
ModifySObject markAsHot = Fn.Modify
.setField(Account.Status__c, 'Active')
.setField(Account.Rating, 'Hot');
// Using string field name
ModifySObject setIndustry = Fn.Modify.setField('Industry', 'Technology');
// Apply to collection
accounts.forEach(markAsHot);
setFields
Defines the value of multiple fields at once. Returns this for method chaining.
Signature
ModifySObject setFields(Map<Schema.SObjectField, Object> fieldValues)
ModifySObject setFields(SObject prototype)
Example
// Using Map
Map<Schema.SObjectField, Object> updates = new Map<Schema.SObjectField, Object>{
Account.Status__c => 'Active',
Account.Rating => 'Hot'
};
ModifySObject activateAccounts = Fn.Modify.setFields(updates);
// Using prototype SObject
Account prototype = new Account(Status__c = 'Active', Rating = 'Hot');
ModifySObject applyTemplate = Fn.Modify.setFields(prototype);