简体   繁体   中英

CRM 4.0 - extracting contact data from email address

I'm trying to use an email address to retrieve contact data. I'm already using this but i'm wondering how to extend it so that custom fields can also be returned:

    public ContactInfo GetContactByEmail(string email, CrmService service)
    {
        QueryExpression query = new QueryExpression();

        query.EntityName = "contact";
        ColumnSet columns = new ColumnSet();
        columns.Attributes.Add("contactid");

        query.ColumnSet = columns;
        query.Criteria = new FilterExpression();
        query.Criteria.FilterOperator = LogicalOperator.And; 

        ConditionExpression condition = new ConditionExpression();
        condition.AttributeName = "emailaddress1";
        condition.Operator = ConditionOperator.Equal;
        condition.Values = new object[] { email.Trim() };
        query.Criteria.Conditions.Add(condition);

        RetrieveMultipleRequest request = new RetrieveMultipleRequest();
        request.Query = query;

        ContactInfo contactInfo = new ContactInfo();

        RetrieveMultipleResponse response = null;
        response = (RetrieveMultipleResponse)service.Execute(request);
        foreach (contact cont in response.BusinessEntityCollection.BusinessEntities)
        {
            contactInfo.contactid = cont.contactid.Value;

           //Would also like to retrieve a custom attribute called ContactType (type int)
        }

        return contactInfo;
    }

Any help or examples would be really appreciated. Thank you.

You just need to add additional values to the ColumnSet , eg

ColumnSet columns = new ColumnSet();
columns.Attributes.Add("new_contacttype");

Note: The name here should be the schema and not the display.

Examples:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM