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

Len*_*nny 2 c# dynamics-crm dynamics-crm-2011 dynamics-crm-2013

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

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

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

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

Hen*_*jen 7

您可以使用它RetrieveEntityRequest来查明实体是否已启用活动.其中RetrieveEntityResponse包含一个EntityMetadata对象OneToManyRelationships.

当实体与activitypointer实体有关系时,它将启用活动.

代码示例:

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

bool isActivityEnabled =
    metaResponse.EntityMetadata.OneToManyRelationships
    .Any(r => r.ReferencingEntity == "activitypointer");
Run Code Online (Sandbox Code Playgroud)