创建和更新可通过电子邮件发送的实体

  发布日期: 2017年1月

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

您可以创建一个实体,该实体包含的电子邮件地址可用于将电子邮件活动发送到该实体记录。

以下示例中创建了自定义实体,并将 IsActivityParty 属性设置为 true。 此示例中还使用 StringFormatName.Email 创建了 StringAttributeMetadata 属性,以便提供要使用的电子邮件地址。

即使您添加了格式设置为电子邮件地址的其他 StringAttributeMetadata 属性,系统也只会使用指定的第一个属性。



// Create the custom entity.
CreateEntityRequest createrequest = new CreateEntityRequest
{
    // Define an entity to enable for emailing. In order to do so,
    // IsActivityParty must be set.
    Entity = new EntityMetadata
    {
        SchemaName = _customEntityName,
        DisplayName = new Label("Agent", 1033),
        DisplayCollectionName = new Label("Agents", 1033),
        Description = new Label("Insurance Agents", 1033),
        OwnershipType = OwnershipTypes.UserOwned,
        IsActivity = false,

        // Unless this flag is set, this entity cannot be party to an
        // activity.
        IsActivityParty = true
    },

    // As with built-in emailable entities, the Primary Attribute will
    // be used in the activity party screens. Be sure to choose descriptive
    // attributes.
    PrimaryAttribute = new StringAttributeMetadata
    {
        SchemaName = "new_fullname",
        RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
        MaxLength = 100,
        FormatName = StringFormatName.Text,
        DisplayName = new Label("Agent Name", 1033),
        Description = new Label("Agent Name", 1033)
    }
};

_serviceProxy.Execute(createrequest);
Console.WriteLine("The emailable entity has been created.");

// The entity will not be selectable as an activity party until its customizations
// have been published. Otherwise, the e-mail activity dialog cannot find
// a correct default view.
PublishAllXmlRequest publishRequest = new PublishAllXmlRequest();
_serviceProxy.Execute(publishRequest);

// Before any emails can be created for this entity, an Email attribute
// must be defined.
CreateAttributeRequest createFirstEmailAttributeRequest = new CreateAttributeRequest
{
    EntityName = _customEntityName,
    Attribute = new StringAttributeMetadata
    {
        SchemaName = "new_emailaddress",
        RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
        MaxLength = 100,                            
        FormatName = StringFormatName.Email,
        DisplayName = new Label("Email Address", 1033),
        Description = new Label("Email Address", 1033)
    }
};

_serviceProxy.Execute(createFirstEmailAttributeRequest);
Console.WriteLine("An email attribute has been added to the emailable entity.");

// Create a second, alternate email address. Since there is already one 
// email attribute on the entity, this will never be used for emailing
// even if the first one is not populated.
CreateAttributeRequest createSecondEmailAttributeRequest = new CreateAttributeRequest
{
    EntityName = _customEntityName,
    Attribute = new StringAttributeMetadata
    {
        SchemaName = "new_secondaryaddress",
        RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
        MaxLength = 100,                            
        FormatName = StringFormatName.Email,
        DisplayName = new Label("Secondary Email Address", 1033),
        Description = new Label("Secondary Email Address", 1033)
    }
};

_serviceProxy.Execute(createSecondEmailAttributeRequest);

Console.WriteLine("A second email attribute has been added to the emailable entity.");


' Create the custom entity.
Dim createrequest As CreateEntityRequest = New CreateEntityRequest With {.Entity = New EntityMetadata With {
  .SchemaName = _customEntityName,
  .DisplayName = New Label("Agent", 1033),
  .DisplayCollectionName = New Label("Agents", 1033),
  .Description = New Label("Insurance Agents", 1033),
  .OwnershipType = OwnershipTypes.UserOwned,
  .IsActivity = False, .IsActivityParty = True},
  .PrimaryAttribute = New StringAttributeMetadata With {
   .SchemaName = "new_fullname",
   .RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
   .MaxLength = 100,
   .Format = StringFormat.Text,
   .DisplayName = New Label("Agent Name", 1033),
   .Description = New Label("Agent Name", 1033)
   }
  }
' Define an entity to enable for emailing. In order to do so,
' IsActivityParty must be set.
' Unless this flag is set, this entity cannot be party to an
' activity.
' As with built-in emailable entities, the Primary Attribute will
' be used in the activity party screens. Be sure to choose descriptive
' attributes.

_serviceProxy.Execute(createrequest)
Console.WriteLine("The emailable entity has been created.")

' The entity will not be selectable as an activity party until its customizations
' have been published. Otherwise, the e-mail activity dialog cannot find
' a correct default view.
Dim publishRequest As New PublishAllXmlRequest()
_serviceProxy.Execute(publishRequest)

' Before any emails can be created for this entity, an Email attribute
' must be defined.
Dim createFirstEmailAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
 .EntityName = _customEntityName,
 .Attribute = New StringAttributeMetadata With {
  .SchemaName = "new_emailaddress",
  .RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
  .MaxLength = 100,
  .Format = StringFormat.Email,
  .DisplayName = New Label("Email Address", 1033),
  .Description = New Label("Email Address", 1033)
 }
}

_serviceProxy.Execute(createFirstEmailAttributeRequest)
Console.WriteLine("An email attribute has been added to the emailable entity.")

' Create a second, alternate email address. Since there is already one 
' email attribute on the entity, this will never be used for emailing
' even if the first one is not populated.
Dim createSecondEmailAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
 .EntityName = _customEntityName,
 .Attribute = New StringAttributeMetadata With {
  .SchemaName = "new_secondaryaddress",
  .RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
  .MaxLength = 100,
  .Format = StringFormat.Email,
  .DisplayName = New Label("Secondary Email Address", 1033),
  .Description = New Label("Secondary Email Address", 1033)
 }
}

_serviceProxy.Execute(createSecondEmailAttributeRequest)

Console.WriteLine("A second email attribute has been added to the emailable entity.")

另请参阅

使用示例和帮助程序代码
自定义实体元数据
可自定义哪些实体?
创建自定义实体。
检索、更新和删除实体
创建自定义活动实体
修改实体的图标
修改实体的消息
示例:创建和更新可通过电子邮件发送的实体

Microsoft Dynamics 365

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