Interroger des données

Effectué

Le connecteur Dataverse comporte des actions conçues pour récupérer les données de vos tables. Dans cette unité, nous allons aborder deux des plus courantes. L’action Obtenir une ligne par ID récupère une seule ligne avec l’ID unique que vous fournissez. Lorsque vous ne connaissez pas l’ID unique, vous pouvez utiliser l’action Répertorier les lignes, qui renvoie zéro à plusieurs lignes correspondant à vos critères de filtrage.

En élargissant les options pour ces actions, vous avez également les actions … à partir de l’environnement sélectionné vous permettant d’utiliser les mêmes actions avec un environnement autre que celui dans lequel vous créez. Explorons certaines des options disponibles permettant d’obtenir des données.

Sélectionner des colonnes

L’option Sélectionner des colonnes limite le nombre de colonnes renvoyées par l’action. Vous devez configurer la liste des colonnes en fonction des données nécessaires à vos étapes de flux suivantes. Fournir une liste de colonnes aide votre flux à être plus efficace. Veillez à utiliser le nom logique de la colonne de table, que vous pouvez trouver dans la section Options avancées des propriétés de la colonne. Par exemple, si vous souhaitez inclure les colonnes Prénom et Nom de la table Contact, vous devez fournir la liste de colonnes suivante, séparées par des virgules :

firstname,lastname

La spécification d’une liste de colonnes limite le nombre de colonnes qui s’affichent dans le contenu dynamique lorsque vous configurez les étapes suivantes du flux. Si les colonnes que vous attendez ne sont pas visibles, vérifiez votre option Sélectionner des colonnes dans l’action qui récupère les données.

Étendre la requête

Par défaut, lorsque les actions de récupération de données sont exécutées, elles récupèrent uniquement les données de la table principale spécifiée dans l’action. L’option Étendre la requête vous permet de fournir une expression de style OData afin d’inclure les données des tables associées. Vous pouvez trouver cette option sous Paramètres avancés.

Par exemple, la table Compte a une relation avec la table Contact pour indiquer le contact principal du compte. L’exemple suivant montre l’expression OData permettant d’inclure la colonne du nom complet et l’ID du contact principal dans la sortie de l’action.

primarycontactid($select=contactid,fullname)

Même si cette expression comprend des données dans la sortie des actions, elle n’inclut pas les colonnes de données dans le volet Contenu dynamique à des fins de sélection. Pour utiliser les données associées, vous devez y accéder à l’aide d’une expression de flux de travail.

Utiliser l’action Obtenir une ligne par ID

En général, l’action Obtenir une ligne par ID vous permet de récupérer des données de table Dataverse supplémentaires dans le cadre d’une logique de flux. Par exemple, si l’ajout d’une nouvelle ligne de table Compte déclenche votre flux, une action Obtenir une ligne par ID vous permet de récupérer l’adresse e-mail du contact principal associé. Dans cet exemple, il n’est pas nécessaire de récupérer le compte à l’aide de l’action Obtenir une ligne par ID, car les données de la ligne sont fournies en sortie du déclencheur.

Parfois, vous souhaiterez peut-être vous assurer que vous disposez des données les plus récentes à l’aide à nouveau de l’action Obtenir une ligne par ID dans votre logique de flux. Par exemple, si votre flux est interrompu pour une étape d’approbation, quelques jours peuvent s’écouler depuis la dernière fois que vous avez récupéré des données. Vous souhaiterez peut-être obtenir les dernières données après l’approbation à l’aide de l’action Obtenir une ligne par ID. Cette approche empêche votre flux d’agir sur la base de données périmées.

Si l’ID de la ligne que vous envisagez de créer à l’étape est Null, la meilleure action consiste à effectuer une vérification conditionnelle de la valeur avant d’exécuter l’étape Obtenir une ligne par ID. L’étape échoue si l’ID de ligne est Null. Une autre erreur courante survient si vous n’êtes pas autorisé à lire les données de la ligne.

Utiliser l’action Répertorier les lignes

L’action Répertorier les lignes est puissante, car vous pouvez fournir des critères simples ou complexes pour déterminer les lignes de données qu’elle renvoie. L’action prend en charge deux styles pour la façon dont vous spécifiez ce critère : les expressions de style OData ou Dataverse FetchXML. Vous pouvez composer des critères simples et complexes à l’aide des deux styles de critères. La plupart du temps, vos préférences déterminent le style à utiliser. Cependant, FetchXML dispose d’une prise en charge d’outils communautaires qui peut vous permettre de créer plus facilement des critères plus complexes.

Récupérer plus de 5 000 lignes

Par défaut, l’action ne renvoie pas plus de 5 000 lignes. Vous pouvez activer la fonctionnalité Pagination à partir de l’onglet Paramètres si vous devez renvoyer davantage de données. Lorsque vous activez la pagination, vous pouvez spécifier un format de page allant jusqu’à 100 000 lignes. Lorsque plusieurs pages de données sont possibles, vous devez gérer manuellement les pages de votre flux en obtenant le jeton de pagination et en transmettant la récupération des pages suivantes. Pour en savoir plus, consultez Activer la pagination.

