Entités virtuelles dans Dataverse – Pourquoi et comment les utiliser?

Entités virtuelles dans Dataverse – Pourquoi et comment les utiliser?

Pourquoi implémenter des entités virtuelles dans Dataverse? Et si elles pouvaient vous aider à simplifier votre modèle de données pour trouver les choses plus aisément et rapidement? Dans cet article, on verra pourquoi et comment tirer profit de cet outil.

À quoi servent les entités virtuelles ?

En gros, les entités virtuelles peuvent être utilisées pour faire apparaître des données sans les stocker dans Dataverse (d’où le terme « virtuel »). Dans la documentation de Microsoft, on voit que l’on peut mettre des fichiers dans DropBox et les faire apparaître dans une sous-grille, par exemple.Elles peuvent également être utilisées pour trouver des entités se trouvant déjà dans Dataverse en regroupant de l’information dans un formulaire différent. Prenons deux exemples.

Deux exemples d’utilisation

a) Entités virtuelles – Regrouper différentes soumissions d’assurance

D’abord, pensons à un contexte dans lequel les entités virtuelles pourraient être utiles : la création de requêtes. On le sait, l’automatisation sauve beaucoup de temps. Toutefois, différents problèmes peuvent ralentir le processus. Quand c’est le cas, exécuter certains rapports peut sembler interminable. Ça gâche un peu l’expérience client.

Quand on concevait la solution TANDEM, on a rencontré ce problème. Parfois, produire un document pouvait prendre jusqu’à cinq minutes. En plus, le rapport était complexe. L’information était rassemblée à partir d’entités regroupées deux niveaux plus bas (1=>N=>N), ce qui entraînait des requêtes multiples. C’est ce qui semblait faire en sorte que ce soit aussi long.

Dans le cas qui nous intéresse, on avait une police d’assurance et son renouvellement. Le renouvellement était lié à différentes soumissions offrant des avantages différents (assurance vie, dentaire, santé, etc.). On voulait présenter en une seule ligne tous les avantages offerts par les différentes soumissions d’assurance vie liées à ce renouvellement. Puis, on voulait ajouter une autre ligne pour les soins dentaires et une autre pour les soins de santé.

Pour régler le problème, on a créé une entité virtuelle qui faisait les requêtes nécessaires à l’aide de FetchXML Builder pour faire apparaître l’information en mode entité virtuelle, prête à l’emploi. Ainsi, le temps de génération du rapport s’en est trouvé réduit à quelques secondes.

b) Entités virtuelles – Filtrage dynamique de l’affichage dans une sous-grille

Pour notre deuxième exemple, voyons comment changer dynamiquement le FetchXML d’une sous-grille selon des critères de filtrage. Le faire d’une façon prise en charge semble difficile. Vous pourriez créer un affichage requête utilisateur (viewSelector.setCurrentView()) vite fait ou encore passer outre le message RetrieveMultiple à l’aide d’un plug-in.

Toutefois, employer une entité virtuelle est également possible (c’est plus simple, selon moi). Ainsi, vous pourriez simplement présenter les données de l’entité réelle et filtrer en arrière-plan. Pensez, par exemple, à un affichage qui filtre selon une valeur du formulaire. L’affichage renvoie à l’enregistrement actif et s’actualise quand la valeur de champ change (après une sauvegarde). C’est l’entité virtuelle qui prend en charge l’opération.

Comment implémenter une entité virtuelle ?

La configuration initiale pour créer une entité virtuelle est très bien décrite ici, dans une série en quatre parties.Si vous décidez de procéder ainsi, vous devriez n’utiliser qu’un seul fournisseur de données virtuel pour toutes les entités virtuelles. Autrement, vous ne pourrez pas les regrouper. Donc, si vous avez une recherche de contact virtuelle sur un compte virtuel, par exemple, pour que le Dataverse accepte ce type de recherche, vous devrez utiliser le même fournisseur.

1. Instructions détaillées

Voyons maintenant étape par étape comment implémenter ça. D’abord, on va regarder des comptes placés sous un autre compte. Pour donner un exemple facile à comprendre, examinons les comptes se trouvant sous le compte parent du compte actuel. Ci-dessous, on peut voir les quatre comptes placés sous le compte parent, soit Adventure Works, Fourth Coffee, Fabrikam et Litware.

Virtual entities - Sister accounts and children

1a) D’abord,  inscrivez un nouveau fournisseur de données à l’aide du dernier outil d’inscription de plug-in.

Virtual entities - Create data provider

1b) À partir de là, créez également une nouvelle entité source de données.

Create new data source

1c) Cette source de données peut être utilisée sur toutes les entités virtuelles, si vous en avez plus d’une.

Virtual entities - Source filled out

1d) Prélevez votre assemblage et la classe où le code du plug-in s’exécute.

Pick your assembly

1e) Ajoutez un enregistrement pour indiquer la source.

Create record of datasource

1f) À partir de la liste, sélectionnez votre fournisseur de données et créez l’enregistrement.

Une fois créé, ça devrait ressembler à ça :

Record of data source created

2. Maintenant, créez l’entité virtuelle !

2a) Définissez l’entité virtuelle et choisissez la source de données que vous venez de créer.

Create virtual account

2b) Créez le champ suivant :

Recherche de Compte, jff_realacountid

2c) Créez le projet plug-in et ajoutez les deux packages NuGet suivants :

Add nuget packages

2d) Il vous faudra un visiteur :

2e) Et également le fournisseur :

2f) Quand c’est ajouté au formulaire, tout fonctionne comme prévu.

Final result

Comme vous le voyez, cette méthode peut être employée pour régler le problème dont on a parlé plus haut. Ainsi, on peut afficher des enregistrements liés que l’on ne pourrait pas voir par défaut en raison des limitations des sous-grilles. Voilà pourquoi ajouter des entités virtuelles au Dataverse, c’est un atout considérable !