Внедрение быстрого отчета в приложение встроенной аналитики Power BI для вашей организации

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

В этом руководстве описано, как:

  • Настройка внедренной среды
  • Настройка объекта для хранения сведений о источнике данных и настройка отчета
  • Передайте этот объект в API для добавления возможностей изучения данных в приложение.

Чтобы использовать этот интерфейс, пользователям потребуется войти в Power BI.

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

Важный

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

Необходимые условия

Прежде чем приступить к работе с этим руководством, убедитесь, что у вас есть зависимости Power BI и код, перечисленные ниже:

Метод

В следующих разделах объясняется, как внедрить и настроить содержимое Power BI с помощью избранного текстового редактора.

Интерфейс IQuickCreateConfiguration отображает свойства, которые объект конфигурации может предоставить API клиента Power BI для набора данных, который требуется создать:

Пример

interface IQuickCreateConfiguration { 
    type?: "quickCreate"; 
    accessToken: string; 
    settings?: ISettings; 
    tokenType?: TokenType; 
    theme?: IReportTheme; 
    embedUrl?: string; 
    datasetCreateConfig: IDatasetCreateConfiguration; 
    reportCreationMode?: ReportCreationMode; 
    eventHooks?: EventHooks; 
}

Разрешение маркера доступа для QuickCreate

QuickCreate поддерживает только маркеры AAD. Убедитесь, что приложение имеет следующие области:

  • Content.Create
  • Dataset.ReadWrite.All
  • Report.Read.All
  • Workspace.Read.All

Дополнительные сведения см. в статье Регистрация приложения для внедрения содержимого Power BI.

URL-адрес внедрения

Уникальный для этой формы внедрения, этот интерфейс имеет специальный маршрут /quickcreate. Типичный URL-адрес внедрения для этого интерфейса выглядит следующим образом: https://app.powerbi.com/quickcreate

Шаг 1.1. Создание набора данных без источника данных

PowerBI позволяет разработчикам включать данные непосредственно в запрос к Power BI, если вы не можете настроить источник данных. Мы ограничиваем размер запроса до 16 МБ. Обратите внимание, что из-за отсутствия источника данных для подключения к Power BI невозможно обновить набор данных после создания.

  1. IDataTable

    IDataTable — это по сути оболочка массива строк 2D, в котором необходимо заполнить данные. Хотя данные являются массивом, мы поддерживаем только 1 таблицу данных. Имя может быть задано вами, но оно должно соответствовать имени в ITableSchema.

    Чтобы Power BI анализировать данные в правильном формате, значения данных должны быть отформатированы после спецификации значения языка M. Свойство языкового стандарта, определенное в IQuickCreateConfiguration, также влияет на анализ значений. Дополнительные сведения см. в разделе значения языка M — PowerQuery M.

    Данные должны передаваться в строках. Каждая строка должна содержать одинаковое количество столбцов, определенных в ITableSchema.  

    Заметка

    Данные и таблицаSchemaList должны находиться в парах.

Пример

const data: IDataTable = [
    { "name": "MyTableName", 
      "rows": [ 
              ["1", "1", "1991"], 
              ["1", "1", "1991"], 
        ]
    } 
] 

Заметка

В настоящее время невозможно настроить свойство name, поэтому нельзя назвать таблицу. Имя свойства по умолчанию — Table.

  1. ITableSchema

    Для понимания данных Power BI необходимо указать схему для каждого столбца таблицы. Каждая схема столбцов должна иметь имя и тип. Имя будет использоваться в качестве имени списка полей после создания набора данных. Тип — это подмножество спецификации типа языка M. Поддерживаемые типы удобно перечислены в DataType. Дополнительные сведения см. в разделе Типы языков M — PowerQuery M.

    Как и свойство данных, хотя tableSchemaList определен как массив, мы поддерживаем только одну таблицу.

    export const enum DataType { 
        Number = "Number", 
        Currency = "Currency", 
        Int32 = "Int32", 
        Percentage = "Percentage", 
        DateTime = "DateTime", 
        DateTimeZone = "DateTimeZone", 
        Date = "Date", 
        Time = "Time", 
        Duration = "Duration", 
        Text = "Text", 
        Logical = "Logical", 
        Binary = "Binary",  
        }
    

    Помимо имени и dataType пользователи могут указывать агрегирование по умолчанию для столбцов, предоставляя необязательное свойство aggregateFunction для каждого столбца. Число поддерживаемых агрегатных функций основано на типе AggregateFunction Enum.

Пример

