Newer Version Available

This content describes an older version of this product. View Latest

OwnerChangeOptions

Represents actions that can be performed when a record’s owner is changed. Available with these options in API version 35.0 and later.

API Calls

update(), upsert()

Fields

Element Name Type Description
options OwnerChangeOption[]

Represents a flag for a specific action performed when changing a record owner through an update or upsert call.

OwnerChangeOption Fields

Element Name Type Description
execute boolean

If true, the action represented by the type field is performed. If false, the action represented by the type field is skipped.

type enum of a string

Represents the action performed or skipped, according to the given value for the execute field, when changing a record owner during an update or upsert call. The following types can be used.

EnforceNewOwnerHasReadAccess
If true, the record’s new owner must have at least read access on the record. Available in API version 36.0 and later.
TransferOpenActivities
If true, the record’s open activities are transferred to the new owner
TransferNotesAndAttachments
If true, the record’s notes, attachments, and Google Docs are transferred to the new record owner. If false, the original record owner retains ownership.
TransferOtherOpenOpportunities
If true and the record is an account, open opportunities associated with the account and not owned by the current record owner are transferred to the new owner. TransferOwnedOpenOpportunities must be set to execute when executing this option.
TransferOwnedOpenOpportunities
If true and the record is an account, open opportunities associated with the account and owned by the account owner are transferred to the new owner.
TransferContracts
If true and the record is an account, contracts associated with the account and owned by the account owner are transferred to the new owner.
TransferOrders
If true and the record is an account, the draft standalone orders associated with the account and draft orders associated with transferred contracts owned by the account owner are transferred to the new owner.
TransferContacts
If true and the record is a business account, contacts associated with the account are transferred to the new owner.

Sample Code—Java

This sample creates an account, a note, an opportunity, and task for the account, and sets the owner change options so that the note, opportunity and task are transferred to the new owner along with account.

1public void ownerChangeOptionsHeaderSample() {
2     
3    // Create account. Accounts don't transfer activities, notes, or attachments by default
4
5   
6    Account account = new Account();
7    account.setName("Account");
8    com.sforce.soap.enterprise.SaveResult[] sr = connection.create(new com.sforce.soap.enterprise.sobject.SObject[] { account } );
9    String accountId = null;
10
11    if(sr[0].isSuccess()) {
12        System.out.println("Successfully saved the account");
13        accountId = sr[0].getId();
14         
15        // Create a note, a task, and an opportunity for the account
16         
17        Note note = new Note();
18        note.setTitle("Note Title");
19        note.setBody("Note Body");
20        note.setParentId(accountId);
21         
22        Task task = new Task();
23        task.setWhatId(accountId);
24
25	 Opportunity opportunity = new Opportunity();
26        opportunity.setName("Opportunity");
27        opportunity.setStageName("Prospecting");
28        Calendar dt = connection.getServerTimestamp().getTimestamp();
29        dt.add(Calendar.DAY_OF_MONTH, 7);
30        opportunity.setCloseDate(dt);
31        opportunity.setAccountId(accountId);
32
33        sr = connection.create(new com.sforce.soap.enterprise.sobject.SObject[] { note, task, opportunity } );
34
35        if(sr[0].isSuccess()) {
36           System.out.println("Successfully saved the note, task, and opportunity");
37         
38          
39           com.sforce.soap.enterprise.QueryResult qr = connection.query("SELECT Id FROM User WHERE FirstName = 'Jane' AND LastName = 'Doe'");
40           String newOwnerId = qr.getRecords()[0].getId();
41           account.setId(accountId);
42           account.setOwnerId(newOwnerId);
43            
44           // Set owner change options so account's child note, task, and opportunity transfer to new owner
45    	   OwnerChangeOption opt1 = new OwnerChangeOption();
46	       opt1.setExecute(true);
47	       opt1.setType(OwnerChangeOptionType.TransferOwnedOpenOpportunities); // Transfer Open opportunities owned by the account's owner
48
49    	   OwnerChangeOption opt2 = new OwnerChangeOption();
50	       opt2.setExecute(true);
51	       opt2.setType(OwnerChangeOptionType.TransferOpenActivities);
52
53    	   OwnerChangeOption opt3 = new OwnerChangeOption();
54	       opt3.setExecute(true);
55	       opt3.setType(OwnerChangeOptionType.TransferNotesAndAttachments);
56
57    	   connection.setOnwerChangeOptions(new OwnerChangeOption[] {opt1, opt2, opt3});
58           connection.update(new com.sforce.soap.enterprise.sobject.SObject[] { account } );
59            
60           // The account's note, task, and opportunity should be transferred to the new owner.
61        }
62        
63   } else {
64       System.out.println("Account save failed: " + sr[0].getErrors().toString());
65    }
66}