在 Dynamics CRM 2013 中创建自定义实体时,您可以选择为该实体启用活动(即在实体配置屏幕中,您可以选中"活动"复选框)。
这允许将活动记录链接到新的自定义实体。
我们有一个用 C# 开发的 CRM 插件,需要检查自定义实体是否启用了"活动",因为插件需要创建链接到自定义实体记录的活动记录。
有没有办法检查实体是否以编程方式启用了"活动"?
RetrieveEntityRequest
来查明是否为活动启用了实体。RetrieveEntityResponse
包含一个EntityMetadata
对象,其中包含OneToManyRelationships
。
当实体与活动指针实体有关系时,将为活动启用该实体。
代码示例:
var metaResponse = (RetrieveEntityResponse)proxy.Execute(new RetrieveEntityRequest
{
EntityFilters = EntityFilters.Relationships,
LogicalName = "account",
RetrieveAsIfPublished = false
});
bool isActivityEnabled =
metaResponse.EntityMetadata.OneToManyRelationships
.Any(r => r.ReferencingEntity == "activitypointer");
不要设置
RetrieveAsIsPublished = true
。当然,设置此属性也可以省略,但为了清楚起见,我保留了它。学分归SimonM,请参阅下面的评论部分。