Теги Dataverse Liquid
Теги Liquid Microsoft Dataverse используются для загрузки и отображения данных Dataverse или использования других служб платформы порталов Power Pages. Эти теги являются специфичными для Dataverse расширениями языка Liquid.
Диаграмма
Добавление списка в приложении на основе модели Power Apps на веб-страницу. Тег chart можно добавить в поле Копия на веб-странице или в поле Источник в веб-шаблоне. Шаги для добавления диаграммы приложения на основе модели Power Apps на веб-страницу см. в разделе Добавление диаграммы на веб-страницу на портале Power Pages.
{% chart id:"EE3C733D-5693-DE11-97D4-00155DA3B01E" viewid:"00000000-0000-0000-00AA-000010001006" %}
Параметры
С тегом chart должны указываться два параметра: chart id and viewid.
chart id
ИД визуализации диаграммы. Получить ИД можно, экспортировав диаграмму.
viewid
Идентификатор таблицы при открытии в редакторе представления.
powerbi
Добавляет панели мониторинга и отчеты Power BI на страницы. Тег можно добавить в поле Копия на веб-странице или в поле Источник в веб-шаблоне. Шаги для добавления отчета или панели мониторинга Power BI на веб-страницу портала Power Pages см. в разделе Добавление отчета или панели мониторинга Power BI на веб-страницу портала Power Pages.
Заметка
Чтобы тег работал, необходимо включить интеграцию Power BI из центра Power Pages в центре администрирования порталов Power Platform. Если интеграция Power BI не включена, панель мониторинга или отчет не будет отображаться.
Параметры
Тег powerbi принимает следующие параметры:
path
Путь к отчету или панели мониторинга Power BI. Если отчет или панель мониторинга Power BI безопасна, необходимо указать тип проверки подлинности.
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}
authentication_type
Типа проверки подлинности, необходимый для отчета или панели мониторинга Power BI. Допустимые значения для этого параметра:
Анонимный: позволяет внедрять публикацию в отчеты Power BI. Тип проверки подлинности по умолчанию — Анонимный. При использовании типа аутентификации "Анонимно", вы должны получить URL-адрес отчета Power BI, как описано в: Публикация в Интернете из Power BI
AAD: позволяет предоставлять доступ к защищенным панелям мониторинга или отчета Power BI аутентифицированным пользователям Power BI с удостоверением Microsoft Entra ID.
powerbiembedded: позволяет предоставлять общий доступ к безопасным отчетам или панелям мониторинга Power BI внешним пользователям, не имеющим лицензии Power BI или настройки проверки подлинности Microsoft Entra. Сведения об настройке службы Power BI Embedded см. в разделе Включение службы Power BI Embedded.
При добавлении безопасного отчета или панели мониторинга Power BI убедитесь, что к ней предоставлен общий доступ для Power Pages Microsoft Entra или служб Power BI Embedded.
Заметка
Значения параметра authentication_type
не учитывают регистр.
{% powerbi authentication_type:"AAD" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}
Можно также фильтровать отчет для одному или нескольким значениям. Синтаксис для фильтрации отчета следующий:
URL?filter=Таблица/Поле eq 'значение'
Например, допустим, требуется отфильтровать отчет, чтобы просмотреть данные для контакта с именем Bert Hair. Необходимо добавить в URL-адрес следующие данные:
?filter=Executives/Executive eq 'Bert Hair'
Полностью код выглядит так:
{% 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'" %}
Дополнительные сведения о фильтрации отчета: Фильтрация отчета с использованием параметров строки запроса в URL-адресе
Заметка
Анонимный отчет не поддерживает фильтрацию.
Также можно создать динамический путь с использованием переменной 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 %}
Дополнительные сведения о переменной Liquid: Переменные теги
tileid
Отображает определенную плитку панели мониторинга. Необходимо предоставить ИД плитки.
{% 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" %}
роли
Роли, назначенные отчету Power BI. Этот параметр работает только когда параметр authentication_type настраивается на powerbiembedded.
Если вы определили роли в Power BI и назначили их отчетам, необходимо определить соответствующие роли в теге Liquid powerbi. Роли позволяют фильтровать данные, которые должны отображаться в отчете. Можно выбрать несколько ролей разделены запятой. Дополнительные сведения по этому определение ролей в Power BI, см. Безопасность на уровне строки (RLS) с 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" %}
Если роль назначали отчету Power BI, и не указали параметр роли в теге Liquid или не указан роль в параметре, то отображается ошибка.
Совет
Если требуется использовать веб-роли, определенные на вашем сайте как роли Power BI, вы можете указать переменной и назначить веб-роли ей. После этого можно использовать определенную переменную в теге Liquid.
Предположим, вы определять 2 роли сети как Region_East и Region_West в вашем сайте. Вы можете присоединиться к ним с помощью кода: {% assign webroles = user.roles | join: ", " %}
В вышеуказанном фрагменте кода webroles
это переменная и роли Region_East сети и Region_West будут храниться и в ней.
Используйте переменную webroles
следующим образом в теге 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
Отображает указанный объект CMS порталов Power Pages как редактируемый на сайте для пользователей с разрешением изменения содержимого для этого объекта. Доступные для редактирования объекты включают page, snippets и 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 %}
Параметры
Первый параметр, относящийся к редактируемым, — это редактируемый объект, например набор веб-ссылок, фрагменты или текущая страница. Необязательный второй параметр указывает имя или ключ атрибута в этом объекте, который требуется отобразить и отредактировать. Это значение может быть именем атрибута таблицы или именем фрагмента, например.
После этих исходных параметров тег поддерживает множество необязательных именованных параметров.
class
Указывает значение атрибута class для корневого элемента, представляемого этим тегом.
default
Значение по умолчанию, отображаемое в случае, когда редактируемый элемент не имеет значения.
escape
Логическое значение, указывающее, будет ли для значения, отображаемого этим тегом, использоваться HTML-кодирование. Это значение по умолчанию: false.
liquid
Логическое значение, указывающее, должен ли обрабатываться какой-либо код шаблона Liquid, имеющийся в текстовом значении, отображаемом этим тегом. Это значение по умолчанию: true.
tag
Имя контейнерных HTML-тегов, отображаемых этим тегом. По умолчанию этот тег отображает элементы div. Рекомендуется в качестве значения этого параметра выбирать между div и span.
title
Указывает подпись для данного редактируемого элемента в интерфейсе редактирования содержимого. Если ничего не указано, понятная подпись будет создана автоматически.
type
Строковое значение, указывающее тип интерфейса редактирования, который предоставляется для редактируемых текстовых значений. Допустимые значения для этого параметра: html или text. Значение по умолчанию: html.
entitylist
Загружает указанный список по имени или идентификатору. Доступ к свойствам списка можно затем получить с помощью объекта entitylist, который доступен в блоке тега. Для отображения фактических записей результата для списка используйте тег entityview в блоке.
Если список загружен успешно, отображается содержимое внутри блока. Если список не найден, содержимое блока не отображается.
{% entitylist name:My List %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
По умолчанию объекту entitylist присваивается имя переменной entitylist. Если требуется, может быть указано другое имя переменной.
{% entitylist my_list = name:My List %}
Loaded list {{ my_list.adx_name }}.
{% endentitylist %}
Параметры
Для выбора загружаемого списка укажите только один из параметров id, name или key.
id
Загружает список по ИД GUID. ИД должен быть строкой, которую можно анализировать как GUID.
{% entitylist id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
Обычно литеральные строки GUID не используются. Вместо этого id указывается с помощью свойства GUID другой переменной.
{% entitylist id:page.adx_entitylist.id %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
name
Загружает список по имени.
{% entitylist name:My List %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
key
Загружает список по идентификатору или по имени. Если предоставленное значение ключа можно проанализировать как GUID, список загружается по идентификатору. В противном случае он загружается по имени.
<!-- key_variable can hold an ID or name -->
{% entitylist key:key_variable %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
language_code
Код языка Dataverse в виде целого числа для выбора загружаемых локализованных подписей списка. Если language_code не указан, используется язык по умолчанию подключения Dataverse приложения сайта.
{% entitylist name:"My List", language_code:1033 %}
Loaded list {{ entitylist.adx_name }}.
{% endentitylist %}
entityview
Загружает указанное представление Dataverse по имени или идентификатору. Доступ к свойствам представления — метаданным столбца представления, записям результата разбиения на страницы и т. д., — можно затем получить с помощью объекта entityview, который доступен в блоке тега.
Если представление загружено успешно, отображается содержимое внутри блока. Если представление не найдено, содержимое блока не отображается.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
По умолчанию объекту entityview присваивается имя переменной entityview. Если требуется, может быть указано другое имя переменной.
{% entityview my_view = logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ my_view.total_records }} total records.
{% endentityview %}
Если объект entityview вложен в блок entitylist, он наследует свою конфигурацию по умолчанию (размер страницы результатов, параметры фильтра и т. д.) от списка. Если объекту entityview не переданы параметры id или name представления, он загружает представление из объекта entitylist, в котором содержится.
{% 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 %}
Параметры
Укажите или id, или logical_name с именем для выбора загружаемого представления Dataverse. Если ни один из этих параметров не указан и тег entityview находится внутри тега entitylist, загружается представление по умолчанию из entitylist, в котором содержится entityview.
id
id должен быть строкой, которую можно анализировать как GUID.
{% entityview id:936DA01F-9ABD-4d9d-80C7-02AF85C822A8 %}
Loaded entity view {{ entityview.name }}.
{% endentityview %}
Обычно литеральные строки GUID не используются. Вместо этого id указывается с помощью свойства GUID другой переменной.
{% entityview id:request.params.view %}
Loaded entity view {{ entityview.name }} using view query string request parameter.
{% endentityview %}
logical_name
Логическое имя сущности Dataverse для загружаемого представления. Должно использоваться в сочетании с параметром name.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
name
Имя Dataverse для загружаемого представления. Должно использоваться в сочетании с logical_name.
{% entityview logical_name:'contact', name:"Active Contacts" %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
filter
Определяет, требуется ли фильтровать результаты представления по пользователю или учетной записи. Должно иметь строковое значение "пользователь" или "организация".
{% entityview id:request.params.view, filter:'user' %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% entityview id:request.params.view, filter:request.params.filter %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
metafilter
Указывает выражение фильтра метаданных списка для фильтрации результатов представления. Этот параметр действителен, только когда entityview используется в сочетании с entitylist. В большинстве случаев этот параметр задается на основе request.
{% 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
Указывает выражение сортировки для упорядочивания результатов представления. Выражение сортировки может содержать одно или несколько логических имен атрибутов сущности, за которым должно идти направление сортировки ASC или DESC.
{% entityview id:request.params.view, order:'name ASC, createdon DESC' %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% entityview id:request.params.view, order:request.params.order %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
page
Определяет загружаемую страницу результата представления. Если этот параметр не задан, загружается первая страница результатов.
В этот параметр необходимо передавать либо целое число, либо строку, которую можно проанализировать как целое число. Если значение для этого параметра указано, но равно NULL или по каким-то другим причинам не может быть проанализировано как целое число, загружается первая страница результатов.
{% entityview id:request.params.view, page:2 %}
Loaded page {{ entityview.page }} of entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% 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
Указывает число результатов, загружаемых для текущей страницы результатов. Если значение этого параметра не указано и объект entityview используется в блоке entitylist, используется размер страницы списка. Если он не находится внутри блока entitylist, используется значение по умолчанию (10).
В этот параметр необходимо передавать либо целое число, либо строку, которую можно проанализировать как целое число. Если значение для этого параметра указано, но равно NULL или по каким-то другим причинам не может быть проанализировано как целое число, используется размер страницы по умолчанию.
{% entityview id:request.params.view, page_size:20 %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% entityview id:request.params.view, page_size:request.params.pagesize %}
Loaded entity view with {{ entityview.total_records }} total records.
{% endentityview %}
search
Указывает выражение поиска, по которому требуется фильтровать результаты представления. Простые выражения поиска по ключевым словам фильтруют по тому, начинается ли атрибут с ключевого слова. Подстановочные символы * также можно включить в выражение.
{% entityview id:request.params.view, search:'John\*' %}
Loaded entity view with {{ entityview.total_records }} total matching records.
{% endentityview %}
Обычно значение данного параметра задается на основе request, чтобы фильтр поиска можно было задать на основе данных, введенных пользователем.
{% entityview id:request.params.view, search:request.params.search %}
Loaded entity view with {{ entityview.total_records }} total matching records.
{% endentityview %}
language_code
Код языка Dataverse в виде целого числа для выбора локализованных подписей представления сущности (подписи заголовков столбцов и т. д.) для загрузки. Если language_code не указан, используется язык по умолчанию подключения Dataverse приложения веб-сайта.
Если entityview используется в блоке entitylist, entityview наследует конфигурацию кода языка из entitylist.
{% entityview logical_name:'contact', name:"Active Contacts", language_code:1033 %}
Loaded entity view {{ entityview.name }}.
{% endentitylist %}
searchindex
Выполняет запрос по указателю поиска веб-сайта. Доступ к соответствующим результатам можно затем получить с помощью searchindex, доступного в блоке тега.
{% 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>
По умолчанию объекту указателя поиска присваивается имя переменной searchindex. Если требуется, может быть указано другое имя переменной.
{% searchindex liquid_search = query: 'support', page: params.page, page_size: 10 %}
{% if liquid_search.results.size > 0 %}
...
{% endif %}
{% endsearchindex %}
Параметры
Тег searchindex принимает следующие параметры.
query
Запрос, используемый для поиска результатов. Этот параметр должен принимать указанную пользователем часть запроса указателя (если она имеется.)
{% searchindex query: 'support' %}
...
{% endsearchindex %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% searchindex query: request.params.query %}
...
{% endsearchindex %}
Этот параметр поддерживает синтаксис средства синтаксического анализа запросов Lucene.
filter
Другой запрос, используемый для поиска результатов. Этот параметр должен принимать указанный разработчиком фильтр для результатов, если требуется.
{% searchindex query: request.params.query, filter: '+statecode:0' %}
...
{% endsearchindex %}
Этот параметр поддерживает синтаксис средства синтаксического анализа запросов Lucene.
Заметка
Разница между filter и query заключается в том, что хотя оба параметра принимают синтаксис средства синтаксического анализа запросов Lucene, параметр query предназначен для более свободного анализа этого синтаксиса ߝ так как предполагается, что большинство конечных пользователей не знакомы с этим синтаксисом. Поэтому в случае сбоя анализа параметра query согласно этому синтаксису, весь запрос представляется в виде escape-последовательности и передается как текст запроса. filter, с другой стороны, будет анализироваться строго и возвращает ошибку в случае недопустимого синтаксиса.
logical_names
Логические имена сущностей Dataverse, которыми будут ограниченны соответствующие результаты, в виде строки с разделителями-запятыми. Если они ни не указаны, возвращаются все соответствующие сущности.
{% searchindex query: request.params.query, logical_names: 'kbarticle,incident' %}
...
>
{% endsearchindex %}
page
Возвращаемая страница результатов поиска. Если она не указана, возвращается первая страница (1).
{% searchindex query: request.params.query, page: 2 %}
...
{% endsearchindex %}
Распространенный случай использования состоит в задании этого параметра на основе request.
{% searchindex query: request.params.query, page: request.params.page %}
...
{% endsearchindex %}
page_size
Размер возвращаемой страницы результатов. Если он не указан, используется размер по умолчанию (10).
{% searchindex query: request.params.query, page_size: 20 %}
...
{% endsearchindex %}
entityform
Полностью отображает форму, по имени или ИД.
Заметка
Тег entityform доступен только для использования в содержимом, отображаемом внутри шаблона страницы, основанного на веб-шаблоне. При попытке использовать этот тег внутри шаблона страницы, основанного на перезаписи, ничего не отображается. Может отображаться только один тег entityform или webform на одной странице. Теги entityform и webform после первого тега не будут отображаться.
{% entityform name: 'My Basic Form' %}
Параметры
name
Имя базовой формы, которую требуется загрузить.
{% entityform name:My Basic Form %}
webform
Полностью отображает многошаговую форму, по имени или ИД. Тег webform доступен только для использования в содержимом, отображаемом внутри шаблона страницы, основанного на веб-шаблоне. При попытке использовать этот тег внутри шаблона страницы, основанного на перезаписи, ничего не отображается. На одной странице можно отобразить только один тег entityform или webform. Теги entityform и webform после первого тега не будут отображаться.
{% webform name: 'My Multistep Form' %}
Параметры
name
Имя многошаговой формы, которую требуется загрузить.
{% webform name:My Multistep Form %}
codecomponent
Позволяет вставлять компоненты кода с помощью тега Liquid. Например, добавление настраиваемого элемента управления отображения карты на веб-страницу.
Параметры
name
Идентификатор или имя компонента кода.
свойство
Значения свойств, которые ожидает компонент кода, необходимо передать в виде пары ключ/значение, разделенных знаком ":" (знак двоеточия), где ключ — это имя свойства, а значение — строковое значение JSON.
{% codecomponent name:abc\_SampleNamespace.MapControl controlValue:'Space Needle' controlApiKey:<API Key Value> %}
Заметка
Требуемые свойства могут отличаться в зависимости от выбранного вами компонента.
См. Использование тега шаблона Liquid компонентов кода.