Поділитися через


Функції AsType та IsType

Застосовується до: програм Canvas Програм Power Platform CLI на основі моделі

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

Нотатка

Команди PAC CLI pac power-fx не підтримують IsType.

Опис

Більш широкий вступ і додаткові відомості див. в статті Ознайомлення з посиланнями на записи та поліморфними підстановками.

Поле підстановки зазвичай стосується записів у певній таблиці. Оскільки тип таблиці дуже добре створений, доступ до полів підстановки можна отримати за допомогою простої точки. Наприклад, First( Бізнес-партнери ).' Основна контактна особа'. За допомогою поля «Повне ім'я» можна пройти з таблиці «Бізнес-партнери» до запису «Основна контактна особа» в таблиці «Контактні особи» та видобути поле «Повне ім'я».

Microsoft Dataverse також підтримує поліморфічні поля підстановки, які можуть посилатися на записи з набору таблиць, як показано в цих прикладах.

Поле підстановки Може посилатися на записи
Власник Користувачі або Робочі групи
Клієнт Бізнес-партнери або Контактні особи
Стосовно Бізнес-партнери, Контактні особи, Статті бази знань тощо.

У формулах компонованих програм використовуйте посилання на записи для роботи з поліморфними підстановками. Оскільки посилання на запис може посилатися на різні таблиці, ви не знаєте, які поля будуть доступними під час написання формули. Позначення Record.Field недоступне. Ці формули мають адаптуватися до записів, із якими взаємодіє програма під час роботи.

Функція 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 ) } )

Якщо він використовується в контексті запису, наприклад у полі «Колекція» або «Редагування елемента керування форми», можливо, знадобиться скористатися глобальним оператором порівняння для посилання на тип таблиці. Наприклад, нижченаведена формула буде дійсною для галереї, що відображає список контактних осіб, у якому Назва компанії є підстановкою Клієнт.

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. В області ліворуч виберіть + (Вставити)>Макет>Пуста вертикальна галерея.

    Вставлення елемента керування «Галерея» із пустим вертикальним макетом.

  4. Виберіть «Підключення до даних» і виберіть Контакти як джерело даних.

  5. Виберіть для макета галереї значення Заголовок і підзаголовок.

    Відкрийте засіб вибору макета на панелі властивостей.

    Встановіть макет на Заголовок і субтитри.

  6. В області Дані відкрийте список Title1 (Заголовок1), а потім виберіть пункт Повне ім’я.

    Встановіть значення title.

  7. Виберіть елемент керування «Підпис» з ім’ям Subtitle1 (Підзаголовок1).

    Встановіть значення субтитрів.

  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'
    )
    

    Екран завершено, на якому облікові записи та контакти перемішані в галереї.

    Підзаголовок в галереї відображає зазначені нижче значення.

    • «--», якщо 'Company Name' (Назва компанії) пуста.
    • «Бізнес-партнер»:, потім поле «Ім'я бізнес-партнера» з таблиці «Бізнес-партнери», якщо поле «Назва компанії» посилається на контактну особу.
    • «Бізнес-партнер»:, потім поле «Ім'я бізнес-партнера» з таблиці «Бізнес-партнери», якщо поле «Назва компанії» посилається на бізнес-партнера.

    Фактичні результати можуть відрізнятися від результатів, указаних у цьому розділі, оскільки в ньому використовуються зразки даних, які було змінено для відображення додаткових типів результатів.