Balises Liquid Dataverse
Les balises Liquid Microsoft Dataverse sont utilisées pour charger et afficher les données Dataverse ou utiliser d’autres services de l’infrastructure de Power Pages. Ces balises sont des extensions du langage Liquid propres à Dataverse.
graphique
Ajoutez un graphique d’application pilotée par modèle Power Apps à une page web. La balise de graphique peut être ajoutée dans le champ Copie d’une page Web ou dans le champ Source d’un modèle Web. Pour obtenir la procédure pour ajouter une application pilotée par modèle Power Apps à une page Web, voir Ajouter un graphique à une page Web dans Power Pages.
{% chart id:"EE3C733D-5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-000010001006" %}
Paramètres
Deux paramètres doivent être fournis avec la balise de graphique : ID du graphique et ID de la vue.
ID du graphique
ID de visualisation du graphique. Vous pouvez obtenir l’ID en exportant le graphique.
viewid
ID de table lorsqu’elle est ouverte dans l’éditeur de vue.
powerbi
Ajoute des tableaux de bord et des états Power BI aux pages. La balise de graphique peut être ajoutée dans le champ Copie d’une page Web ou dans le champ Source d’un modèle Web. Pour obtenir la procédure pour ajouter un état ou un tableau de bord Power BI à une page Web dans un Power Pages, consultez Ajouter un état ou un tableau de bord Power BI à une page Web dans Power Pages.
Note
Pour que la balise fonctionne, vous devez activer l’intégration de Power BI depuis le hub Power Pages dans le centre d’administration Power Platform. Si l’intégration de Power BI n’est pas activée, le tableau de bord ou l’état n’est pas affiché.
Paramètres
La balise powerbi accepte les paramètres suivants :
path
Chemin d’accès à l’état ou au tableau de bord Power BI. Si l’état ou le tableau de bord Power BI est sécurisé, vous devez fournir le type d’authentification.
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}
authentication_type
Type d’authentification requis pour l’état ou le tableau de bord Power BI. Les valeurs valides pour ce paramètre sont :
Anonyme : Vous permet d’intégrer des états Power BI à publier sur le web. Le type d’authentification par défaut est anonyme. Lorsque vous utilisez le type d’authentification Anonyme, vous devez obtenir l’URL de l’état Power BI, comme décrit dans : Publier sur le web à partir de Power BI
AAD : vous permet de partager des rapports ou tableaux de bord Power BI sécurisés avec des utilisateurs authentifiés Power BI Microsoft Entra ID.
powerbiembedded : Vous permet de partager des états ou des tableaux de bord Power BI sécurisés avec des utilisateurs externes qui ne disposent pas de la licence Power BI ou de la configuration d’authentification Microsoft Entra. Pour plus d’informations sur l’installation de service Power BI Embedded, voir Activer le service Power BI Embedded.
En ajoutant l’état ou le tableau de bord sécurisé Power BI, veillez à ce qu’il soit partagé avec les services Microsoft Entra ou Power BI Embedded de Power Pages.
Note
Les valeurs du paramètre authentication_type
ne sont pas sensibles à la casse.
{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}
Vous pouvez également filtrer le rapport sur une ou plusieurs valeurs. La syntaxe pour filtrer un rapport est :
URL?filter=Table/Champ eq ’valeur’
Par exemple, disons que vous souhaitez filtrer le rapport pour afficher les données d’un contact nommé Bert Hair. Vous devez ajouter l’URL avec les données suivantes :
?filter=Executives/Executive eq ’Bert Hair’
Le code complet est :
{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01?filter=Executives/Executive eq 'Bert Hair'" %}
Des informations supplémentaires sur le filtrage d’un rapport : Filtrer un rapport à l’aide des paramètres de chaîne de requête dans l’URL
Note
Les rapports anonymes ne prennent pas en charge le filtrage.
Vous pouvez aussi créer un chemin d’accès dynamique à l’aide de la variable Liquid capture
:
{% capture pbi_path %}https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01?filter=Executives/Executive eq '{{user.id}}'{% endcapture %}
{% powerbi authentication_type:"AAD" path:pbi_path %}
Des informations supplémentaires sur la variable Liquid : Balises de variables
tileid
Affiche la vignette spécifique du tableau de bord. Vous devez fournir l’ID de la vignette.
{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/dashboards/00000000-0000-0000-0000-000000000001" tileid:"00000000-0000-0000-0000-000000000002" %}
rôles.
Rôles attribués à l’état Power BI. Ce paramètre fonctionne uniquement lorsque le paramètre authentication_type est défini sur powerbiembedded.
Si vous avez défini des rôles dans Power BI et que vous les avez attribués aux états, vous devez spécifier les rôles suffisants dans la balise Liquid powerbi. Les rôles vous permettent de filtrer les données à afficher dans un état. Vous pouvez spécifier plusieurs rôles séparés par une virgule. Pour plus d’informations sur la définition de rôles dans Power BI, voir Sécurité au niveau de la ligne avec Power BI.
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection2" roles:"Region_East,Region_West" %}
Si vous avez attribué un rôle Power BI à un état, et que vous n’avez pas spécifié le paramètre rôles dans la balise Liquid ou que vous n’avez pas spécifié de rôle dans le paramètre, une erreur s’affiche.
Astuce
Si vous souhaitez utiliser les rôles web définis dans votre portail comme rôles Power BI, vous pouvez définir une variable et lui attribuer des rôles web. Vous pouvez ensuite les utiliser la variable définie dans la balise Liquid.
Disons que vous ont défini deux rôles web comme Region_East et Region_West sur votre site. Vous pouvez les joindre en utilisant le code : {% assign webroles = user.roles | join: ", " %}
Dans l’extraction de code ci-dessus, webroles
est une variable et les rôles web Region_East et Region_West sont enregistrés dans cet effet.
Utilisez la variable webroles
comme suit dans la balise Liquid :
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection2" roles:webroles%}
editable
Affiche un objet CMS précis de Power Pages comme modifiable sur le site, pour les utilisateurs possédant une autorisation de modification pour cet objet. Les objets modifiables comprennent les éléments page, snippets et weblinks.
{% editable page 'adx_copy' type: 'html', title: 'Page Copy', escape: false, liquid: true %}
{% editable snippets Header type: 'html' %}
<!--
An editable web link set required a specific DOM structure, with
certain classes on the containing element, as demonstrated here.
-->
{% assign primary_nav = weblinks[Primary Navigation] %}
{% if primary_nav %}
<div {% if primary_nav.editable %}class=xrm-entity xrm-editable-adx_weblinkset{% endif %}>
<ul>
<!-- Render weblinks... -->
</ul>
{% editable primary_nav %}
</div>
{% endif %}
Paramètres
Le premier paramètre défini sur Modifiable est l’objet modifiable, tel qu’un ensemble de liens web, des extraits ou la page actuelle. Le deuxième paramètre optionnel permet de spécifier un nom ou une clé d’attribut dans l’objet devant être affiché et modifié. Cette valeur peut être le nom d’un attribut de table ou un nom d’extrait de code, par exemple.
Après ces paramètres initiaux, la balise prend en charge de nombreux paramètres nommés optionnels.
class
Spécifie une valeur d’attribut class pour l’élément racine affiché par cette balise.
default
Une valeur par défaut affichée dans le cas où l’élément modifiable n’a pas de valeur.
escape
Une valeur booléenne indiquant si une valeur affichée par cette balise est codée en HTML. Cette valeur est False par défaut.
liquid
Une valeur booléenne indiquant si un code de modèle Liquid trouvé dans la valeur de texte affichée par cette balise doit être traité. Cette valeur est définie sur True par défaut.
tag
Le nom des balises HTML du conteneur affichées par cette balise. Cette balise affiche les éléments div par défaut. Il est recommandé que vous choisissiez entre div ou span comme valeur pour ce paramètre.
title
Spécifie une étiquette pour cet élément modifiable dans l’interface de modification de contenu. Si aucune n’est fournie, une étiquette conviviale est générée automatiquement.
type
Une valeur de chaîne indiquant le type d’interface de modification devant être présentée pour des valeurs de texte modifiables. Les valeurs valides de ce paramètre sont html ou texte. html est la valeur par défaut.
entitylist
Charge une liste donnée par nom ou ID. Il est alors possible d’accéder aux propriétés de la liste en utilisant un objet entitylist disponible dans le bloc de balises. Pour afficher les enregistrements de résultat de la liste, utilisez la balise entityview dans le bloc.
Si la liste est correctement chargée, le contenu du bloc est affiché. Si la liste est introuvable, le contenu du bloc n’est pas affiché.
{% entitylist name:My List %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
Par défaut, l’objet entitylist reçoit le nom de variable entitylist. Un nom de variable différent peut être fourni en option.
{% entitylist my_list = name:My List %}
Loaded list {{ my_list.adx_name }}.
{% endentitylist %}
Paramètres
Fournit seulement un id, name ou key pour sélectionner la liste à charger.
id
Charge une liste par l’ID GUID. L’id doit être une chaîne pouvant être analysée comme un GUID.
{% entitylist id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
Généralement, les chaînes GUID littérales ne sont pas utilisées. À la place, l’ID est spécifié en utilisant une propriété GUID d’une autre variable.
{% entitylist id:page.adx_entitylist.id %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
name
Charge une liste par nom.
{% entitylist name:My List %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
key
Charge une liste par ID ou par nom. Si la valeur de clé fournie peut être analysée comme GUID, la liste est chargée par ID. Sinon, elle est chargée par nom.
<!-- key_variable can hold an ID or name -->
{% entitylist key:key_variable %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
language_code
Un code langue entier Dataverse pour sélectionner les étiquettes localisées de la liste devant être chargées. Si aucun language_code n’est fourni, la langue par défaut de la connexion Dataverse de l’application du site est utilisée.
{% entitylist name:"My List", language_code:1033 %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
affichage des entités
Charge un affichage Dataverse donné, par nom ou ID. Il est alors possible d’accéder aux propriétés de la vue ߝ des métadonnées de la colonne de la vue, aux enregistrements de résultat paginés, etc., en utilisant un objet entityview disponible dans le bloc de balises.
Si la vue est correctement chargée, le contenu du bloc est affiché. Si la vue est introuvable, le contenu du bloc n’est pas affiché.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Par défaut, l’objet entityview reçoit le nom de variable entityview. Un nom de variable différent peut être fourni en option.
{% entityview my_view = logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ my_view.total_records }} total records.
{% endentityview %}
Si entityview est imbriqué dans un bloc entitylist, il hérite sa configuration par défaut (taille de la page de résultats, options de filtre, etc.) de la liste. Si aucun paramètre d’ID ou de nom de vue n’est fourni à entityview, la vue par défaut est chargée à partir de l’élément entitylist associé.
{% entitylist id:page.adx_entitylist.id %}
{% entityview %}
Loaded default view of the list associated with the current page, with {{ entityview.total_records }} total records.
{% endentityview %}
{% endentitylist %}
Paramètres
Fournissez soit id, soit logicalname avec un nom pour sélectionner la vue Dataverse à charger. Si aucun paramètre n’est fourni et que la balise entityview est imbriquée dans une balise entitylist, la vue par défaut de l’élément entitylist associé est chargée.
id
id doit être une chaîne pouvant être analysée comme un GUID.
{% entityview id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}
Loaded entity view {{ entityview.name }}.
{% endentityview %}
Généralement, les chaînes GUID littérales ne sont pas utilisées. À la place, l’ID est spécifié en utilisant une propriété GUID d’une autre variable.
{% entityview id:request.params.view %}
Loaded entity view {{ entityview.name }} using view query string request parameter.
{% endentityview %}
logical_name
Le nom logique de l’entité Dataverse de l’affichage devant être chargé. Doit être utilisé en association avec name.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
name
Le nom Dataverse de l’affichage devant être chargé. Doit être utilisé en association avec logical_name.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
filter
Spécifie si les résultats de l’affichage doivent être filtrés par utilisateur ou par compte. Doit posséder une valeur de chaîne d’ « utilisateur » ou de « compte ».
{% entityview id:request.params.view, filter:'user' %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% entityview id:request.params.view, filter:request.params.filter %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
metafilter
Spécifie l’expression du filtrage de métadonnées de la liste par lequel filtrer les résultats d’affichage. Ce paramètre est valide uniquement lorsque entityview est utilisé en association avec la liste d’entités. Dans la plupart des cas, ce paramètre est réglé sur une demande.
{% entitylist id:page.adx_entitylist.id %}
{% entityview id:request.params.view, metafilter:request.params.mf %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
{% endentitylist %}
order
Spécifie une expression de tri pour ordonner les résultats d’affichage. Une expression de tri peut contenir un ou plusieurs noms logiques d’attribut d’entité, suivi par un sens de tri croissant (ASC) ou décroissant (DESC).
{% entityview id:request.params.view, order:'name ASC, createdon DESC' %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% entityview id:request.params.view, order:request.params.order %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
page
Spécifie l’affichage de la page de résultats à charger. Si ce paramètre n’est pas spécifié, la première page de résultats est chargée.
Ce paramètre doit être transmis comme valeur entière ou une chaîne pouvant être analysée comme un entier. Si une valeur est fournie pour ce paramètre, mais que la valeur est nulle ou ne peut pas être autrement analysée comme un entier, la première page de résultats est chargée.
{% entityview id:request.params.view, page:2 %}
Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% entityview id:request.params.view, page:request.params.page %}
Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.
{% endentityview %}
page_size
Spécifie le nombre de résultats à charger pour la page de résultats en cours. Si aucune valeur n’est fournie pour ce paramètre et qu’entityview est utilisé dans un bloc entitylist, la taille de la page de la liste est utilisée. S'il ne se trouve pas dans un bloc entitylist, une valeur par défaut de 10 est utilisée.
Ce paramètre doit être transmis comme valeur entière ou une chaîne pouvant être analysée comme un entier. Si une valeur est fournie pour ce paramètre, mais que la valeur est nulle ou ne peut pas être autrement analysée comme un entier, la taille de page par défaut est utilisée.
{% entityview id:request.params.view, page_size:20 %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% entityview id:request.params.view, page_size:request.params.pagesize %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
search
Spécifie une expression de recherche par laquelle filtrer les résultats affichés. De simples expressions de recherche de mot-clé filtrent si les attributs commencent par le mot-clé. Des caractères génériques * peuvent également être inclus dans l’expression.
{% entityview id:request.params.view, search:'John\*' %}
Loaded entity view with {{ entityview.total_records }} total matching records.
{% endentityview %}
Un cas d’utilisation commun consiste à régler ce paramètre suivant une demande, de manière à ce que le filtre de recherche puisse être basé sur une entrée utilisateur.
{% entityview id:request.params.view, search:request.params.search %}
Loaded entity view with {{ entityview.total_records }} total matching records.
{% endentityview %}
language_code
Un code langue entier Dataverse pour sélectionner les étiquettes localisées de la liste d’entités (étiquettes d’en-tête de colonne, etc.) à charger. Si aucun language_code n’est fourni, la langue par défaut de la connexion Dataverse de l’application du site Web est utilisée.
Si entityview est utilisé dans un bloc entitylist, entityview hérite sa configuration de code de langue d’entitylist.
{% entityview logical_name:'contact', name:"Active Contacts", language_code:1033 %}
Loaded entity view {{ entityview.name }}.
{% endentitylist %}
searchindex
Exécute une requête dans l’index de recherche du site web. Il est alors possible d’accéder aux résultats correspondants en utilisant un searchindex qui est disponible dans le bloc de balises.
{% searchindex query: 'support', page: params.page, page_size: 10 %}
{% if searchindex.results.size > 0 %}
<p>Found about {{ searchindex.approximate_total_hits }} matches:</p>
<ul>
{% for result in searchindex.results %}
<li>
<h3><a href={{ result.url | escape }}>{{ result.title | escape }}</a></h3>
<p>{{ result.fragment }}</p>
</li>
{% endfor %}
</ul>
{% else %}
<p>Your query returned no results.</p>
{% endif %}
{% endsearchindex %}
<style>
.highlight {background-color: #FFFCAC;}
</style>
Par défaut, l’objet index de recherche reçoit le nom de variable searchindex. Un nom de variable différent peut être fourni en option.
{% searchindex liquid_search = query: 'support', page: params.page, page_size: 10 %}
{% if liquid_search.results.size > 0 %}
...
{% endif %}
{% endsearchindex %}
Paramètres
La searchindex balise accepte les paramètres suivants.
query
La requête utilisée pour la correspondance des résultats. Ce paramètre est destiné à accepter la partie spécifiée par l’utilisateur de la requête d’index (le cas échéant).
{% searchindex query: 'support' %}
...
{% endsearchindex %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% searchindex query: request.params.query %}
...
{% endsearchindex %}
Ce paramètre supporte la syntaxe de l’analyseur de requête Lucene.
filter
Une autre requête utilisée pour la correspondance des résultats. Ce paramètre est destiné à accepter un filtre spécifié par le développeur pour les résultats, si souhaité.
{% searchindex query: request.params.query, filter: '+statecode:0' %}
...
{% endsearchindex %}
Ce paramètre supporte la syntaxe de l’analyseur de requête Lucene.
Note
La différence entre filter et query tient dans le fait que les deux accepteront la syntaxe de l’analyseur de requête Lucene, query est destiné à être plus indulgent concernant l’analyse de cette syntaxe ߝ dans la mesure où l’on considère que la plupart des utilisateurs finaux ne connaitront pas cette syntaxe. Donc, dans le cas où l’analyse query selon cette syntaxe échouerait, la requête entière sera placée dans une séquence d’échappement et soumise comme texte de requête. filter, de son côté, sera analysé strictement et retournera un message d’erreur en cas de syntaxe invalide.
logical_names
Les noms logiques d’entité Dataverse issus des résultats correspondants seront restreints, comme une chaîne délimitée par des virgules. S’ils ne sont pas fournis, toutes les entités correspondantes sont retournées.
{% searchindex query: request.params.query, logical_names: 'kbarticle,incident' %}
...
>
{% endsearchindex %}
page
La page de résultat de recherche devant être retournée. Si elle n’est pas fournie, la première page (1) est retournée.
{% searchindex query: request.params.query, page: 2 %}
...
{% endsearchindex %}
Un cas d’utilisation commun consiste à régler ce paramètre en se basant sur une demande.
{% searchindex query: request.params.query, page: request.params.page %}
...
{% endsearchindex %}
page_size
La taille de la page de résultats devant être retournée. Si elle n’est pas fournie, une taille par défaut de 10 est utilisée.
{% searchindex query: request.params.query, page_size: 20 %}
...
{% endsearchindex %}
formulaire d’entité
Affiche complètement un formulaire, par nom ou ID.
Note
La balise entityform est utilisable uniquement dans un contenu affiché à l’intérieur d’un modèle de page basé sur un modèle Web–. Toute tentative d’utilisation de la balise à l’intérieur d’un modèle de page basé sur une réécriture n’affichera rien. Il se peut que vous ne puissiez afficher qu’une seule balise entityform ou webform par page. balises entityform ou webform en cas de non affichage de la première balise.
{% entityform name: 'My Basic Form' %}
Paramètres
name
Le nom du formulaire de base que vous souhaitez charger.
{% entityform name:My Basic Form %}
webform
Affiche complètement un formulaire à plusieurs étapes configuré , par nom ou ID. La balise webform est utilisable uniquement dans un contenu affiché à l’intérieur d’un modèle de page basé sur un modèle Web. Toute tentative d’utilisation de la balise à l’intérieur d’un modèle de page basé sur une réécriture n’affichera rien. Vous ne pouvez afficher qu’une seule balise entityform ou webform par page. balises entityform ou webform en cas de non affichage de la première balise.
{% webform name: 'My Multistep Form' %}
Paramètres
name
Le nom du formulaire à plusieurs étapes que vous souhaitez charger.
{% webform name:My Multistep Form %}
codecomponent
Vous permet d’intégrer des composants de code à l’aide d’une balise Liquid. Par exemple, ajouter un contrôle personnalisé d’affichage de carte à une page Web.
Paramètres
name
ID ou nom du composant de code.
propriété
Les valeurs des propriétés attendues par le composant de code doivent être transmises sous forme de paire clé/valeur séparées par ":" (signe deux-points), où key est le nom de la propriété et la valeur est la valeur de la chaîne JSON.
{% codecomponent name:abc\_SampleNamespace.MapControl controlValue:'Space Needle' controlApiKey:<API Key Value> %}
Note
Les propriétés requises peuvent être différentes selon le composant que vous choisissez.
Voir Utiliser les composants de code de l’indicateur de modèle Liquid.