【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.