Динамическое связывание наборов данных с отчетом с разбивкой на страницы

Отчеты Power BI и отчеты с разбивкой на страницы создаются на основе существующего набора данных. Этот набор данных определяет схему данных, используемую визуальными элементами отчета. С помощью динамической привязки можно выбрать набор данных во время внедрения визуального элемента отчета с разбивкой на страницы.

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

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

Динамическое подключение отчета к нескольким наборам данных

Отчеты и наборы данных могут находиться в отдельных рабочих областях , однако обе рабочие области должны иметь емкость.

При внедрении для клиентов маркер внедрения должен включать разрешения как для отчета, так и для динамического привязанного набора данных. Используйте новый API для создания маркера внедрения, который поддерживает элементы Power BI, такие как отчеты и панели мониторинга.

При внедрении для вашей организации маркер Azure Active Directory (AD), используемый пользователем, должен иметь соответствующие разрешения для всех элементов Power BI.

Пример 1. Внедрение отчета с разбивкой на страницы с динамической привязкой

Чтобы реализовать внедренный отчет с разбивкой на страницы с помощью динамической привязки, добавьте свойство datasetBindings в объект конфигурации внедрения, как показано в следующем примере.

let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: "reportId",
    permissions: permissions,
    datasetBindings: [{
            sourceDatasetId: "originalDatasetId",
            targetDatasetId: "notOriginalDatasetId"
        }]
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);

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

Визуальный элемент отчета с разбивкой на страницы — это отчет с разбивкой на страницы, внедренный в отчет Power BI. Чтобы реализовать внедренный визуальный элемент отчета с разбивкой на страницы с помощью динамической привязки, добавьте свойство datasetBinding в объект конфигурации внедрения, как показано в следующем примере.

let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: "reportId",
    permissions: permissions,
    datasetBinding: {
        datasetId: "notOriginalDatasetId",
        paginatedReportBindings: [{
            sourceDatasetId: "originalDatasetId",
            targetDatasetId: "notOriginalDatasetId"
        }]
    }
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);

Рекомендации и ограничения

  • Динамически выбранный набор данных должен использовать ту же схему данных в отчете.
  • При внедрении для клиентов создайте маркер внедрения с помощью нового API.
  • При внедрении для организации убедитесь, что у пользователя есть разрешения как для отчета, так и для набора данных.
  • Свойство datasetBinding не может быть пустым. Он должен содержать, datasetId, paginatedReportBindingsили обоих.
  • Значения datasetId и targetDatasetId не должны совпадать. Привязка работает независимо для PBIX и отчетов с разбивкой на страницы.
  • Свойство datasetBinding может содержать несколько объектов.