将帐户链接到活动CRM
本文关键字:活动 CRM 链接 | 更新日期: 2023-09-27 18:13:38
我正在编写从数据库中提取并将信息填充为活动的代码,我成功地将字段从数据库添加到描述和主题字段,但我似乎无法将其链接到帐户?这是我尝试过的;
foreach (var phoneNumber in phoneNumbers)
{
var potentialMatches = _xrm.AccountSet.Where(account => account.Address1_Telephone2.Equals(phoneNumbers)).ToList();
if (potentialMatches.Count > 0)
{
var accountMatch = potentialMatches.First();
var actualCRMAccount = (Account) _xrm.Retrieve("Account", accountMatch.Id, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
if (actualCRMAccount != null)
{
//Is this correct way?
new ActivityParty()
{
PartyId = new EntityReference(Account.EntityLogicalName, actualCRMAccount.Id)
};
activityParties.Add(new ActivityParty() {Id = actualCRMAccount.Id});
}
}
}
//RegardingObjectId not working
//RegardingObjectId = new EntityReference(Account.EntityLogicalName, recordRow.Cells[0].Value.ToString);
newMsg.To = activityParties;
newMsg.Description = recordRow.Cells[0].Value.ToString();
newMsg.Subject = recordRow.Cells[2].Value.ToString();
_xrm.Create(newMsg);
编辑1:当我现在运行它时,我得到这个警告
未处理的System.ServiceModel类型异常。Microsoft.Xrm.Sdk.dll中出现FaultException ' 1' .
附加信息:在元数据缓存中找不到名称= 'Account'的实体。
这段代码抛出了警告
var actualCRMAccount = (Account)_xrm.Retrieve("Account", accountMatch.Id, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
为什么会这样?
编辑2:我将Account替换为Account,见下文。
var actualCRMAccount = (Account)_xrm.Retrieve("account", accountMatch.Id, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
编辑3:我现在试着找线索。但是当我添加这段代码时
newMsg.RegardingObjectId = activityParties;
我得到这个错误。
不能隐式转换类型"System.Collections.Generic"。列出"to"Microsoft.Xrm.Client。CrmEntityReference '
如何给RegardingObjectId
赋值
感谢大家的帮助。
问题是您通过以下方式添加帐户:new ActivityParty() {Id = actualCRMAccount。Id}
要定义一个新的ActivityParty,您必须设置PartyId属性,它是所选类型的实体引用。
new ActivityParty() { PartyId = new EntityReference(Account.EntityLogicalName,actualCRMAccount.Id) }
。
下面一行有一个错别字:
var potentialMatches = _xrm.AccountSet.Where(account => account.Address1_Telephone2.Equals(phoneNumbers)).ToList();
.Equals(phoneNumbers)
应为:.Equals(phoneNumber)
然后在检索帐户记录后将代码替换为:
var actualCRMAccount = (Account)_xrm.Retrieve("Account", accountMatch.Id, new Microsoft.Xrm.Sdk.Query.ColumnSet(true));
if (actualCRMAccount != null)
{
activityParties.Add(new ActivityParty { PartyId = actualCRMAccount.ToEntityReference() });
}