Créer une entité personnalisée

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

Cette rubrique explique comment créer une entité personnalisée appartenant à l’utilisateur appelée Compte bancaire et de lui ajouter quatre types d’attributs différents.

Vous pouvez également créer des entités personnalisées appartenant à l’organisation.Pour plus d'informations :Propriété de l'entité

Notes

Vous ne pourrez pas voir cette entité dans la navigation d’application, sauf si les propriétés de l’entité sont modifiées pour que Zones affichant cette entité sont défini.

Contenu de la rubrique

Créer une entité personnalisée

Ajouter un attribut de chaîne à l’entité personnalisée

Ajouter un attribut de devise à l’entité personnalisée

Ajouter un attribut de type DateTime à l’entité personnalisée

Ajouter un attribut de recherche à l’entité personnalisée

Créer une entité personnalisée

L’exemple suivant utilise CreateEntityRequest pour créer l’entité et StringAttributeMetadataPrimaryAttribute.

La valeur _customEntityName est « 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.")

Ajouter un attribut de chaîne à l’entité personnalisée

L’exemple suivant ajoute un attribut StringAttributeMetadata à l’entité 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)

Ajouter un attribut de devise à l’entité personnalisée

L’exemple suivant ajoute un attribut MoneyAttributeMetadata à l’entité 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)

Ajouter un attribut de type DateTime à l’entité personnalisée

L’exemple suivant ajoute un attribut DateTimeAttributeMetadata à l’entité 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.")

Ajouter un attribut de recherche à l’entité personnalisée

L’exemple suivant utilise CreateOneToManyRequest pour créer une relation un-à-plusieurs avec l’entité Contact pour qu’un attribut LookupAttributeMetadata soit ajouté à l’entité Bank Account.


CreateOneToManyRequest req = new CreateOneToManyRequest()
{
 Lookup = new LookupAttributeMetadata()
 {
  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()
 {
  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 = Contact.EntityLogicalName,
  ReferencedAttribute = "contactid",
  ReferencingEntity = _customEntityName,
  SchemaName = "new_contact_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)

Voir aussi

CreateEntityRequest
Utiliser l’exemple de code et le code d’assistance
Personnaliser les métadonnées d’entité
Quelles sont les entités personnalisables ?
Récupérer, mettre à jour et supprimer les entités
Exemple : créer et mettre à jour une entité pouvant être envoyée par courrier
Créer une entité d’activité personnalisée
Modifier les icônes d’une entité
Modifier les messages pour une entité

© 2017 Microsoft. Tous droits réservés. Copyright