【Salesforce】MISSING_ARGUMENT, A single merge request must contain at least 1 records to merge
ApexでDatabase.mergeを利用したマージ処理を作成しました。
マージする対象が複数存在する場合もあるため、このような記述をしました。
1 2 3 4 5 6 7 8 9 | /** * 取引先をマージする * @param master マスタレコード * @param slaveList マージされるレコードのリスト */ public mergeAccount(Account master, List<Account> slaveList){ Database.merge(master, slaveList); } |
この処理の中で、マージする際にエラーが発生しました。
1 | MISSING_ARGUMENT, A single merge request must contain at least 1 records to merge |
slaveListの中身が空になっていたようです。
少なくとも1つは取引先を指定してねというメッセージのようですね。
こんな感じで修正しておきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * 取引先をマージする * @param master マスタレコード * @param slaveList マージされるレコードのリスト */ public mergeAccount(Account master, List<Account> slaveList){ // リストに中身がある場合のみ処理を行う if (slaveList.size() > 0 ){ Database.merge(master, slaveList); } } |
中身の確認をする場合はisEmptyの方がかっこいいのでしょうか。
使い分けができていなかったりします。
No comments.