function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
force_dev1force_dev1 

MIXED_DML_OPERATIONエラーについて

標題の件について質問がございます。

 

Apex  Data Loader 23.0 を使ってCSVファイルからUserへ複数件登録。

その後、User登録時に起動するトリガーが別のカスタムオブジェクトを登録、という

処理を実装し、実際に試してみたところ

 

・System.DmlException: Insert failed. First exception on row 0; first error: MIXED_DML_OPERATION,

  非設定オブジェクトを更新した後の設定オブジェクト上の DML 操作 (またはその逆) は、許可されていません:

  (登録しようとしたカスタムオブジェクト名)、元のオブジェクト: User: []

 

となってしまいました。

 

原因も対策も分からない状態です。

 

上記の件について何かご存知の方はいらっしゃるでしょうか?

 

よろしくお願い致します。

ikouikou

Apexでは1処理内で設定オブジェクト(たしかロールとか?)と非設定オブジェクト(通常のオブジェクト)への

DML操作が禁止されています。

例えば設定オブジェクトをInsertした後に非設定オブジェクトをUpdateしたりすると、

この例外が発生します。

混ぜるとダメということですね。

 

何が設定オブジェクトに含まれるかは記憶が曖昧なので、詳しくはApexのリファレンスを参照してください。

force_dev1force_dev1

ikou様

 

おかげで設定、非設定オブジェクトについて分かりました。
SalesForceのDB操作は難しいですね。

 

ご回答本当にありがとうございました。