セールスフォースお助け隊ブログ | Salesforce
セールスフォース開発者のブログRSS
[Apex]オブジェクトのコピーを簡単に作成する方法は?

[Apex]オブジェクトのコピーを簡単に作成する方法は?

2011年1月20日 10:00
みなさんこんにちは。
salesforceお助け隊の加藤です。

今回は、ブジェクトのコピーを簡単に作成する方法をご紹介します。

オブジェクトのcloneメソッドを使えば、オブジェクトのコピーを簡単に作成することができます。
別のレコードからそのまま情報をコピーしたい場合に便利です。

例)
Account originalAccount = [SELECT id, name FROM Account LIMIT 1];
Account clonalAccount = new Account();
clonalAccount = originalAccount.clone(false,true);
insert clonalAccount;

cloneメソッドは、引数に2つのBoolean型変数をとります。
既存のレコードをコピーして、新しいレコードを作成したい場合は、
第1引数=false
第2引数=true
の組み合わせにします。

第1引数のBoolean型変数は、idをコピーするかどうかを指定します。
・true:idをコピーします
・false:idをコピーしません

idをコピーしてしまうと、コピー元のレコードとidが重複してしまい、
レコード追加時にエラーが発生してしまうので、
既存のレコードをコピーして、新しいレコードを作成したい場合は、
第1引数は「false」にしてください。


第2引数のBoolean型変数は、新しいオブジェクトとしてクローン作成するかどうかを指定します。
・true:作成元のオブジェクトの参照は引き継がず、値だけをコピーして新しいオブジェクトを作成する
・false:作成元のオブジェクトの参照を引き継いで新しいオブジェクトを作成する

作成元のオブジェクトの参照を引き継いで新しいオブジェクトを作成した場合、
新しいオブジェクトの値を変更すると作成元のオブジェクトの値も変更されてしまいます。


「セールスフォースお助け隊ブログ」へのコメントやご意見等ありましたら
ファンページまでお願いします。  Facebookのファンページ

Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ

← 前のエントリー     次のエントリー →

顧客管理システム Salesforce CRM