【Salesforce】MISSING_ARGUMENT, A single merge request must contain at least 1 records to merge

【Salesforce】MISSING_ARGUMENT, A single merge request must contain at least 1 records to merge

ApexでDatabase.mergeを利用したマージ処理を作成しました。

マージする対象が複数存在する場合もあるため、このような記述をしました。

/**
 * 取引先をマージする
 * @param master マスタレコード
 * @param slaveList マージされるレコードのリスト
 */
public mergeAccount(Account master, List<Account> slaveList){

    Database.merge(master, slaveList);
}

この処理の中で、マージする際にエラーが発生しました。

MISSING_ARGUMENT, A single merge request must contain at least 1 records to merge

slaveListの中身が空になっていたようです。

少なくとも1つは取引先を指定してねというメッセージのようですね。

こんな感じで修正しておきました。

/**
 * 取引先をマージする
 * @param master マスタレコード
 * @param slaveList マージされるレコードのリスト
 */
public mergeAccount(Account master, List<Account> slaveList){

    // リストに中身がある場合のみ処理を行う
    if(slaveList.size() > 0){
        
        Database.merge(master, slaveList);
    }
}

中身の確認をする場合はisEmptyの方がかっこいいのでしょうか。

使い分けができていなかったりします。

No comments.

コメントを残す

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