为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕后森 2023-09-16 16:01:32
我有以下带有以下字段的自定义实体:学生:姓名ID平均的课程:姓名ID参与者(持有特定课程中特定学生的分数):学生(上)课程(上)分数我需要创建一个插件,在添加/更新参与者的分数时,它会相应地更新参与者的学生平均分。所以我的逻辑如下:参与者已创建/更新循环遍历所有参与者,获取给定参与者的学生正在修读的课程数量,并对他们的分数求和。相应地更新参与者的学生平均值。我遇到了一些麻烦:访问所有已保存的参与者。访问参与者学生首先检查所有参与者并更新他们的平均值。获取学生的平均值(这与上一个问题本质上是同一个问题)。任何可以给我一些示例代码来帮助解决上述问题的人都会真正帮助我。提前致谢。
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用查询表达式或使用 FetchXML 来查询插件中的记录service.RetrieveMultiple。例如,您可以使用XrmToolBox FetchXML 构建器构建 fetchxml ,或者只需从 CRM Advanced 查找构建器下载 fetchxml 并在下面的代码示例中使用它。

https://img1.sycdn.imooc.com//6520fed20001e6ec05000186.jpgz

var 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));


查看完整回答
反对 回复 2023-09-16
?
GCT1015

TA贡献1827条经验 获得超4个赞

使用查询表达式:


QueryExpression qe = new QueryExpression();

qe.EntityName = "new_particpiant";


ColumnSet columns = new ColumnSet(

new string[1]

{

    "new_average",

});


ConditionExpression ce = new ConditionExpression

{

    AttributeName = "new_particpiant",

    Operator = ConditionOperator.Equal,

    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)

{

    data = ec.Entities[0];

    string average = Convert.ToString(data.Attributes["new_average"]);

}


查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信