CRM 2013插件:在新创建的帐户上建立新的关系
本文关键字:2013 关系 建立 创建 新创建 CRM 插件 | 更新日期: 2023-09-27 18:09:42
我正在为CRM 2013(本地)创建一个插件。我的要求是这样的:
- 当一个自定义实体"Contract"创建时,触发插件。
- Contract与Quote实体的关系为"1:1"。
- Quote与自定义实体"Property"的关系为1:N。
- 对于Quote的每个属性,创建新的Account记录
- 将新创建的Account记录链接到合同。Contract到Account的关系是1到n
我得到了所有的工作,但一直有问题与#5。由于某些原因,插件抛出一个错误,Account ID不存在。
下面是我的代码:
foreach ("**Property records found in Quote**")
{
var accountEntity = new Entity();
accountEntity = new Entity("account");
if (record.Attributes.Contains("name"))
{
accountEntity["name"] = record.Attributes["propertyname"];
}
else throw new InvalidPluginExecutionException(OperationStatus.Failed, "New Property Name is needed.");
service.Create(accountEntity);
var referenceCollection = new EntityReferenceCollection();
var relatedEntity = new EntityReference
{
Id = record.Id,
LogicalName = record.LogicalName
};
referenceCollection.Add(relatedEntity);
//The relationship schema name in CRM you are using to associate the entities.
var relRelationship = new Relationship
{
SchemaName = "new_new_contract_account"
};
service.Associate("account", ContractId, relRelationship, referenceCollection);
}
存储新创建帐户的id:
var accountid = service.Create(accountEntity);
relatedEntity object必须设置以下属性:
var relatedEntity = new EntityReference
{
Id = accountid, /*the newly created account's id*/
LogicalName = "account"
};
替换服务。将行与
关联service.Associate("new_contract", ContractId, relRelationship, referenceCollection);