To fix MIXED_DML_OPERATION error(setup and non-setup objects) in Salesforce
- Jul
- 21
- Posted by Lin
- Posted in APEX, Salesforce
The following error will be occured if you’re trying to perform DML operation on both setup and non-setup objects in the same transation.
` MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): CustomObject__c, original object: User: [] `
Here is the sample code that can explain this case.
Setup objects are the sObjects that affect the user’s access to records in the organization. For operations with correct access-level permissions, you must insert or update these types of sObject in a different transaction.
Here are examples of the Setup Objects:
・ObjectPermissions
・PermissionSet
・PermissionSetAssignment
・QueueSObject
・Territory
・UserTerritory
・UserRole
・User
fields: UserRoleId, IsActive, ForecastEnabled, IsPortalEnabled, Username, ProfileId
Happy Coding!
Reference :
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dml_non_mix_sobjects.htm
` MIXED_DML_OPERATION, DML operation on setup object is not permitted after you have updated a non-setup object (or vice versa): CustomObject__c, original object: User: [] `
Here is the sample code that can explain this case.
Setup objects
So, which objects are setup objects in Salesforce?Setup objects are the sObjects that affect the user’s access to records in the organization. For operations with correct access-level permissions, you must insert or update these types of sObject in a different transaction.
Here are examples of the Setup Objects:
・ObjectPermissions
・PermissionSet
・PermissionSetAssignment
・QueueSObject
・Territory
・UserTerritory
・UserRole
・User
fields: UserRoleId, IsActive, ForecastEnabled, IsPortalEnabled, Username, ProfileId
Solution
To fix this kind of error, you can perform DML operations on more than one transation, e.g. using a Future method.Happy Coding!
Reference :
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dml_non_mix_sobjects.htm
Post Tagged with @future, DML, IsActive, MIXED_DML_OPERATION, non-setup object, setup object, User, UserRole
Recent Posts
- Salesforce DevTools Release Notes (version 3.10.0) – mass edit custom fields on lightning
- Salesforce DevTools Release Notes (version 3.9.0) – Object Fields, SOQL Query Editor
- Salesforce DevTools Release Notes (version 3.8.0)
- Salesforce DevTools JUST HIT 10,000 USERS! THANK YOU!
- Using Promise for Apex Server-Side request in Lightning Component
Top Posts
- Salesforce DevTools – Powerful Salesforce developer tools, loved by over 50K developers - 226.8K views
- Date format and DateTime format - 209.9K views
- Salesforce Mass Editor (Chrome Extension) – Mass create, mass update, mass clone, mass delete on any list view. Support for both Classic and Lightning! - 161.1K views
- Writing a Schedulable Batch Apex in Salesforce - 124.9K views
- Setup an awesome Salesforce developer environment with Sublime Text 3 - 123.1K views
Categories
- APEX
- Apps
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- Event
- Heroku
- iOS & Object-c
- Lightnint Component
- Linux & Mac OS
- Metadata API
- Node.js
- Open Source
- Other
- PHP Framework
- Release Notes
- REST API
- Salesforce
- Salesforce DevTools
- Salesforce DX
- SOQL
- Tooling API
- Unit Tests
- Validation Rule
- Visualforce
- WordPress
You must be logged in to post a comment.