是否可以检查实体是否是"活动"以编程方式在Dynamics CRM中启用?

时间:2015-04-21 09:34:18

标签: c# dynamics-crm-2011 dynamics-crm dynamics-crm-2013

在Dynamics CRM 2013中创建自定义实体时,您可以选择为该实体启用“活动”(即,在“实体”配置屏幕中,您可以选中“活动”复选框)。

这允许将活动记录链接到新的自定义实体。

我们有一个用C#开发的CRM插件,需要检查自定义实体是否启用了“活动”,因为插件需要创建链接到自定义实体记录的活动记录。

有没有办法检查实体是否以编程方式启用了“活动”?

1 个答案:

答案 0 :(得分:7)

您可以使用RetrieveEntityRequest查看实体是否已启用活动。 RetrieveEntityResponse包含一个EntityMetadata对象,其中包含OneToManyRelationships

当实体与 activitypointer 实体有关系时,它会启用活动。

代码示例:

var metaResponse = (RetrieveEntityResponse)proxy.Execute(new RetrieveEntityRequest
{
    EntityFilters = EntityFilters.Relationships,
    LogicalName = "account",
    RetrieveAsIfPublished = true
});

bool isActivityEnabled =
    metaResponse.EntityMetadata.OneToManyRelationships
    .Any(r => r.ReferencingEntity == "activitypointer");