You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dynamics 365 v8.2:如何使EntityMetadata.HasActivities属性正常赋值?

在Dynamics 365 Online中获取可关联活动的表列表遇到的问题

问题背景

我需要在Dynamics 365 Online中获取所有可关联活动(Activities)的表列表,原本打算借助Microsoft.Xrm.Sdk.Metadata.EntityMetadata类的HasActivities属性来实现,但实际操作中遇到了异常情况。

尝试的代码及异常结果

我先后使用RetrieveAllEntitiesRequest和RetrieveEntityRequest请求元数据,但返回的HasActivities属性值始终为null:

var req = new RetrieveAllEntitiesRequest
{
    EntityFilters = EntityFilters.Entity 
};
var all = (RetrieveAllEntitiesResponse)svc.Execute(req);

var hasActivities = all.EntityMetadata
    .Where(m => m.HasActivities == true)
    .Select(m => m.LogicalName)
    .OrderBy(n => n)
    .ToList();
// hasActivities的数量为0,因为所有实体的m.HasActivities都是null

var account = all.EntityMetadata.First(m => m.LogicalName == "account");
var req2 = new RetrieveEntityRequest
{
    EntityFilters = EntityFilters.All,
    MetadataId = (Guid)account.MetadataId
};
var accountAll = (RetrieveEntityResponse)svc.Execute(req2);
var accountHasActivites = accountAll.EntityMetadata.HasActivities;
// accountHasActivities仍然是null

相关验证结果

  • XrmToolbox的Metadata Browser显示Account表的HasActivities属性为false
  • 在Maker UI中可以确认,Account表很早就支持关联活动(对应“创建新活动时将此表设为选项”复选框处于勾选状态)
  • 检查本地v8.0(CRM 2016)实例的SQL数据库,MetadataSchema.Entity表以及dbo.EntityView等相关视图中均不存在HasActivities列
  • 微软官方Metadata Browser中也未显示HasActivities属性

核心疑问

  1. 有没有办法通过SDK让EntityMetadata.HasActivities属性正常返回有效值?
  2. Maker UI是如何正确判断并填充“创建新活动时将此表设为选项”复选框状态的?

补充说明

根据Guido的反馈,该问题仅存在于Dynamics 365 Online v8.2(具体版本为v8.2.19.13)中,在v9及以上版本里,HasActivities属性可以正常工作。感谢Guido的分享!


内容的提问来源于stack exchange,提问作者Aron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:05:38