如何访问 Dynamics 365 插件中的自定义实体字段

我有以下带有以下字段的自定义实体:

学生:

  • 姓名

  • ID

  • 平均的

课程:

  • 姓名

  • ID

参与者(持有特定课程中特定学生的分数):

  • 学生(上)

  • 课程(上)

  • 分数

我需要创建一个插件,在添加/更新参与者的分数时,它会相应地更新参与者的学生平均分。

所以我的逻辑如下:

  1. 参与者已创建/更新

  2. 循环遍历所有参与者,获取给定参与者的学生正在修读的课程数量,并对他们的分数求和。

  3. 相应地更新参与者的学生平均值。

我遇到了一些麻烦:

  • 访问所有已保存的参与者。

  • 访问参与者学生首先检查所有参与者并更新他们的平均值。

  • 获取学生的平均值(这与上一个问题本质上是同一个问题)。

任何可以给我一些示例代码来帮助解决上述问题的人都会真正帮助我。提前致谢。


慕后森
浏览 115回答 2
2回答

素胚勾勒不出你

您可以使用查询表达式或使用 FetchXML 来查询插件中的记录service.RetrieveMultiple。例如,您可以使用XrmToolBox FetchXML 构建器构建 fetchxml ,或者只需从 CRM Advanced 查找构建器下载 fetchxml 并在下面的代码示例中使用它。zvar fetchXml = $@"        <fetch>          <entity name='new_particpiant'>            <attribute name='new_average'/>            <filter type='and'>              <condition attribute='new_particpiant' operator='eq' value='{GUID}'/>            </filter>          </entity>        </fetch>";    EntityCollection entities = service.RetrieveMultiple(new FetchExpression(fetchXml));

GCT1015

使用查询表达式:QueryExpression qe = new QueryExpression();qe.EntityName = "new_particpiant";ColumnSet columns = new ColumnSet(new string[1]{&nbsp; &nbsp; "new_average",});ConditionExpression ce = new ConditionExpression{&nbsp; &nbsp; AttributeName = "new_particpiant",&nbsp; &nbsp; Operator = ConditionOperator.Equal,&nbsp; &nbsp; Values = { 'Your Guid' }};FilterExpression filterQuery = new FilterExpression();filterQuery.FilterOperator = LogicalOperator.And;filterQuery.AddCondition(ce);qe.ColumnSet = columns;EntityCollection ec = service.RetrieveMultiple(qe);Entity data = new Entity();if (ec.Entities.Count > 0){&nbsp; &nbsp; data = ec.Entities[0];&nbsp; &nbsp; string average = Convert.ToString(data.Attributes["new_average"]);}
打开App,查看更多内容
随时随地看视频慕课网APP