Veillez à tenir compte de vos besoins futurs, car atteindre 5 000 lignes ne génère pas d’erreur. De plus, vous ne recevez pas toutes les données. Dans la mesure du possible, composez vos critères pour produire le plus petit résultat possible à traiter par votre flux.

Utiliser des critères de style OData

Dans la propriété Filtrer les lignes de l’action, vous pouvez fournir un filtre de style OData pour limiter le nombre de lignes renvoyées aux lignes qui remplissent les critères. Lorsque vous composez l’expression pour la propriété Filtrer les lignes, vous devez utiliser le nom logique de la colonne, que vous pouvez trouver dans la section Options avancées de la propriété. La logique suivante est un exemple simple qui filtre les contacts pour renvoyer toutes les lignes comportant le prénom John.

firstname eq 'John'

Vous pouvez également utiliser des opérateurs de filtre de requête et des fonctions de requête standard. Par exemple, la logique suivante modifierait le filtre pour utiliser la fonction contain :

contains(firstname,'John')

Pour en savoir plus, consultez les exemples dans Opérateurs de filtre standard et Fonctions de requête standard.

Vous pouvez utiliser des opérateurs logiques comme and, or et not. Par exemple, la logique suivante vérifie que la colonne de chiffre d’affaires se situe dans une plage de 2001 à 99999 :

revenue lt 100000 and revenue gt 2000

Vous pouvez spécifier la priorité à l’aide de parenthèses () avec des opérateurs logiques afin de pouvoir évaluer une expression complexe, comme suit :

(contains(name,'sample') or contains(name,'test')) and revenue gt 5000

Vous pouvez également filtrer selon les données associées. Par exemple, l’expression suivante renverrait les lignes de table Compte comportant un contact principal nommé Susanna :

primarycontactid/fullname eq 'Susanna (sample)'

Avec l’expression Filtrer les lignes, la propriété Trier par aide à déterminer l’ordre de sortie des lignes de l’action. Les noms doivent être une liste de noms de colonne logiques séparés par des virgules. Si seul le nom de la colonne est spécifié, la colonne est triée par ordre croissant. Vous pouvez indiquer un suffixe asc ou desc pour spécifier l’ordre croissant ou décroissant.

La propriété Nombre de lignes peut indiquer le nombre de lignes à renvoyer. Par exemple, si vous souhaitez vérifier s’il existe des lignes correspondantes, vous n’avez pas besoin de renvoyer plusieurs lignes.

Conseil

Lorsque vous testez votre flux, vous pouvez définir le paramètre Nombre de lignes sur 1 (ou un autre petit nombre) pour accélérer les tests. Si votre table comporte des milliers de lignes de données, l’utilisation de ce paramètre peut vraiment vous aider à résoudre rapidement les problèmes liés à votre flux au fur et à mesure que vous le développez.

Utiliser des critères de style FetchXML

FetchXML est un langage de requête privé basé sur XML de Dataverse vous permettant d’interroger des données. Vous pouvez composer du code FetchXML et l’utiliser comme critère de filtrage pour la sortie des lignes de l’action Répertorier les lignes. Vous pouvez composer manuellement le code XML ou créer votre filtre à l’aide de la Recherche avancée depuis une application Power Apps pilotée par modèle, puis télécharger le code FetchXML.

FetchXML comporte l’équivalent des fonctionnalités Sélectionner des colonnes, Trier par, Étendre la requête et Filtrer les lignes pour les critères de style OData.

L’expression suivante est un exemple de code FetchXML permettant de filtrer la table Compte selon les lignes avec un statut actif et un nom comportant Contoso. Cet exemple renvoie également l’adresse e-mail du contact principal associé à la ligne de compte.

<fetch>
  <entity name="account">
    <attribute name="name"/>
    <attribute name="address1_city"/>
    <attribute name="primarycontactid"/>
    <attribute name="telephone1"/>
    <attribute name="accountid"/>
    <order attribute="name" descending="false"/>
    <filter type="and">
      <condition attribute="statecode" operator="eq" value="0"/>
      <condition attribute="name" operator="like" value="%Contoso%"/>
    </filter>
    <link-entity alias="accountprimarycontactidcontactcontactid" name="contact" from="contactid" to="primarycontactid" link-type="outer" visible="false">
      <attribute name="emailaddress1"/>
    </link-entity>
  </entity>
</fetch>

Pour en savoir plus, consultez Créer une requête à l’aide de FetchXML.

À l’heure actuelle, les requêtes d’agrégation ne sont pas prises en charge lorsque vous utilisez l’action Répertorier les lignes avec des critères FetchXML.