Skip to main content

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);