Salesforce 如何使用apex控制器中的查找字段将数据插入自定义对象
我有一个自定义对象Salesforce 如何使用apex控制器中的查找字段将数据插入自定义对象,salesforce,visualforce,apex,Salesforce,Visualforce,Apex,我有一个自定义对象MyCustomObj\uu c,它有一个名为“ContactData”的字段 我正在尝试使用以下apex方法将记录插入到自定义对象中。它给出了一个错误: Invalid ID 联系人列表中已存在值Hari 顶点代码: public static String saveData(){ MyCustomObj__c newObj = new MyCustomObj__c(); newObj.contactData__c = 'Hari'; insert
MyCustomObj\uu c
,它有一个名为“ContactData”的字段
我正在尝试使用以下apex方法将记录插入到自定义对象中。它给出了一个错误:
Invalid ID
联系人列表中已存在值Hari
顶点代码:
public static String saveData(){
MyCustomObj__c newObj = new MyCustomObj__c();
newObj.contactData__c = 'Hari';
insert newObj;
return "success";
}
static void testInsert(){
User testUser = new User(username = 'joebieber@hotmail.com',
firstname = 'joe', lastname = 'bieber',
email = 'joebieber@hotmail.com', Alias = 'jo',
CommunityNickname = 'jo',
TimeZoneSidKey = 'America/New_York', LocaleSidKey = 'en_US',
EmailEncodingKey = 'ISO-8859-1',
ProfileId = '00e6000000167RPAAY',
LanguageLocaleKey = 'en_US');
insert testUser;
List<SObject> sos = Database.query('select username from User');
List<User> users= new List<User>();
if( sos != null ){
for(SObject s : sos){
if (((User)s).get('username') == 'joebieber@hotmail.com')
Utils.log('' + ((User)s).get('username') );
}
}
}
如何插入行?您应该传递联系人记录“Hari”的ID
public static String saveData(){
MyCustomObj__c newObj = new MyCustomObj__c();
newObj.contactData__c = [SELECT Id
FROM Contact
WHERE Name ='Hari' LIMIT 1].Id;
insert newObj;
return "success";
}
当然,这里应该尽量避免使用SOQL,这只是一个示例。将数据插入对象的Apex代码:
public static String saveData(){
MyCustomObj__c newObj = new MyCustomObj__c();
newObj.contactData__c = 'Hari';
insert newObj;
return "success";
}
static void testInsert(){
User testUser = new User(username = 'joebieber@hotmail.com',
firstname = 'joe', lastname = 'bieber',
email = 'joebieber@hotmail.com', Alias = 'jo',
CommunityNickname = 'jo',
TimeZoneSidKey = 'America/New_York', LocaleSidKey = 'en_US',
EmailEncodingKey = 'ISO-8859-1',
ProfileId = '00e6000000167RPAAY',
LanguageLocaleKey = 'en_US');
insert testUser;
List<SObject> sos = Database.query('select username from User');
List<User> users= new List<User>();
if( sos != null ){
for(SObject s : sos){
if (((User)s).get('username') == 'joebieber@hotmail.com')
Utils.log('' + ((User)s).get('username') );
}
}
}
static void testInsert(){
用户testUser=新用户(用户名=)joebieber@hotmail.com',
firstname='joe',lastname='bieber',
电子邮件joebieber@hotmail.com,别名='jo',
社区昵称='jo',
TimeZoneSidKey='美国/纽约',LocaleSidKey='美国',
EmailEncodingKey='ISO-8859-1',
ProfileId='00E600000167RPAAY',
LanguageLocaleKey='en_US');
插入testUser;
List sos=Database.query('select username from User');
列表用户=新列表();
如果(sos!=null){
用于(SObject s:sos){
if(((用户)s).get('username')='joebieber@hotmail.com')
Utils.log(“”+((用户)s.get('username');
}
}
}
应该打印您刚才添加的用户的用户名。我们可以使用数据加载器将数据移动到数据库中进行查找字段
GuruHi@Hari,Salesforce.stackexchange.com上有一个专门针对Salesforce的新stackexchange站点。来加入那边的社区吧!:)感谢您抽出时间提供答案。正是因为像你这样乐于助人的同龄人,我们才能作为一个社区一起学习。