SalesforceのMIXED_DML_OPERATIONエラー(設定と非設定オブジェクト)の解決策
- Jul
- 21
- Posted by Lin
- Posted in APEX, Salesforce
設定(Setup)と非設定(non-setup)オブジェクトを1つトランザクションで同時にDML操作をかけると、下記のエラーが発生します。
下記のサンプルコードでこの現象が再現できます。
設定オブジェクトというのは、組織のレコードへのユーザのアクセスに影響を与えるものであります。
適切なアクセスレベル権限で操作が実行されるため、こうした種別のsObjectは別のトランザクションに挿入または更新する必要があります。
下記は幾つ例のSetupオブジェクトです:
・ObjectPermissions
・PermissionSet
・PermissionSetAssignment
・QueueSObject
・Territory
・UserTerritory
・UserRole
・User
fields: UserRoleId, IsActive, ForecastEnabled, IsPortalEnabled, Username, ProfileId
例えば@futureメッソドの使用。
Happy Coding!
参照 :
DML 操作で同時に使用できない sObject
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: []
下記のサンプルコードでこの現象が再現できます。
設定(Setup)オブジェクト
では、そもそもSalesforceの設定(Setup)オブジェクトは何なんでしょうか?設定オブジェクトというのは、組織のレコードへのユーザのアクセスに影響を与えるものであります。
適切なアクセスレベル権限で操作が実行されるため、こうした種別のsObjectは別のトランザクションに挿入または更新する必要があります。
下記は幾つ例のSetupオブジェクトです:
・ObjectPermissions
・PermissionSet
・PermissionSetAssignment
・QueueSObject
・Territory
・UserTerritory
・UserRole
・User
fields: UserRoleId, IsActive, ForecastEnabled, IsPortalEnabled, Username, ProfileId
ソリューション
このようなエラーを解消するには、別のトランザクションで実装すればいいです。例えば@futureメッソドの使用。
Happy Coding!
参照 :
DML 操作で同時に使用できない sObject
Post Tagged with @future, DML, IsActive, MIXED_DML_OPERATION, non-setup object, setup object, User, UserRole
最近の投稿
- Salesforce DevTools リリースノート (version 3.10.0) – Lightning上項目一括編集
- Salesforce DevTools リリースノート (version 3.9.0) – 項目検索、SOQLクエリエディター
- Salesforce DevTools リリースノート (version 3.8.0)
- Salesforce DevTools利用者が10,000名達成!ありがとう!
- Lightning ComponentのApex側とデータ通信にPromiseを活用しよう
Top Posts
- Salesforce DevTools – 5万人以上愛用!強力なSalesforce開発者ツール - 230.8K views
- Date format && DateTime format - 212.7K views
- Salesforce一括編集 (Chrome拡張機能) -標準リストビューで一括新規, 更新, コピー, 削除, ClassicとLightning両方使える! - 162.7K views
- スケージュール可能なApex一括処理バッチの実装 - 128.3K views
- Sublime Text 3でSalesforceの爆速開発環境を構築 - 123.6K views
カテゴリー
- APEX
- アプリ
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- 交流会
- 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
コメントを投稿するにはログインしてください。