События
Чемпионат мира Power BI DataViz
14 февр., 16 - 31 мар., 16
С 4 шансами войти, вы можете выиграть пакет конференции и сделать его в LIVE Grand Finale в Лас-Вегасе
ПодробнееЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
В мае 2021 года многие функции, которые ранее были необязательными, стали поведением по умолчанию для всех новых приложений. В этой статье представлены рекомендации для пользователей, которые разработали приложение до появления новых функций, о том, как обновить свое приложение, чтобы использовать новейшие функции.
Если вы создали приложение на основе холста с соединителем Dataverse или Dynamics 365 Connector до ноября 2019 года, тогда у вас может не быть преимуществ от использования текущего собственного соединения для Dataverse.
Если вы создали свое приложение до ноября 2019 года и не используете нативное подключение Dataverse, то в настройках на вкладке "Предстоящие функции" на вкладке "Устаревшие" вы найдете параметр Улучшение взаимодействия с источниками данных и представлениями Microsoft Dataverse, а также Реляционные данные, наборы параметров и другие новые функции для Microsoft Dataverse.
Обновите свое приложение, проверив настройки функций, а затем следуя приведенным ниже инструкциям:
Проверьте раздел Использование прекращено в Предстоящие функции. Если установлено значение Выкл., продолжайте со следующими инструкциями в качестве первого шага в преобразовании.
Если нет Реляционные данные, наборы параметров и другие новые функции для Microsoft Dataverse в Общие параметры или это уже Включено, пропустите следующие шаги и перейдите в следующий раздел.
Шаг 1. Включите функцию Использовать отображаемые имена:
Возможные ошибки и предложения:
Возможно, что некоторые из вновь показанных отображаемых имен могут конфликтовать с отображаемыми именами для других таблиц, полей или элементов управления. Например, у вас может быть элемент управления и поле с тем же именем. Вы можете изменить имя элемента управления на уникальное значение для исправления.
Для любого конфликта отображаемых имен таблицы или поля можно увидеть формулу, которая ожидает таблицу, но разрешается на локальное имя поля.
Используйте квадратную скобку с символом @, чтобы указать глобальную область, чтобы она разрешалась на таблицу, например, [@tableName].
Шаг 2. Установите для параметров Реляционные данные, наборы параметров и другие новые функции для Microsoft Dataverse и Использовать типы данных GUID вместо строк значение Вкл.:
Возможные ошибки и предложения:
Ошибки могут быть допущены на данном этапе, если вы используете поле выбора или жестко закодированные текстовые значения GUID.
Patch(Accounts, OptionSet1 = “12345”)
на Patch(Accounts, OptionSet.Item1)
, где Item1
соответствует значению 12345
. 015e45e1044e49f388115be07f2ee116
, преобразуйте ее в функцию, которая возвращает объект GUID; например GUID(“015e45e1044e49f388115be07f2ee116”)
.Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, рассмотрите возможность использования ThisItem.PrimaryContacts
(где PrimaryContacts — это имя таблицы) вместо этого.Используйте следующую инструкцию, чтобы установите для функции Улучшение взаимодействия с источниками данных и представлениями Microsoft Dataverse значение Вкл.:
Примечание
Если ваше приложение очень большое, добавление соединений источников данных обратно может занять некоторое время. Не закрывайте приложение во время этого процесса.
Чтобы преобразовать ваше приложение, использующее Dynamics 365 Connector, вам нужно удалить и добавить подключения к вашим источникам данных. Используйте приведенные ниже шаги для преобразования ваших подключений к вашим источникам данных.
Убедитесь, что для функции Улучшение взаимодействия с источниками данных и представлениями Microsoft Dataverse задано значение Вкл..
Удалите свои существующие подключения к источникам данных Dynamics 365.
Добавьте соединения с вашими источниками данных в Dataverse, используя новое взаимодействие выбора источника данных.
Примечание
Сохраните свое приложение.
Возможные ошибки и предложения:
Ошибки возможны при конвертировании, если вы не используете отображаемые имена, если используете строки GUID или если используете набор выбор.
Patch(Accounts, OptionSet1 = “12345”)
на Patch(Accounts, OptionSet.Item1)
, где Item1
соответствует значению 12345
. 015e45e1044e49f388115be07f2ee116
, преобразуйте ее в функцию, которая возвращает объект GUID; например GUID(“015e45e1044e49f388115be07f2ee116”)
.Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
, рассмотрите возможность использования ThisItem.PrimaryContacts
(где PrimaryContacts — это имя таблицы) вместо этого.Преобразование приложения для использования новых типов данных Наборы параметров и Два параметра с вспомогательными элементами управлениями может быть сложной задачей при обновлении приложения для использования новой функции Улучшить взаимодействие с источниками данных и представлениями Microsoft Dataverse.
Отдельные поля _myfield
и _myfield_label
были использованы для набора выбора ранее. Теперь есть один myfield
который можно использовать как для сравнений, не зависящих от языкового стандарта, так и для получения метки, зависящей от языкового стандарта.
Рекомендуется удалить существующие карточки данных и добавить их обратно для работы с вашим набором выбора. Например, если вы работаете с таблицей учетных записей и набором выбора "Категория", вы увидите, что свойство DataField карточки данных было установлено на _accountcategorycode_label
. В списке полей вы можете увидеть, что карточка данных имеет тип String:
С новой функцией Улучшение взаимодействия с источниками данных и представлениями Microsoft Dataverse вы больше не видите _accountcategorycode_label
. Оно заменено accountcategorycode
. Ваша карточка теперь помечена как пользовательская, и вы увидите ошибки. Удалите старую карточку данных и добавьте обратно Набор выбора. Новая карточка данных теперь учитывает Набор выбора.
Ранее, если вы хотели использовать значение набора выбора в выражении фильтра, необходимо было использовать поле Значение. Например:
Filter(Account,'Category Value' = "1")
Вам потребуется отредактировать эту формулу. Текстовый идентификатор набора выбора больше не используется для значения. Это выражение следует обновить до:
Filter(Account, Category= ‘Category (Accounts)’.’Preferred Customer’)
«Category(Accounts)» — это имя перечисления, используемое в поле категории таблицы учетных записей. Это локальный набор выбора. Вы можете прочитать больше о локальных и глобальных наборах выборах здесь: Глобальные наборы выбора.
Ниже приводится пример более раннего оператора Patch для набора выбора:
Patch( Accounts, First(Accounts), { ‘Category Value’: 1 } ) )
Вам необходимо обновить свои операторы, чтобы следовать этой форме:
Patch( Accounts, First(Accounts), { Category: ‘Category (Accounts)’.’Preferred Customer’ } )
Если отображаемое имя поля набора выбора и имя набора выбора одинаковы, вам нужно будет устранить неоднозначность формулы. Чтобы продолжить использование примера кода категории учетных записей, @ подразумевается использование набора выбора, а не поля.
Filter(Accounts, 'Category Code' = [@’Category Code’].'Preferred Customer')
Удалите существующие карточки данных и добавить их обратно для работы с вашим набором "Да/Нет". Типы данных ранее распознавались как простые логические значения, такие как true/on и false/off без меток:
С новой функцией Улучшение взаимодействия с источниками данных и представлениями Microsoft Dataverse ваша карточка теперь будет помечена как пользовательская, и вы увидите ошибки. Удалите старую карточку данных и добавьте обратно набор выбора. После добавления вы увидите элемент управления редактирования с двумя параметрами по умолчанию.
Если вы предпочитаете выключатель для своего логического поля, вы можете разблокировать карточку данных и заменить элемент управления в карточке данных выключателем. Вам также нужно будет установить эти свойства на выключатель.
Toggle1.Default = ThisItem.’Do not allow Bulk Emails’
Toggle1.TrueText = ‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’
Toggle1.FalseText = ‘Do not allow Bulk Emails (Accounts)’.Allow
DataCard.Value = If( Toggle1.Value,
‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’,
‘Do not allow Bulk Emails (Accounts)’.Allow )
Использование функции Patch с двумя параметрами должна работать "как есть". Она поддерживает прямое использование true и false, аналогично типу Boolean. Единственное отличие состоит в том, что если вы ранее поместили значение в элемент управления Подпись, который показывал true и false, теперь вместо него будут отображаться метки двух параметров.
Следующие рекомендации помогут обновить приложение, если в нем есть ссылки на полиморфные поля. Полиморфные подстановки из одного поля поддерживают ссылки на ограниченный набор из нескольких таблиц. Как и ссылки на других языках, ссылка на запись является указателем на конкретную запись в определенной таблице. Ссылка на запись содержит информацию таблицы, позволяющую указать на запись в нескольких других таблицах, что отличается от обычной подстановки, которая может указывать только на записи в одной таблице.
Например, поле "Владелец" в таблице может ссылаться на запись в таблице "Пользователи" или в таблице "Рабочие группы". Одно и то же поле подстановки в разных записях может ссылаться на записи в разных таблицах.
Ссылки на запись могут использоваться как полная запись:
Filter( Accounts, Owner = First( Teams ) )
Patch( Accounts, First( Accounts ), { Owner: First( Users ) })
Поскольку ссылка может указывать на различные таблицы, вы должны быть конкретными. Вы не можете использовать ThisItem.Owner.Name, так как поле имен в таблице Рабочая группа называется Название рабочей группы, а поле имени в таблице Пользователь называется Полное имя. Power Apps не знает, к какому типу подстановки вы обращаетесь, пока вы не запустите приложение.
Чтобы устранить эту проблему:
Есть две новые функции, которые вы можете использовать:
С помощью этих функций можно написать формулу, отображающую имя владельца, взятое из двух по-разному названных полей, на основе типа таблицы "Владелец":
If( IsType( ThisItem.Owner, [@Teams]),
AsType( ThisItem.Owner, [@Teams]).'Team Name',
AsType( ThisItem.Owner, [@Users]).'Full Name' )
Глобальный оператор устранения неоднозначности для [@Teams]
и [@Users]
используется для обеспечения того, чтобы вы ссылаетесь на глобальный тип таблицы. Хотя в этом случае это не обязательно, рекомендуется всегда быть точным. Отношения "один-ко-многим" часто конфликтует в области записей коллекции, и эта практика избегает этой путаницы.
Поле подстановки "Клиент" является еще одной полиморфной подстановкой, которая похожа на поле "Владелец". У каждой таблицы может быть только одно поле "Владелец". Но таблица может включать ноль, одно или несколько полей подстановки клиентов. Системная таблица "Контакты" включает в себя поле "Имя компании", который является полем подстановки "Клиент". Подробнее см. в разделе Отображение полей клиента.
Полиморфные подстановки не ограничивается организациями и контактами. Список таблиц является расширяемым с пользовательскими таблицами. Например, таблица "Факсы" имеет полиморфное поле подстановки "В отношении", который может ссылаться на таблицы "Учетные записи", "Контакты" и другие таблицы. Если у вас есть коллекция с источником данных, установленным на Факсы, вы можете использовать следующую формулу для отображения имени, связанного с полем подстановки "В отношении".
If( IsBlank( ThisItem.Regarding ), "",
IsType( ThisItem.Regarding, [@Accounts] ),
"Account: " & AsType( ThisItem.Regarding, [@Accounts] ).'Account Name',
IsType( ThisItem.Regarding, [@Contacts] ),
"Contacts: " & AsType( ThisItem.Regarding, [@Contacts] ).'Full Name',
"" )
Подробные сведения см. в разделе Поля подстановки "В отношении" и Отношения "В отношении".
В Dataverse таблицы, такие как "Факсы", "Задачи", "Адреса электронной почты", "Заметки", "Звонки", "Письма" и "Чаты" обозначены как действия. Вы также можете создавать свои собственные пользовательские таблицы действий.
Можно показать действия определенного типа (например, факсы или налоги) или все действия, связанные с таблицей, такой как учетная запись. Добавьте таблицу "Действия" и другие отдельные таблицы, данные которых планируется отображать в приложении на основе холста.
Каждый раз, когда вы добавляете запись (например, таблицу "Задачи"), создается запись в таблице "Действия" с полями, общими во всех таблицах действий. Ознакомьтесь с таблицей действий для получения подробной информации.
В следующем примере показано, что при выборе организации будут отображаться все действия, связанные с этой организацией:
Записи отображаются из таблицы "Действие". Но вы все еще можете использовать функцию IsType, чтобы определить, каким видом действий они являются. Опять же, прежде чем использовать IsType с типом таблицы, вы должны добавить необходимый источник данных.
Используя эту формулу, вы можете показать тип записи в элементе управления "Метка" в коллекции:
If( IsType( ThisItem, [@Faxes] ), "Fax",
IsType( ThisItem, [@'Phone Calls'] ), "Phone Call",
IsType( ThisItem, [@'Email Messages'] ), "Email Message",
IsType( ThisItem, [@Chats] ), "Chat",
"Unknown")
При создании таблицы можно включить вложения. Если вы установите флажок для включения вложений, вы создадите отношение "В отношении" с таблицей "Заметки", как показано на рисунке для таблицы "Учетные записи":
Вы не можете читать или фильтровать на основе поля "В отношении". Тем не менее, обратное отношение "один ко многим" для заметок доступно. Чтобы перечислить все заметки, связанные с таблицей учетных записей, можно использовать следующую формулу:
First( Accounts ).Notes
Вы не можете задать поле заметок в таблице с помощью функции Patch. Чтобы добавить запись в таблицу заметок, можно использовать функцию Relate. Сначала создайте заметку, как в этом примере:
Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note", isdocument:'Is Document (Notes)'.No } ) )
Примечание
Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).
Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).
События
Чемпионат мира Power BI DataViz
14 февр., 16 - 31 мар., 16
С 4 шансами войти, вы можете выиграть пакет конференции и сделать его в LIVE Grand Finale в Лас-Вегасе
ПодробнееОбучение
Схема обучения
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Сертификация
Продемонстрировать использование решений Microsoft Power Platform для упрощения, автоматизации и расширения бизнес-процессов для организаций в роли функционального консультанта.