自定义活动

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

在 Microsoft Dynamics 365 中,可以创建自定义活动以满足企业的通信需求,如即时消息 (IM) 和短信服务 (SMS)。 若要在 Dynamics 365 中创建自定义活动,可创建一个自定义实体,然后使用 EntityMetadata.IsActivity 属性将其指定为活动实体。

但是,与其他自定义实体不同,您不能为自定义活动指定主属性,因为默认情况下每个自定义活动必须具有名为 ”Subject”. 的主属性。

创建自定义活动实体时,该自定义活动会继承 activitypointer 实体的所有属性和特权。 此外,自定义活动还可以使用所有活动方类型,因此还会继承相应的属性。

与任何其他活动一样,您可以为自定义活动创建一对多 (1:N) 关系,还可以更新现有关系。

特权和访问权限

处理自定义活动时,需要使用处理自定义实体时所需的相同 Dynamics 365 特权和访问权限。 有关这些自定义实体的详细信息,请参阅 自定义实体元数据

创建自定义活动

若要创建自定义活动实体,请设置下表中所列属性的值:

属性名称

注释

EntityMetadataIsActivity

true

将自定义实体指定为活动实体。

EntityMetadataIsAvailableOffline

true

自定义活动实体必须具有脱机可用性。

EntityMetadataIsMailMergeEnabled

false

自定义活动实体不能启用邮件合并。

EntityMetadataOwnershipType

OwnershipTypes。TeamOwned

OwnershipTypes.UserOwned

自定义活动实体可以是团队负责,也可以是用户负责的实体。

EntityMetadataActivityTypeMask

0 - 无

1 - 通信活动

(可选)指定自定义活动是否应该出现在 Web 应用程序的活动菜单中。

  • 指定“0(无)”,可让其不出现在活动菜单中。 自定义活动将只出现在与之关联(具有关系)的那些实体的关联网格中。

  • 指定“1(通信活动)”,可让其出现在活动菜单中。

如果没有指定此属性,会使用默认属性值创建自定义活动:1. 也就是说,自定义活动会显示在活动菜单中。 另外,只能在创建活动时对 ActivityTypeMask 进行设置,而且一旦设置就无法修改。

CreateEntityRequestHasActivities

false

自定义活动实体不可以与活动有关系。

CreateEntityRequestHasNotes

true

自定义活动实体必须与注释有关系。

CreateEntityRequestPrimaryAttribute

SchemaName 为 “Subject”.

所有活动的 PrimaryAttribute 架构名称必须为 “Subject”.。

示例

以下示例显示通过使用 Microsoft Dynamics 365 SDK,如何创建自定义活动。


String prefix = "new_";

String customEntityName = prefix + "instantmessage";

// Create the custom activity entity.
CreateEntityRequest request = new CreateEntityRequest
{
    HasNotes = true,
    HasActivities = false,
    PrimaryAttribute = new StringAttributeMetadata
    {
        SchemaName = "Subject",
        RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
        MaxLength = 100,
        DisplayName = new Label("Subject", 1033)
    },
    Entity = new EntityMetadata
    {
        IsActivity = true,
        SchemaName = customEntityName,
        DisplayName = new Label("Instant Message", 1033),
        DisplayCollectionName = new Label("Instant Messages", 1033),
        OwnershipType = OwnershipTypes.UserOwned,
        IsAvailableOffline = true,

    }
};

_serviceProxy.Execute(request);

//Entity must be published

另请参阅

活动实体
ActivityPointer(活动)实体
示例:创建自定义活动
示例:创建和更新实体元数据

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权