使用现有帐户创建时关联用户

时间:2013-08-27 15:49:43

标签: apex-code

我有一个代码,用于检查用户的inquery数据库a, 如果用户不存在,那么代码将在Contact中创建一个新用户,

以下只是代码的一部分:

newcontact = [SELECT Id, FirstName FROM Contact WHERE Contact.Email =inquery.email__c]; 

      if(newcontact.size() == 0) {
        Account[] aa = [SELECT Id FROM Account WHERE Name = :inquery.Institution__c];

      contact = new Contact();
     contact.FirstName  = inquery.First_Name__c;
     contact.LastName   = inquery.Last_Name__c;
     contact.Email      = inquery.email__c;
      contact.AccountId  = aa.Id;
      try {
     insert contact; // inserts the new record into the database
   } catch (DMLException e) {
     ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error creating new contact'));
     return null;
   }

我正在尝试将该用户与现有帐户相关联?

但是以下行给了我一个错误:

contact.AccountId  = aa.Id;

哪个是

 Initial term of field expression must be a concrete SObject: LIST<Account> at line 

aa.size()返回1,应该如此 由于该帐户存在,

有人可以告诉我有什么不对吗?

由于

2 个答案:

答案 0 :(得分:1)

如果您的查询返回0行,则此行contact.AccountId = aa.get(0).Id;将失败。确保将代码包装在if (aa.size() > 0)子句中,以确保在所有情况下都能正确执行。

答案 1 :(得分:0)

好的我修好了,如下:

contact.AccountId = aa.get(0).Id;

最佳