Функции AsType и IsType

Применимо к: приложениям на основе холста приложениям на основе модели интерфейс командной строки Power Platform

Проверяет ссылку на запись для определенного типа таблицы (IsType) и рассматривает ссылку как определенный тип (AsType).

Description

Ознакомьтесь с разделом Общие сведения о ссылках на записи и полиморфных подстановках для более широкого введения и более подробной информации.

Поле подстановки обычно ссылается на записи в определенной таблице. Поскольку тип таблицы хорошо установлен, вы можете получить доступ к полям подстановки с помощью простой точечной нотации. Например, First( Учетные записи ).'Основной контакт'.'Полное имя' переходит из таблицы Учетные записи к записи Основной контакт в таблице Контакты и извлекает поле Полное имя.

Microsoft Dataverse также поддерживает поля полиморфной подстановки, которые могут ссылаться на записи из набора таблиц, как в этих примерах.

Поле поиска Может ссылаться на
Ответственное лицо Пользователи или Рабочие группы
Клиент Организации или Контакты
В отношении Организации, Контакты, Статьи базы знаний и т. д.

В формулах приложений на основе холста используйте ссылки на записи для работы с полиморфными подстановками. Поскольку ссылка на запись может ссылаться на различные таблицы, вы не знаете, какие поля будут доступны, при написания формулы. Нотация Запись.Поле недоступна. Эти формулы должны адаптироваться к записям, с которыми приложение сталкивается при запуске.

Функция IsType проверяет, ссылается ли ссылка на запись на определенный тип таблицы. Функция возвращает логическое значение TRUE или FALSE.

Функция AsType рассматривает ссылку на запись как определенный тип таблицы и иногда называется приведением типов. Результат можно использовать как запись таблицы и снова использовать нотацию Запись.Поле для доступа ко всем полям этой записи. Ошибка возникает, если ссылка не имеет определенный тип.

Используйте эти функции вместе, чтобы сначала проверить тип таблицы записи, а затем рассматривать ее как запись этого типа, чтобы поля были доступны:

If( IsType( First( Accounts ).Owner, Users ),
    AsType( First( Accounts ).Owner, Users ).'Full Name',
    AsType( First( Accounts ).Owner, Teams ).'Team Name'
)

Эти функции нужны вам, только если вы обращаетесь к полям ссылки на запись. Например, вы можете использовать ссылки на записи в функции Filter без функций IsType или AsType:

Filter( Accounts, Owner = First( Users ) )

Точно так же вы можете использовать ссылки на записи с функцией Patch:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

При использовании в контексте записи, например в элементе управления Gallery или Edit form может потребоваться использовать глобальный оператор устранения неоднозначности для ссылки на тип таблицы. Например, эта формула будет эффективна для коллекции, которая отображает список контактов, где Название компании — это подстановка Клиент:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Для обеих функций вы указываете тип через имя источника данных, подключенного к таблице. Чтобы формула работала, вы также должны добавить в приложение источник данных для любых типов, которые вы хотите протестировать или привести. Например, вы должны добавить таблицу Пользователи в качестве источника данных, если вы хотите использовать IsType и AsType с подстановкой Владелец и записями из этой таблицы. Вы можете добавлять только источники данных, которые вы фактически используете в приложении; вам не нужно добавлять все таблицы, на которые может ссылаться подстановка.

Если ссылка на запись пустая, функция IsType возвращает FALSE, а функция AsType возвращается пусто. Все поля пустой записи будет пустыми.

Синтаксис

AsType( RecordReference, TableType )

  • RecordReference — обязательный аргумент. Ссылка на запись, часто поле подстановки, которое может ссылаться на запись в любой из нескольких таблиц.
  • TableType — обязательно. Конкретная таблица, на которую должен быть приведен тип записи.

IsType( RecordReference, TableType )

  • RecordReference — обязательный аргумент. Ссылка на запись, часто поле подстановки, которое может ссылаться на запись в любой из нескольких таблиц.
  • TableType — обязательно. Определенная таблица для тестирования.

Пример

Раздел Общие сведения о ссылках на записи и полиморфных подстановках содержит обширные примеры.

  1. Создайте пустое приложение на основе холста для планшетов.

  2. В левой области выберите Данные>Добавить данные. А затем добавьте таблицы Учетные записи и Контакты.

    Пустое приложение с двумя источниками данных: организации и контакты.

  3. В левой области выберите + (Вставить) >Макет>Пустая вертикальная коллекция.

    Вставьте элемент управления Gallery с пустым вертикальным макетом.

  4. Выберите Подключение к данным, затем выберите Контакты в качестве источника данных.

  5. Установите макет коллекции на Заголовок и подзаголовок.

    Откройте средство выбора макета на панели свойств.

    Установите макет

  6. На панели Данные откройте список Title1, затем выберите Полное имя.

    Установите значение заголовка.

  7. Выберите элемент управления метки Subtitle1.

    Установите значение подзаголовка.

  8. Задайте для свойства Text элемента Subtitle1 следующую формулу:

    If( IsBlank( ThisItem.'Company Name' ), "--",
        IsType( ThisItem.'Company Name', Accounts ),
            "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
        "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
    )
    

    Экран завершен, показывая организации и контакты, смешанные в коллекции.

    Подзаголовок в коллекции показывает эти значения:

    • "--", если 'Имя компании'пусто.
    • "Учетная запись: ", и затем поле Имя учетной записи из таблицы Учетные записи, если поле Название компании ссылается на учетную запись.
    • "Контакт: ", и затем поле Полное имя из таблицы Контакты, если поле Название компании ссылается на контакт.

    Ваши результаты могут отличаться от приведенных в этой теме, поскольку она использует образцы данных, которые были изменены для отображения дополнительных типов результатов.