首页 > 解决方案 > 将现有实体记录(竞争对手)关联到新记录(机会)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.");
    }

注册创建,后期操作,同步,有什么想法吗?

标签: c#pluginsdynamics-crmcrmdynamics-365

解决方案


由于这是一个多对多 (N: N) 关系,因此不要尝试关联记录,而是尝试为“opportunitycompetitors”表创建一条记录。这应该可以帮助您获得关联的两个记录。


推荐阅读