Créez des applications plus rapidement en utilisant le contrôle Entity form pour ajouter des formulaires riches pour une entité Common Data Service.

Pour une introduction au contrôle Entity form, consultez le billet de blog : New entity form control (experimental feature) for Common Data Service (Nouveau contrôle Entity form (fonctionnalité en version expérimentale) pour Common Data Service).

Important : n’oubliez pas que le contrôle Entity form est une fonctionnalité en version expérimentale, comme décrit dans le billet de blog, et restez vigilant lorsque vous utilisez le contrôle Entity form dans les applications de production, du moins pour le moment.

Principales propriétés

Voici les propriétés principales d’un contrôle Entity form.

DataSource : spécifie la source de données contenant les enregistrements à afficher.
Remarque : actuellement, seules les entités dans Common Data Service sont prises en charge en tant que sources de données pour le contrôle Entity form.

Pattern : spécifie le style du formulaire que vous souhaitez afficher dans le contrôle Entity form. Définissez cette propriété à l’aide de l’énumération FormPattern.

  • FormPattern.List : affiche une liste tabulaire d’enregistrements.
  • FormPattern.CardList : affiche une liste d’enregistrements sous forme de carte.
  • FormPattern.Details : affiche un formulaire pour afficher ou modifier les détails d’un enregistrement unique.
  • FormPattern.None : aucun style n’a été spécifié explicitement. Les valeurs par défaut sont List pour les applications sur tablette et CardList pour les applications sur téléphone.

Item : spécifie l’enregistrement dans la source de données que le contrôle Entity form doit afficher. Cette propriété est utilisée uniquement lorsque Pattern est défini sur FormPattern.Details.

Selected : obtient l’enregistrement qui est actuellement sélectionné.
Exemple : si le contrôle Entity form affiche une liste d’enregistrements de commande, la propriété Selected vous donnera l’enregistrement qui est actuellement sélectionné. Vous pouvez également accéder à un champ dans un enregistrement. (Par exemple, spécifiez la valeur du champ Compte de l’enregistrement sélectionné en tant que Selected.Account.)

SelectableFields : spécifie quels champs doivent apparaître sous forme de liens. Définissez la valeur de cette propriété à l’aide de cette syntaxe :
{Field1Name : true, Field2Name : true}
Exemple : si vous souhaitez que les champs SalesOrderId et Compte s’affichent sous forme de liens dans un formulaire, définissez la propriété SelectableFields de ce formulaire sur la valeur suivante :
{SalesOrderId : true, Account : true}

SelectedField : détermine le champ sur lequel l’utilisateur a cliqué ou appuyé. Cela s’applique uniquement aux champs spécifiés en tant que SelectableFields.
Exemple : si vous définissez la propriété SelectableFields sur {SalesOrderId : true, Account : true} et si l’utilisateur clique ou appuie sur le champ Compte, SelectedField.Account est défini sur true.

OnFieldSelect : façon dont une application répond quand l’utilisateur clique ou appuie sur un champ. Cela s’applique uniquement aux champs spécifiés en tant que SelectableFields.

Mode : détermine le mode du formulaire. Pour changer le mode, utilisez la fonction ViewForm, EditForm ou NewForm. Ces fonctions sont efficaces uniquement lorsque la propriété Pattern est définie sur FormPattern.Details. Définissez la valeur de la propriété Mode sur une valeur de l’énumération FormMode.

  • FormMode.View : permet aux utilisateurs d’afficher un enregistrement, mais pas de le modifier ni d’en ajouter.
  • FormMode.Edit : permet aux utilisateurs de modifier un enregistrement.
  • FormMode.New : permet aux utilisateurs d’ajouter un enregistrement.

OnSuccess : façon dont une application répond lorsqu’une opération de données s’est déroulée correctement.

OnFailure : façon dont une application répond lorsqu’une opération de données ne s’est pas déroulée correctement.

Unsaved : détermine si un enregistrement modifié par un utilisateur comporte des modifications non enregistrées.

Fonctions connexes

Vous pouvez utiliser ces fonctions partagées avec le contrôle Entity form ou le contrôle Edit form. Ces fonctions sont efficaces avec le contrôle Entity form uniquement lorsque la propriété Pattern est définie sur FormPattern.Details.

ViewForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.View.

EditForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.Edit.

NewForm : définit la propriété Mode d’un contrôle Entity form sur FormMode.New.

SubmitForm : enregistre les modifications lorsqu’un utilisateur modifie un enregistrement dans un contrôle Entity form.

ResetForm : ignore les modifications non enregistrées lorsqu’un utilisateur modifie un enregistrement dans un contrôle Entity form.

Maintenant que vous avez une vue d’ensemble des différentes propriétés et fonctions, observons-les en action.

Remarque: si vous n’avez pas accès à une base de données Common Data Service, créez-en une avant de commencer la procédure suivante.

Afficher une liste d’enregistrements

