Определяемые пользователем функции DAX (предварительная версия)

Замечание

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

Определяемые пользователем функции выражений анализа данных (DAX) позволяют повторно использовать, параметризованную логику DAX в модели, упрощая запись, обслуживание и совместное использование кода DAX. Вместо многократного повторения формул в мерах, вычисляемых столбцах и визуализациях, определяемые пользователем функции предлагают гибкость, присущую программированию, в ваших семантических моделях, позволяя определять функции один раз, а затем использовать их везде, где поддерживается DAX. Дополнительные сведения см. в статье о определяемых пользователем функциях DAX.

Зачем использовать определяемые пользователем функции?

  • Повторное использование и согласованность: определите вычисление один раз и повторно используйте его везде.
  • Удобство обслуживания. Обновление логики в одном месте для исправления или развития правил.
  • Безопасная разработка: дополнительные подсказки типов и вспомогательные средства проверки типов поддерживают прогнозируемый, устойчивый к ошибкам код.
  • Объекты модели первого класса: UDF находятся в модели и могут просматриваться в обозревателе моделей.

Начало работы

Чтобы попробовать определяемые пользователем функции на настольном приложении, выполните следующее:

  1. Перейдите к Файл > Параметры и настройки > Параметры.
  2. Выберите функции предварительной версии и проверьте определяемые пользователем функции DAX.
  3. Нажмите кнопку "ОК " и перезапустите Power BI Desktop.

Определение функции

Вы можете определить определяемую пользователем функцию в Power BI Desktop с помощью представления запросов DAX (DQV) или представления TMDL.

Общий синтаксис

Общий синтаксис для UDF:

/// Optional description above the function
FUNCTION <FunctionName> = ( <ParameterName>: <ParameterType>, ... ) => <FunctionBody>

Пример: простая налоговая функция

Ниже приведен простой пример в DQV , который добавляет налог на указанную сумму. Вы также можете оценить UDF в DQV.

DEFINE
    /// AddTax takes in amount and returns amount including tax
    FUNCTION AddTax = (
            amount : NUMERIC
        ) =>
        amount * 1.1

EVALUATE
{ AddTax ( 10 ) }
// Returns 11

После определения UDF можно обновить модель или использовать CodeLens для добавления функции в модель.

Снимок экрана: представление запроса DAX в Power BI Desktop с выделением двух расположений, где можно сохранить определяемую пользователем функцию. Первым является модель обновления с кнопкой