const tableSchemaList: ITableSchema = [{ 
    name: "MyTableName",  
    columns: [ 
        { 
            name: "createdby", 
            dataType: DataType.Text
             aggregateFunction: 6 // Count 
        }, 
        { 
            name: "createdon", 
            dataType: DataType.DateTime 
        }, 
        { 
            name: "size", 
            dataType: DataType.Number 
        } 
    ]     
}];   
const data: IDataTable = [
    { 
        "name": "MyTableName", 
        "rows": [ 
                ["1", "1", "1991"],
                ["1", "1", "1991"],
        ]
    }
] 
const datasetCreateConfig: IDatasetCreateConfiguration = {
    "modelName": "my model", 
    "locale": "en_US", 
    "tableSchemaList": tableSchemaList,
    "data": data
} 

Шаг 1.2. Создание набора данных с существующим источником данных

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

Документ Mashup

Документы Mashup или документы M имеют собственные языковые спецификации. В целях этого интерфейса внедрения самый простой способ начать — подключиться к источнику данных в Power BI Desktop, а затем скопировать полученный запрос mashup из представления редактора запросов. Дополнительные сведения см. в документации по редактору запросов для Power BI Desktop.

Пример

Let Source = Csv.Document(Web.Contents("https://yourdomain.com/sample.csv"), [Delimiter=",", QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeader(Source, [PromoteAllScalars=true]) in #"Promoted Headers";" 

Чтобы превратить исходный код выше в документ mashup, просто необходимо добавить раздел . В разделе содержится следующее:

  • имя раздела;
  • shared section-member-name = expression;
  • где выражение будет вашим запросом на mashup,
  • и имя-член раздела будет отображаться в Power BI в виде имени таблицы или сущности.

Для примера запроса mashup, указанного выше, ниже приведен соответствующий пример документа mashup:

"section Section1; shared #"Table" = let Source = Csv.Document(Web.Contents("https://yourdomain.com/sample.csv"), [Delimiter=",", QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]) in #"Promoted Headers";" 

  После создания документа mashup можно определить, какие части будут статическими и какие части будут динамическими и могут быть заполнены программным способом. В приведенном выше примере у нас есть некоторые настраиваемые переменные, домен веб-содержимого, разделитель, стиль кавычки и, если вы хотите повысить уровень заголовков или нет. Таким образом, запрос можно превратить в шаблон и заполнить соответствующими параметрами на стороне приложения размещения в зависимости от данных, которые пользователь использует в то время.

Место действия

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

Конфигурация источника данных

Авторизация в источнике данных

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

Заметка

Если вы включаете данные непосредственно в запрос, следует опустить свойство dataSourceConnection.

DataCacheMode

Для большинства источников данных режим импорта должен соответствовать вашим потребностям. Однако в некоторых случаях, когда данные изменяются быстро или когда источники данных очень большие, можно также использовать режим DirectQuery. Если вы думаете, что это может применяться к вам, ознакомьтесь с дополнительными сведениями о DirectQuery в Power BI.

Заметка

Если в запрос включены необработанные данные, необходимо импортировать DataCacheMode.

Образец

const datasetCreateConfig: IDatasetCreateConfiguration = { 
    "modelName": "temp model", 
    "locale": "en_US", 
    "mashupDocument": "section Section1; shared Table = let Source = Csv.Document(Web.Contents(\"https://yourdomain.com/sample.csv\"),[Delimiter=\",\", QuoteStyle=QuoteStyle.None]), #\"Promoted Headers\" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]) in #\"Promoted Headers\";", 
    "dataSourceConnection": { 
        "credentialType": CredentialType.Anonymous, // =1 
        "dataCacheMode": DataCacheMode.Import // =1 
    } 
} 

Шаг 2. Создание набора данных и автоматического создания отчета

Теперь с набором datasetCreateConfig вы готовы создать набор данных и внедрить автоматически созданный отчет. Это аналогично методу createReport, который позволяет создавать в отчете внедрение, метод quickCreate, который принимается в контейнере iframe, и метод quickCreateConfig, который помогает внедрить отчет.

Пример

const powerbi = window.powerbi; 
const iframeContainer = document.getElementById("myIframeContainer"); 
const quickCreateConfig: IQuickCreateConfiguration = { 
    type: "quickCreate", 
    accessToken: "ey.....",  
    tokenType: TokenType.Aad, // Aad token only 
    embedUrl: "https://app.powerbi.com/quickcreate", // see below for generating the embed url 
    datasetCreateConfig: datasetCreateConfig, 
    reportCreationMode: ReportCreationMode.QuickExplore, // QuickExplore for auto-generated visual,    
    settings: { 
        localeSettings: { 
            language: "en_US" // this should match the current locale of your window/product. It will be used to localize the UI. 
        } 
    } 
}; 
const quickCreateReport = powerbi.quickCreate(iframeContainer, quickCreateConfig);