Les cinq procédures suivantes fournissent un exemple unique et complet de l’utilisation des contrôles Entity form. Dans cette procédure, ajoutez un formulaire qui affiche une liste des commandes.

  1. Créez une application vide sur tablette.

  2. Renommez le premier écran SalesOrderListScreen.

  3. Dans l’onglet Insérer, cliquez ou appuyez sur Formulaires, puis sur Entity form (fonctionnalité en version expérimentale).

    Un contrôle Entity form est ajouté à l’écran.

  4. Renommez le contrôle Entity form en SalesOrderListForm et redimensionnez-le pour qu’il couvre la totalité de l’écran.

  5. Dans le volet de droite, cliquez ou appuyez sur l’icône de la base de données en regard du texte Aucune source de données sélectionnée, puis cliquez ou appuyez sur Ajouter une source de données.

  6. Dans la liste des connexions, cliquez ou appuyez sur la connexion de votre base de données.

  7. Dans la liste des entités, cliquez ou appuyez sur Commande vente, puis cliquez ou appuyez sur Se connecter.

    Une source de données pour l’entité Commande vente est créée, et la propriété DataSource de SalesOrderListForm est définie sur cette source de données.

    Le contrôle Entity form affiche une liste des commandes. Le contrôle Entity form vous permet d’afficher rapidement un formulaire de liste sans avoir à le générer manuellement.

    Vous n’avez pas défini la propriété Pattern pour le contrôle Entity form, sa valeur par défaut est donc le modèle List. En outre, le groupe de champs DefaultList de l’entité Commande vente est utilisé pour afficher le formulaire de liste. Le formulaire est également dynamique et reflète automatiquement toutes les modifications apportées dans le groupe de champs.

  8. (Facultatif) Affichez le groupe de champs DefaultList de l’entité Commande vente :

    1. Connectez-vous à powerapps.com, dans le volet de navigation de gauche, cliquez ou appuyez sur Common Data Service, puis sur Entités.
    2. Dans la liste des entités, cliquez ou appuyez sur Commande vente, cliquez ou appuyez sur l’onglet Groupes de champs, puis cliquez ou appuyez sur le groupe de champs DefaultList.

    Les champs dans la liste des commandes correspondent à ceux répertoriés ici.

    Dans Common Data Service, vous pouvez modifier les groupes de champs pour les entités personnalisées (mais pas pour les entités standard) pour modifier les champs qui apparaissent sur les formulaires correspondants que le contrôle Entity form affiche. Mieux encore, les modifications apportées au groupe de champs sont automatiquement répercutées dans toutes les applications qui utilisent un contrôle Entity form pour afficher le formulaire correspondant.

Afficher les détails d’un enregistrement

Nous allons ajouter un autre contrôle Entity form pour afficher les détails de la commande qui est sélectionnée dans la liste que vous avez créée précédemment.

  1. Redimensionnez SalesOrderListForm pour qu’il couvre la moitié de l’écran et ajoutez un deuxième contrôle Entity form pour qu’il couvre l’autre moitié de l’écran.

  2. Renommez le deuxième contrôle Entity form en SalesOrderDetailsForm et connectez-le à la source de données Commande vente que vous avez créée précédemment.

  3. Définissez la propriété Pattern de SalesOrderDetailsForm sur FormPattern.Details.

    SalesOrderDetailsForm utilise le groupe de champs DefaultDetails de l’entité Commande vente pour afficher le formulaire. Comme avec SalesOrderListForm, vous pouvez afficher rapidement les détails de l’enregistrement sans avoir à créer manuellement un formulaire.

  4. Définissez la propriété Item de SalesOrderDetailsForm sur SalesOrderListForm.Selected.

    SalesOrderDetailsForm affichera les détails de l’enregistrement sur lequel l’utilisateur clique ou appuie dans SalesOrderListForm.

  5. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur une commande dans la liste située à gauche.

    Les détails de la commande que vous avez sélectionnée apparaissent sur le côté droit.

Configurer un champ pour accéder à un autre écran

Continuons en ajoutant d’autres écrans à notre application, puis configurons des champs dans un contrôle Entity form pour accéder à un autre écran de l’application lorsque l’utilisateur clique ou appuie sur un champ.

  1. Ajoutez un deuxième écran à l’application et renommez l’écran en SalesOrderDetailsScreen.

  2. Coupez SalesOrderDetailsForm et collez-le dans SalesOrderDetailsScreen, puis redimensionnez le formulaire afin qu’il couvre une grande partie de l’écran, en laissant suffisamment d’espace pour une icône en haut.

  3. Ajoutez une icône représentant une flèche de retour à proximité du coin supérieur gauche de SalesOrderDetailsScreen.

  4. Définissez la propriété OnSelect de l’icône de flèche de retour sur la fonction Back.

  5. Sur SalesOrderListScreen, redimensionnez SalesOrderListForm pour qu’il couvre la totalité de l’écran.

  6. Cliquez ou appuyez sur SalesOrderListForm pour le sélectionner.

  7. Dans le volet de droite, sous Champs, définissez SalesOrderId pour accéder à SalesOrderDetailsScreen.

    Le contrôle Entity form affiche les valeurs dans le champ SalesOrderId (la première colonne dans la liste) sous forme de liens.

  8. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur un lien dans la liste des commandes.

    Le deuxième écran s’ouvre et affiche les détails de la commande que vous avez spécifiée.

    Pour afficher les détails d’une autre commande, cliquez ou appuyez sur la flèche de retour pour revenir à la liste, puis cliquez ou appuyez sur le lien de la commande pour laquelle vous souhaitez afficher les détails.

