c# - 将现有实体记录(竞争对手)关联到新记录(机会)crm d365 On create message
问题描述
我有一个要求,我需要在多对多关系中将实体“竞争对手”的记录关联到实体“机会”,在创建记录时,它是一个插件,它显示空引用。
代码 :
var opportunity = context.GetInputParameter<Entity>(InputParameters.Target);
var postImage = context.HasPostImage(PostImageName) ? context.GetPostImage(PostImageName) : null;
var competitors = opportunity.GetAttributeValue<string>(postImage,OpportunityDefinition.Columns.Competitors).Substring(9);
var compet = JsonConvert.DeserializeObject<NTNMultiselect>(competitors);
EntityReferenceCollection competitorsReferences = new EntityReferenceCollection();
foreach (var comp in compet.actions)
{
Guid.TryParse(comp.guid, out Guid id);
var competitorRef = new EntityReference(CompetitorDefinition.EntityName, id);
competitorsReferences.Add(competitorRef);
}
//// The relationship to use
var relationship = new Relationship("xxxxxxxxxxxxxxxxxxx");
_service.Associate(opportunity.LogicalName, opportunity.Id, relationship, competitorsReferences);
Console.WriteLine("The entities have been associated.");
}
注册创建,后期操作,同步,有什么想法吗?
解决方案
由于这是一个多对多 (N: N) 关系,因此不要尝试关联记录,而是尝试为“opportunitycompetitors”表创建一条记录。这应该可以帮助您获得关联的两个记录。
推荐阅读
- c# - Visual Studio 不允许为每个循环选择内部变量 [通过鼠标]?
- latex - 从目录导入包乳胶
- python - 无法将数据帧拆分为固定块(每行)
- javascript - 计算两个旋转元素之间的距离
- ssh - 在 VS Code 上连接到远程服务器时如何跳转到 IP 地址?
- tensorflow - 是否可以在 Tensorflow 2.0 中的任何时候强制激活特定数量的神经元?
- algorithm - 使用主定理确定时间复杂度
- java - 在多线程中执行@Handler方法
- javascript - 如何从不同的函数中获取变量、数组、节点列表?
- sql - 获取最近几天不同用户 ID 的计数