所以这就是事情:我创建了一个自定义实体“new_ligneContrat”,它具有一对多 与另一个自定义实体“new_produit”的关系。
这是目标:当创建“new_ligneContrat”的新记录时,它必须在它之前获得“new_ligneContrat”的“new_produit”记录。该插件基于“new_ligneContrat。
我想知道FetchExpression + last()是否可以做到,但是现在我还没有找到合适的解决方案......
提前致谢!
编辑1:我们决定采用n到n的关系,所以我做了以下事情:
QueryExpression query = new QueryExpression();
query.EntityName = "new_produit"; query.ColumnSet = new ColumnSet("new_produitid"); Relationship relationship = new Relationship(); relationship.SchemaName = "new_new_lignecontrat_new_produit"; RelationshipQueryCollection relatedEntity = new RelationshipQueryCollection(); relatedEntity.Add(relationship, query); RetrieveRequest request = new RetrieveRequest(); request.RelatedEntitiesQuery = relatedEntity; request.ColumnSet = new ColumnSet("new_lignecontratid"); request.Target = new EntityReference { Id = first.Id, LogicalName = first.LogicalName }; RetrieveResponse response = (RetrieveResponse)service.Execute(request);
if (((DataCollection<Relationship, EntityCollection>)(((RelatedEntityCollection)(response.Entity.RelatedEntities)))).Contains(new
> Relationship("new_new_lignecontrat_new_produit")) &&
> ((DataCollection<Relationship,
> EntityCollection>)(((RelatedEntityCollection)(response.Entity.RelatedEntities))))[new
> Relationship("new_new_lignecontrat_new_produit")].Entities.Count > 0)
> {
> response.Results.Remove("new_produitid");
> response["new_lignecontratid"] = new EntityReference(target.LogicalName, target.Id);
这是对的吗?
答案 0 :(得分:0)
根据插件运行的插件执行的哪个阶段(预验证,操作前/后),一个选项是执行依赖于当前时间或{{的LINQ查询1}}新CreatedOn
记录的属性,并调用new_ligneContrat
方法获取最新的First
记录。我在下面列了一个模型。
new_produit