共用方式為


建立自訂活動實體

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

本主題中包含的範例將說明如何建立自訂活動實體。

下面的範例將建立自訂實體,並將 IsActivity 屬性設定為 true。 所有活動的 PrimaryAttributeSchemaName 都必須設定為 Subject,才能對應至所有活動使用的一般 ActivityPointer.Subject 屬性。


 // The custom prefix would typically be passed in as an argument or 
 // determined by the publisher of the custom solution.
 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

 // Add few attributes to the custom activity entity.
 CreateAttributeRequest fontFamilyAttributeRequest =
     new CreateAttributeRequest
{
    EntityName = customEntityName,
    Attribute = new StringAttributeMetadata
    {
        SchemaName = prefix + "fontfamily",
        DisplayName = new Label("Font Family", 1033),
        MaxLength = 100
    }
};
 CreateAttributeResponse fontFamilyAttributeResponse =
     (CreateAttributeResponse)_serviceProxy.Execute(
     fontFamilyAttributeRequest);

 CreateAttributeRequest fontColorAttributeRequest =
     new CreateAttributeRequest
 {
     EntityName = customEntityName,
     Attribute = new StringAttributeMetadata
     {
         SchemaName = prefix + "fontcolor",
         DisplayName = new Label("Font Color", 1033),
         MaxLength = 50
     }
 };
 CreateAttributeResponse fontColorAttributeResponse =
     (CreateAttributeResponse)_serviceProxy.Execute(
     fontColorAttributeRequest);

 CreateAttributeRequest fontSizeAttributeRequest =
     new CreateAttributeRequest
 {
     EntityName = customEntityName,
     Attribute = new IntegerAttributeMetadata
     {
         SchemaName = prefix + "fontSize",
         DisplayName = new Label("Font Size", 1033)
     }
 };
 CreateAttributeResponse fontSizeAttributeResponse =
     (CreateAttributeResponse)_serviceProxy.Execute(
     fontSizeAttributeRequest);

' The custom prefix would typically be passed in as an argument or 
' determined by the publisher of the custom solution.
Dim prefix As String = "new_"

Dim customEntityName As String = prefix & "instantmessage"

' Create the custom activity entity.
Dim request As CreateEntityRequest = New CreateEntityRequest With {
 .HasNotes = True,
 .HasActivities = False,
 .PrimaryAttribute = New StringAttributeMetadata With {
  .SchemaName = "Subject",
  .RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
  .MaxLength = 100,
  .DisplayName = New Label("Subject", 1033)},
 .Entity = New EntityMetadata With {
  .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

' Add few attributes to the custom activity entity.
Dim fontFamilyAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
 .EntityName = customEntityName,
 .Attribute = New StringAttributeMetadata With {
  .SchemaName = prefix & "fontfamily",
  .DisplayName = New Label("Font Family", 1033),
  .MaxLength = 100}}
Dim fontFamilyAttributeResponse As CreateAttributeResponse = CType(_serviceProxy.Execute(fontFamilyAttributeRequest), CreateAttributeResponse)

Dim fontColorAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
 .EntityName = customEntityName,
 .Attribute = New StringAttributeMetadata With {
  .SchemaName = prefix & "fontcolor",
  .DisplayName = New Label("Font Color", 1033),
  .MaxLength = 50}}
Dim fontColorAttributeResponse As CreateAttributeResponse = CType(_serviceProxy.Execute(fontColorAttributeRequest), CreateAttributeResponse)

Dim fontSizeAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
 .EntityName = customEntityName,
 .Attribute = New IntegerAttributeMetadata With {
  .SchemaName = prefix & "fontSize",
  .DisplayName = New Label("Font Size", 1033)}}
Dim fontSizeAttributeResponse As CreateAttributeResponse = CType(_serviceProxy.Execute(fontSizeAttributeRequest), CreateAttributeResponse)

另請參閱

CreateEntityRequest
使用範例和 Helper 程式碼
自訂活動
自訂實體中繼資料
修改實體的圖示
修改實體的訊息
範例:建立自訂活動實體

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權