簡體   English   中英

如何使用Dynamics CRM SDK搜索潛在客戶或帳戶?

[英]How do I search for lead or account using Dynamics CRM SDK?

有人可以提供一個示例代碼,用於通過CRM SDK中的電子郵件檢索潛在客戶嗎? 有沒有像這樣工作的內置功能?

Guid leadID = someLeadManager.GetByEmail(email);

假設您已獲得該服務 ,則可以執行以下查詢。

private Guid GetGuidByEmail(String email)
{
  QueryExpression query = new QueryExpression
  {
    EntityName = "lead",
    ColumnSet = new ColumnSet("emailaddress1"),
    Criteria = new FilterExpression
    {
      Filters =
      {
        new FilterExpression
        {
          Conditions =
          {
            new ConditionExpression(
              "emailaddress1", ConditionOperator.Equals, email)
          }
        }
      }
    }
  };

  Entity entity = service.RetrieveMultiple(query).Entities.FirstOrDefault();
  if(entity != null)
    return entity.Id;
  return Guid.Empty;
}

現在,如果您需要對部分電子郵件的匹配進行過濾,則查詢會變短,相反,您可以使用LINQ進行選擇。

private IEnumerable<Guid> GetGuidsByEmail(String email)
{
  QueryExpression query = new QueryExpression
  {
    EntityName = "lead",
    ColumnSet = new ColumnSet("emailaddress1")
  };
  IEnumerable<Entity> entities = service.RetrieveMultiple(query).Entities;

  return entities
    .Where(element => element.Contains("emailaddress1"))
      .Where(element => Regex.IsMatch(element["emailaddress1"], email))
        .Select(element => element.Id);
}

您想要檢索具有特定郵件的潛在客戶嗎? 在這種情況下可以做這樣的事情。

private EntityCollection GetLeadsWithEmail(
  IOrganizationService service, String wantedEmailAddress)
{
  QueryExpression query = new QueryExpression();
  query.EntityName = "lead";
  // the columns you want
  query.ColumnSet = new ColumnSet() { AllColumns = true };

  query.Criteria = new FilterExpression();
  query.Criteria.FilterOperator = LogicalOperator.And;
  query.Criteria.Conditions.Add(new ConditionExpression(
    "emailaddress1", ConditionOperator.Equal, wantedEmailAddress));
  return service.RetrieveMultiple(query);
}

這將檢索在emailaddress1字段中具有wantedEmailAddress的所有潛在客戶。 然后,您可以檢查是否有任何匹配來自您的呼叫;

EntityCollection leadCollection = GetLeadsWithEmail(
  service, "someone@example.com");
Entity entity = leadCollection[0];

您可能應首先使用leadCollection.Entities.Count檢查集合中的實體數量,然后從那里繼續。

這是 MSDN 的一個示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM