Vložení rychlé sestavy do analytické aplikace Power BI Embedded pro vaši organizaci

Klientská rozhraní API Power BI umožňují rychle vytvořit interaktivní sestavu a datovou sadu z dat vaší aplikace, aniž by uživatelé museli aplikaci opustit. Pomocí této knihovny na straně klienta zadáte informace o zdroji dat, který Power BI použije k vygenerování datové sady ve službě Power BI. Power BI zároveň automaticky vygeneruje sestavu s přehledy o datech, která vaši uživatelé můžou prozkoumat a přizpůsobit podle svých potřeb.

V tomto kurzu se naučíte:

  • Nastavení vloženého prostředí
  • Konfigurace objektu pro ukládání informací o zdroji dat a přizpůsobení sestavy
  • Předáním tohoto objektu do rozhraní API přidáte do aplikace možnosti zkoumání dat.

Pokud chcete toto prostředí používat, budou se vaši uživatelé muset přihlásit k Power BI.

K ukládání informací o zdroji dat použijete objekt konfigurace. Kromě toho můžete pomocí konfiguračního objektu přizpůsobit vzhled a chování sestavy. Můžete například upravit motiv a nastavení umístění v objektu konfigurace. Když vytvoříte a vložíte datovou sadu, předáte tento objekt do rozhraní API.

Důležitý

Pokud vkládáte obsah pro národní cloud, liší se několik prvních kroků tohoto kurzu. Podrobnosti najdete v tématu Vložení obsahu pro národní cloudy.

Požadavky

Než začnete s tímto kurzem, ověřte, že máte níže uvedené závislosti Power BI i kódu:

  • Závislosti Power BI
  • Závislosti kódu
    • Textový editor
    • Terminál příkazového řádku, například PowerShell

Metoda

Následující části vysvětlují, jak vkládat a konfigurovat obsah Power BI pomocí oblíbeného textového editoru.

Rozhraní IQuickCreateConfiguration zobrazuje vlastnosti, které objekt konfigurace může poskytnout rozhraní API klienta Power BI o datové sadě, kterou chcete vytvořit:

Příklad

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

Oprávnění přístupového tokenu pro QuickCreate

QuickCreate podporuje pouze tokeny AAD . Ujistěte se, že vaše aplikace má následující obory:

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

Další informace najdete v tématu Registrace aplikace pro vložení obsahu Power BI.

Adresa URL pro vložení

Jedinečné pro tuto formu vkládání, toto prostředí má speciální trasu /quickcreate. Typická adresa URL pro vložení pro toto prostředí vypadá takto: https://app.powerbi.com/quickcreate

Krok 1.1 – Vytvoření datové sady bez zdroje dat

Power BI nabízí jednoduchý způsob, jak umožnit vývojářům zahrnout data přímo do požadavku na Power BI, pokud nemůžete nastavit zdroj dat. Velikost požadavku omezujeme na 16 MB. Všimněte si, že vzhledem k tomu, že power BI nemá žádný zdroj dat pro připojení, nemůžete datovou sadu po vytvoření aktualizovat.

  1. IDataTable

    IDataTable je v podstatě obálka pole 2D řetězce, kde byste měli vyplnit data. I když jsou data polem, zatím podporujeme pouze 1 tabulku dat. Název můžete nastavit vy, ale musí se shodovat s názvem v ITableSchema.

    Aby služba Power BI parsovala data ve správném formátu, měly by se hodnoty dat formátovat podle specifikace hodnoty jazyka M. Vlastnost národního prostředí definovaná v IQuickCreateConfiguration má vliv také na parsování hodnot. Další informace najdete v tématu jazyka M – PowerQuery M.

    Data by se měla předávat v řádcích. Každý řádek by měl obsahovat stejný počet sloupců definovaných v ITableSchema.  

    Poznámka

    Data a tableSchemaList musí být ve dvojicích.

Příklad

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

Poznámka

