C# 检索记录的Guid并在Dynamics CRM中创建新记录

C# 检索记录的Guid并在Dynamics CRM中创建新记录,c#,dynamics-crm,microsoft-dynamics,dynamics-crm-online,C#,Dynamics Crm,Microsoft Dynamics,Dynamics Crm Online,我想在CRM中创建新的opportunity记录。机会记录将基于此条件创建。它将比较CRM中的帐户和pipedrive中的组织。如果找到匹配的名称,它将直接创建opportunity,否则它将首先创建account,然后创建opportunity 我如何向Opportunity中的“帐户”字段(即查找字段)添加值 下面是我到现在为止写的代码 要从CRM获取帐户记录,请执行以下操作: public EntityCollection GetAccount() { QueryExpressio

我想在CRM中创建新的opportunity记录。机会记录将基于此条件创建。它将比较CRM中的帐户和pipedrive中的组织。如果找到匹配的名称,它将直接创建opportunity,否则它将首先创建account,然后创建opportunity

我如何向Opportunity中的“帐户”字段(即查找字段)添加值

下面是我到现在为止写的代码

要从CRM获取帐户记录,请执行以下操作:

public EntityCollection GetAccount()
{
    QueryExpression query = new QueryExpression { EntityName = "account", ColumnSet = new ColumnSet("name", "accountid") };
    EntityCollection accountname = this.crmService.RetrieveMultiple(query);
    return accountname;
}
对于支票账户是否已存在:

int accountCount = account.Entities.Count;
string[] name = new string[accountCount];     
for (int i = 0; i < accountCount; i++)
{
    name[i] = account.Entities[i].Attributes["name"].ToString();
    if (name[i] == message.Current.org_name || name[i].Contains(message.Current.org_name))
    {
        this.counter++;
        this.flag = 1;
        continue;
    }
}
if (this.counter == 1)
{
    c.CreateOpportunity(message);
}
else if (this.counter > 1)
{
    c.CreateAccount(message);
    c.CreateOpportunity(message);
}
if (this.flag == 0)
{
    c.CreateAccount(message);
    c.CreateOpportunity(message);
}

您必须在
CreateOpportunity
方法中使用如下方法:

opportunity["CustomerId"] = new EntityReference("account", accountId);
“CustomerId”是客户属性的逻辑名称,“account”是帐户实体的逻辑名称,
accountId
应该从创建的帐户记录主键Guid或您拥有的实体集合中匹配的帐户主键传递

Guid accountId = account.Entities[i].Id;

您是否为发布的代码运行了调试器。。?你能告诉我们
name
是在哪里声明的吗?它的数据类型是什么?查看for循环,这行中的
name
似乎是一个单独的
char
`name[i]=account.Entities[i].Attributes[“name”].ToString();`请告诉我们你叫什么名字。。或者声明的位置。@MethodMan我做了更改,您现在可以检查。我在创建记录时得到了不正确的属性值类型System.Int32错误。opportunity[“parentaccountid”]=新的实体引用(“帐户”,accountID)@vidhi该错误可能是关于estimatedvalue的,您调试了吗?是的,该错误是关于estimatedvalue的,但对于guid,我得到的是“预期的非空guid”。
Guid accountId = account.Entities[i].Id;