Criar uma entidade personalizada
Publicado: janeiro de 2017
Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Este tópico mostra como criar uma entidade do usuário personalizada chamada Conta Bancária e adicionar quatro tipos diferentes de atributos.
Você também pode criar entidades personalizadas da organização.Para obter mais informações:Propriedade da entidade
Observação
Você não poderá ver essa entidade na navegação do aplicativo a menos que as propriedades da entidade sejam editadas para definir Áreas que mostram esta entidade.
Neste tópico
Criar uma entidade personalizada
Adicionar um atributo de cadeia de caracteres à entidade personalizada
Adicionar um atributo Money à entidade personalizada
Adicionar um atributo DateTime à entidade personalizada
Adicionar um atributo Lookup à entidade personalizada
Criar uma entidade personalizada
O exemplo a seguir usa a CreateEntityRequest para criar a entidade e a StringAttributeMetadataPrimaryAttribute.
O valor _customEntityName é “new_bankaccount”.
CreateEntityRequest createrequest = new CreateEntityRequest
{
//Define the entity
Entity = new EntityMetadata
{
SchemaName = _customEntityName,
DisplayName = new Label("Bank Account", 1033),
DisplayCollectionName = new Label("Bank Accounts", 1033),
Description = new Label("An entity to store information about customer bank accounts", 1033),
OwnershipType = OwnershipTypes.UserOwned,
IsActivity = false,
},
// Define the primary attribute for the entity
PrimaryAttribute = new StringAttributeMetadata
{
SchemaName = "new_accountname",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
MaxLength = 100,
FormatName = StringFormatName.Text,
DisplayName = new Label("Account Name", 1033),
Description = new Label("The primary attribute for the Bank Account entity.", 1033)
}
};
_serviceProxy.Execute(createrequest);
Console.WriteLine("The bank account entity has been created.");
Dim createrequest As CreateEntityRequest = New CreateEntityRequest With {
.Entity = New EntityMetadata With {
.SchemaName = _customEntityName,
.DisplayName = New Label("Bank Account", 1033),
.DisplayCollectionName = New Label("Bank Accounts", 1033),
.Description = New Label("An entity to store information about customer bank accounts", 1033),
.OwnershipType = OwnershipTypes.UserOwned,
.IsActivity = False},
.PrimaryAttribute = New StringAttributeMetadata With {
.SchemaName = "new_accountname",
.RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
.MaxLength = 100,
.Format = StringFormat.Text,
.DisplayName = New Label("Account Name", 1033),
.Description = New Label("The primary attribute for the Bank Account entity.", 1033)
}
}
'Define the entity
' Define the primary attribute for the entity
_serviceProxy.Execute(createrequest)
Console.WriteLine("The bank account entity has been created.")
Adicionar um atributo de cadeia de caracteres à entidade personalizada
O exemplo a seguir adiciona um atributo StringAttributeMetadata à entidade Bank Account.
CreateAttributeRequest createBankNameAttributeRequest = new CreateAttributeRequest
{
EntityName = _customEntityName,
Attribute = new StringAttributeMetadata
{
SchemaName = "new_bankname",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
MaxLength = 100,
FormatName = StringFormatName.Text,
DisplayName = new Label("Bank Name", 1033),
Description = new Label("The name of the bank.", 1033)
}
};
_serviceProxy.Execute(createBankNameAttributeRequest);
Dim createBankNameAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
.EntityName = _customEntityName,
.Attribute = New StringAttributeMetadata With {
.SchemaName = "new_bankname",
.RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
.MaxLength = 100,
.Format = StringFormat.Text,
.DisplayName = New Label("Bank Name", 1033),
.Description = New Label("The name of the bank.", 1033)
}
}
_serviceProxy.Execute(createBankNameAttributeRequest)
Adicionar um atributo Money à entidade personalizada
O exemplo a seguir adiciona um atributo MoneyAttributeMetadata à entidade Bank Account.
CreateAttributeRequest createBalanceAttributeRequest = new CreateAttributeRequest
{
EntityName = _customEntityName,
Attribute = new MoneyAttributeMetadata
{
SchemaName = "new_balance",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
PrecisionSource = 2,
DisplayName = new Label("Balance", 1033),
Description = new Label("Account Balance at the last known date", 1033),
}
};
_serviceProxy.Execute(createBalanceAttributeRequest);
Dim createBalanceAttributeRequest As CreateAttributeRequest = New CreateAttributeRequest With {
.EntityName = _customEntityName,
.Attribute = New MoneyAttributeMetadata With {
.SchemaName = "new_balance",
.RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
.PrecisionSource = 2,
.DisplayName = New Label("Balance", 1033),
.Description = New Label("Account Balance at the last known date", 1033)
}
}
_serviceProxy.Execute(createBalanceAttributeRequest)
Adicionar um atributo DateTime à entidade personalizada
O exemplo a seguir adiciona um atributo DateTimeAttributeMetadata à entidade Bank Account.
CreateAttributeRequest createCheckedDateRequest = new CreateAttributeRequest
{
EntityName = _customEntityName,
Attribute = new DateTimeAttributeMetadata
{
SchemaName = "new_checkeddate",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
Format = DateTimeFormat.DateOnly,
DisplayName = new Label("Date", 1033),
Description = new Label("The date the account balance was last confirmed", 1033)
}
};
_serviceProxy.Execute(createCheckedDateRequest);
Console.WriteLine("An date attribute has been added to the bank account entity.");
Dim createCheckedDateRequest As CreateAttributeRequest = New CreateAttributeRequest With {
.EntityName = _customEntityName,
.Attribute = New DateTimeAttributeMetadata With {
.SchemaName = "new_checkeddate",
.RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.None),
.Format = DateTimeFormat.DateOnly,
.DisplayName = New Label("Date", 1033),
.Description = New Label("The date the account balance was last confirmed", 1033)
}
}
_serviceProxy.Execute(createCheckedDateRequest)
Console.WriteLine("An date attribute has been added to the bank account entity.")
Adicionar um atributo Lookup à entidade personalizada
O exemplo a seguir usa CreateOneToManyRequest para criar um relacionamento um-para-muitos com a entidade Contact de forma que o atributo LookupAttributeMetadata seja adicionado à entidade Bank Account.
CreateOneToManyRequest req = new CreateOneToManyRequest()
{
Lookup = new LookupAttributeMetadata()
{
Description = new Label("The referral (lead) from the bank account owner", 1033),
DisplayName = new Label("Referral", 1033),
LogicalName = "new_parent_leadid",
SchemaName = "New_Parent_leadId",
RequiredLevel = new AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.Recommended)
},
OneToManyRelationship = new OneToManyRelationshipMetadata()
{
AssociatedMenuConfiguration = new AssociatedMenuConfiguration()
{
Behavior = AssociatedMenuBehavior.UseCollectionName,
Group = AssociatedMenuGroup.Details,
Label = new Label("Bank Accounts", 1033),
Order = 10000
},
CascadeConfiguration = new CascadeConfiguration()
{
Assign = CascadeType.Cascade,
Delete = CascadeType.Cascade,
Merge = CascadeType.Cascade,
Reparent = CascadeType.Cascade,
Share = CascadeType.Cascade,
Unshare = CascadeType.Cascade
},
ReferencedEntity = "lead",
ReferencedAttribute = "leadid",
ReferencingEntity = _customEntityName,
SchemaName = "new_lead_new_bankaccount"
}
};
_serviceProxy.Execute(req);
Dim req As New CreateOneToManyRequest() With {
.Lookup = New LookupAttributeMetadata() With {
.Description = New Label("The owner of the bank account", 1033),
.DisplayName = New Label("Account Owner", 1033),
.LogicalName = "new_parent_contactid",
.SchemaName = "New_Parent_ContactId",
.RequiredLevel = New AttributeRequiredLevelManagedProperty(AttributeRequiredLevel.ApplicationRequired)},
.OneToManyRelationship = New OneToManyRelationshipMetadata() With {
.AssociatedMenuConfiguration = New AssociatedMenuConfiguration() With {
.Behavior = AssociatedMenuBehavior.UseCollectionName,
.Group = AssociatedMenuGroup.Details,
.Label = New Label("Bank Accounts", 1033),
.Order = 10000},
.CascadeConfiguration = New CascadeConfiguration() With {
.Assign = CascadeType.Cascade,
.Delete = CascadeType.Cascade,
.Merge = CascadeType.Cascade,
.Reparent = CascadeType.Cascade,
.Share = CascadeType.Cascade,
.Unshare = CascadeType.Cascade},
.ReferencedEntity = Contact.EntityLogicalName,
.ReferencedAttribute = "contactid",
.ReferencingEntity = _customEntityName,
.SchemaName = "new_contact_new_bankaccount"
}
}
_serviceProxy.Execute(req)
Confira Também
CreateEntityRequest
Usar o código de exemplo e auxiliar
Personalizar metadados da entidade
Quais entidades são personalizáveis?
Recuperar, atualizar e excluir entidades
Criar e atualizar uma entidade que pode ser enviada por e-mail
Criar uma entidade de atividade personalizada
Modificar os ícones para uma entidade
Modificar as mensagens para uma entidade
Microsoft Dynamics 365
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais