我使用'name = SampleAccountOne'创建了20条记录。我正在尝试创建一个批处理类,它将给20个记录添加一个给定的联系人。坚持语法和去哪里。非常感谢任何正确方向的帮助。
global class UpdateProjectNameBatch implementsDatabase.Batchable<sObject> {
List<Contact> conList = new conList<Contact>();
String query = 'Select Id,Name FROM Account WHERE Name = \'SampleAccountOne\''
global Database.QueryLocator start(Database.BatchableContext bc){
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext bc,List<sObject> batch){
for(Contact c : conList){
batch.c = 'New Contact Name';
}
}
global void finish(){
}
}
答案 0 :(得分:0)
我相信您正在尝试将单个联系人与多个帐户相关联。此功能在Spring 16'中发布,并通过Salesforce Junction对象 - AccountContactRelation实现。
我假设您已经通过UI启用了此功能,并为此联系人声明了父帐户。
我修改了您的代码,将联系人与所有20个帐户相关联。
global class UpdateProjectNameBatch implements Database.Batchable
<sObject>
{ ID conId = '0037F00000IfCCKQA3'; //Add the contact Id here
List<AccountContactRelation> ListInsertion = new List<AccountContactRelation>();
String query = 'Select Id,Name FROM Account WHERE Name = \'SampleAccountOne\'';
global Database.QueryLocator start(Database.BatchableContext bc)
{
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext bc,List<Account> batch){
for (Account a : batch)
{
AccountContactRelation c = new AccountContactRelation();
c.AccountId = a.id;
c.contactId = conId;
ListInsertion.add(c);
}
Insert ListInsertion;
}
global void finish(Database.BatchableContext bc)
{
//DoNothing.
}
}