Naviguer avec une variable contextuelle

La propriété Item de SalesOrderDetailsForm est définie sur SalesOrderListForm.Selected afin que SalesOrderDetailsForm affiche les détails de l’enregistrement que l’utilisateur sélectionne dans SalesOrderListForm. Vous pouvez également obtenir le contexte de l’enregistrement sélectionné à l’aide de la variable contextuelle NavigationContext, qui est créée automatiquement lorsque vous utilisez le volet de personnalisation de formulaire pour configurer un champ auquel accéder.

  1. Définissez la propriété Item de SalesOrderDetailsForm sur NavigationContext.

  2. Affichez un aperçu de l’application en appuyant sur F5, puis cliquez ou appuyez sur un lien dans la liste des commandes.

    L’application ouvre SalesOrderDetailsScreen et affiche les détails de la commande que vous avez spécifiée.

Examinons à présent comment le volet de personnalisation de formulaire configure la navigation et le contexte pour nous.

La propriété SelectableFields de SalesOrderListForm spécifie SalesOrderId comme champ sélectionnable.

Cela a été configuré automatiquement lorsque nous avons utilisé le volet de personnalisation de formulaire pour que le champ SalesOrderId atteigne SalesOrderDetailsScreen. Par conséquent, les valeurs du champ SalesOrderId s’affichent sous forme de liens.

La propriété OnFieldSelect de SalesOrderListForm est définie sur une fonction If, qui détermine si l’utilisateur clique ou appuie sur le champ ID commande client : SalesOrderListForm.SelectedField.SalesOrderId = true.

Si la fonction est évaluée comme étant « true », SalesOrderDetailsScreen s’ouvre avec la variable contextuelle nommée NavigationContext que nous avons utilisée précédemment.

Tout cela a également été configuré automatiquement lorsque nous avons utilisé le volet de personnalisation de formulaire pour que le champ SalesOrderId atteigne SalesOrderDetailsScreen.

Par conséquent, lorsque l’utilisateur clique ou appuie sur un champ d’ID de commande, la fonction If est évaluée comme étant « true » et la fonction Navigate est appelée avec le contexte correspondant, ouvrant l’écran contenant les détails.

Remarque : lorsque vous utilisez le volet de personnalisation de formulaire, NavigationContext est déterminé de manière intelligente pour vous. Lorsque l’utilisateur clique ou appuie sur SalesOrderId, NavigationContext est défini sur SalesOrderListForm.Selected, comme le montre la formule précédente. Si, à l’inverse, nous avions spécifié le champ Compte pour la navigation, NavigationContext aurait été défini sur SalesOrderListForm.Selected.Account, garantissant la transmission correcte du contexte. Toutefois, pour utiliser ce contexte, vous auriez besoin d’un contrôle Entity form connecté à l’entité Compte dans Common Data Service.

Modifier et sauvegarder un enregistrement

Enfin, nous allons voir comment nous pouvons modifier et sauvegarder un enregistrement dans un contrôle Entity form.

  1. Sur SalesOrderDetailsScreen, ajoutez une icône de modification, puis définissez sa propriété OnSelect sur la formule suivante :
    EditForm(SalesOrderDetailsForm)

  2. Ajoutez une icône de coche en regard de l’icône de modification et définissez la propriété OnSelect de l’icône de coche sur la formule suivante :
    SubmitForm(SalesOrderDetailsForm)

  3. Affichez un aperçu de l’application en appuyant sur F5, cliquez ou appuyez sur un lien d’ID de commande client pour afficher les détails d’une commande, puis cliquez ou appuyez sur l’icône de modification.

    Le mode du contrôle Entity form est défini sur FormMode.Edit afin que vous puissiez modifier l’enregistrement.

  4. Mettez à jour le statut de la commande sur Facture.

  5. Mettez à jour le vendeur sur WRK014.

    Pour vous aider à choisir le vendeur, le contrôle Entity form affiche automatiquement une recherche détaillée plus riche. Pour générer et afficher cette recherche, le contrôle utilise le groupe de champs DefaultLookup de l’entité Collaborateur dans Common Data Service. L’entité Collaborateur est utilisée, car le champ Vendeur est de type Collaborateur.

  6. Cliquez ou appuyez sur l’icône de coche pour enregistrer vos modifications.

Cette étape conclut cet article portant sur l’utilisation du contrôle Entity form dans vos applications. Nous espérons que les informations que nous vous avons données ici vous seront utiles dans votre prise en main du contrôle Entity form. Nous sommes impatients de savoir ce que vous pensez du contrôle Entity form et de nos efforts pour vous aider à ajouter rapidement des formulaires riches à vos applications.