【Salesforce】INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id]

【Salesforce】INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id]

SalesforceでInsertをする際に、エラーが発生しました。

INVALID_FIELD_FOR_INSERT_UPDATE, cannot specify Id in an insert call: [Id]

エラーの内容としては「Insertをする際にIDを指定してはいけませんよ」というものですね。

処理のイメージとしてはこんな感じです。

private void copyAccount(Account acc){

    // 取引先をコピーする
    Account copyAcc = acc.clone(true, false);

    insert copyAcc;
}

上のソースを見るとすぐに分かると思いますが、cloneを呼び出した際の引数でIDもコピーしていますね。

修正したソースコードです。

private void copyAccount(Account acc){

    // 取引先をコピーする
    Account copyAcc = acc.clone(false, true);

    insert copyAcc;
}

単純なミスですが、cloneの引数が分からなくなることがあるので気を付けなければいけませんね。

「clone(false, true)」の形で使用されているのを一番よく見る気がします。

この形式が一番使いやすいのでしょうね。

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_methods_system_sobject.htm

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です