Получить Guid из записи и создания новой записи в Dynamics CRM
Я хочу создать новую запись о возможностях в CRM. Запись о возможности будет создана на основе этого условия. Он будет сравнивать аккаунт в CRM с организацией в pipedrive. Если совпадающее Имя найдено, оно будет напрямую создавать возможность, иначе сначала будет создана учетная запись, а затем возможность.
Как я могу добавить значение в поле Учетная запись, которое является полем поиска в 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);
}
Чтобы создать запись о возможности:
public void CreateOpportunity(Message message)
{
Entity opportunity = new Entity("opportunity");
opportunity["name"] = message.Current.Title;
opportunity["estimatedvalue"] = message.Current.value;
this.crmService.Create(opportunity);
}
1 ответ
Вы должны использовать как ниже в CreateOpportunity
метод:
opportunity["CustomerId"] = new EntityReference("account", accountId);
"CustomerId" - логическое имя атрибута клиента, "account" - логическое имя объекта Account, accountId
следует передать из созданной учетной записи PK Guid или сопоставленной учетной записи PK из имеющейся у вас коллекции сущностей
Guid accountId = account.Entities[i].Id;