Vlastnost name se v současné době nedá přizpůsobit, takže tabulku nemůžete pojmenovat. Výchozí název vlastnosti je Table.

  1. ITableSchema

    Aby Power BI porozuměl vašim datům, musíte zadat schéma pro každý sloupec tabulky. Každé schéma sloupce musí mít název a typ. Název se použije jako název seznamu polí po vytvoření datové sady. Typ je podmnožinou specifikace typu jazyka M. Podporované typy jsou pohodlně uvedeny v datovém typu. Další informace najdete v jazykových typech jazyka M – PowerQuery M.

    Podobně jako datová vlastnost, i když tableSchemaList je definována jako pole, podporujeme prozatím pouze jednu tabulku.

    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",  
        }
    

    Kromě názvu a datového typu můžou uživatelé zadat výchozí agregaci sloupců tím, že pro každý sloupec poskytnou volitelnou vlastnost aggregateFunction. Číslo podporovaných agregačních funkcí je založeno na typu AggregateFunction Enum.

Příklad

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
} 

Krok 1.2 – Vytvoření datové sady s existujícím zdrojem dat

IDatasetCreateConfiguration je konfigurace, která power BI informuje, jak datovou sadu vytvořit. To zahrnuje dokument Mashup, národní prostředí datové sady a informace o připojení, které Power BI říkají, jak se připojit ke zdroji dat.

Dokument mashupu

Mashup dokumenty nebo dokumenty M mají vlastní specifikace jazyka. Pro účely tohoto prostředí pro vložení je nejjednodušším způsobem, jak začít, připojit se ke zdroji dat podle vašeho výběru v Power BI Desktopu a potom zkopírovat výsledný mashupový dotaz z zobrazení editoru dotazů. Podrobnosti najdete v dokumentaci editoru dotazů pro Power BI Desktop.

Příklad

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";" 

Pokud chcete výše uvedený zdrojový kód převést na mashupový dokument, stačí přidat oddíl. Část obsahuje:

  • název oddílu;
  • shared section-member-name = expression;
  • kde výraz bude vaším dotazem mashupu,
  • a název člena oddílu se zobrazí v Power BI jako název tabulky nebo entity.

Ukázkový dotaz mashupu uvedený výše najdete v následujícím příkladu odpovídajícího dokumentu mashupu:

"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";" 

  Jakmile budete mít dokument mashupu, můžete určit, které části budou statické a které části budou dynamické, a dají se vyplnit programově. V předchozím příkladu máme některé upravitelné proměnné, doménu webového obsahu, oddělovač, styl uvozovek a pokud chcete zvýšit úroveň záhlaví nebo ne. Proto lze dotaz převést na šablonu a naplnit příslušnými parametry na straně hostitelské aplikace v závislosti na datech, která uživatel v daný okamžik zabírají.

Dějiště

PowerBI použije informace o národním prostředí zadané v této konfiguraci k vyhodnocení dokumentu mashupu a parsování hodnot, pokud jsou k dispozici nezpracovaná data.

Konfigurace zdroje dat

Autorizace ke zdroji dat

V současné době podporujeme pouze anonymní připojení ke zdrojům dat. To znamená, že Power BI se musí připojit ke zdroji dat bez nutnosti ověřování.

Poznámka

Pokud data zahrnete přímo do požadavku, měli byste vynechat vlastnost dataSourceConnection.

DataCacheMode

U většiny zdrojů dat by režim importu měl vyhovovat vašim potřebám. V některých případech se ale data rychle mění nebo když jsou zdroje dat velmi velké, můžete také použít režim DirectQuery. Pokud si myslíte, že to může platit pro vás, přečtěte si další informace o DirectQuery v Power BI.

Poznámka

Pokud do požadavku zahrnete nezpracovaná data, musí být dataCacheMode importována.

Ukázka

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 
    } 
} 

Krok 2 : Vytvoření datové sady a automatického generování sestavy

Teď s nastaveným datasetCreateConfig jste připraveni vygenerovat datovou sadu a vložit automaticky vygenerovanou sestavu. To se podobá metodě createReport, která umožňuje vytvořit vložení sestavy, metodu quickCreate, která přebírá kontejner prvku iframe, a metodu quickCreateConfig, která vám pomůže vložit sestavu.

Příklad

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