【Salesforce】リードの取引開始をApexで行う
標準オブジェクトのリードには、取引の開始という機能がありますね。
Apexでも同じ動きを行うメソッドがあるようです。
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_dml_convertLead.htm
Database.LeadConvertというクラスのインスタンスで取引の開始に関する値を設定し、Database.convertLeadで処理を行うようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Lead myLead; Database.LeadConvert lc; Database.LeadConvertResult lcr; // リードを作成する myLead = new Lead(LastName = 'Fry', Company='Fry And Sons'); insert myLead; // 取引の開始を行うリードの設定を行う lc = new Database.LeadConvert(); // 対象のリードを設定する lc.setLeadId(myLead.id); // 処理後のリードステータスを設定する lc.setConvertedStatus('見込みあり'); // 取引の開始を行う lcr = Database.convertLead(lc); // 処理結果の確認を行う System.assert(lcr.isSuccess()); |
必須なのは、処理を行うリードの設定と処理後のステータスです。
他にも、マージする取引先や取引先責任者の設定、商談の設定、メールの設定なんかもあります。
上の例では1件のみですが、100件までなら一括で処理できるようです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Lead myLead; Database.LeadConvert lc; List<Database.LeadConvert> lcList; List<Database.LeadConvertResult> lcrList; // リードを作成する myLead = new Lead(LastName = 'Fry', Company='Fry And Sons'); insert myLead; // 取引の開始を行うリードの設定を行う lc = new Database.LeadConvert(); // 対象のリードを設定する lc.setLeadId(myLead.id); // 処理後のリードステータスを設定する lc.setConvertedStatus('見込みあり'); // リストに追加する lcList = new List<Database.LeadConvert>(); lcList.add(lc); // 取引の開始を行う lcrList= Database.convertLead(lcList); // 処理結果の確認を行う for(Database.LeadConvertResult lcr : lcrList){ System.assert(lcr.isSuccess()); } |
No comments.