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