Začínáme s ukázkou kolekcí pracovních prostorů Power BI

S kolekcemi pracovních prostorů Microsoft Power BI můžete sestavy Power BI integrovat přímo do webových nebo mobilních aplikací. V tomto článku vás seznámíme s ukázkou začínáme s kolekcemi pracovních prostorů Power BI .

Důležité

Kolekce Pracovních prostorů Power BI jsou zastaralé a dostupné do června 2018 nebo do data uvedeného ve vaší smlouvě. Doporučujeme naplánovat migraci do Power BI Embedded, předejdete tak výpadkům vaší aplikace. Informace o postupu migrace dat do Power BI Embedded najdete v tématu Migrace obsahu kolekcí Pracovních prostorů Power BI do Power BI Embedded.

Než budeme pokračovat, budete chtít uložit následující prostředky: Pomáhají vám při integraci sestav Power BI do ukázkové aplikace a vlastních aplikací.

Poznámka

Než začnete s konfigurací a spuštěním ukázky kolekcí pracovních prostorů Power BI, musíte ve svém předplatném Azure vytvořit aspoň jednu kolekci pracovních prostorů . Informace o vytvoření kolekce pracovních prostorů v Azure Portal najdete v tématu Začínáme s kolekcemi pracovních prostorů Power BI.

Konfigurace ukázkové aplikace

Pojďme si projít nastavení vývojového prostředí sady Visual Studio pro přístup k komponentám potřebným ke spuštění ukázkové aplikace.

  1. Stáhněte a rozbalte kolekce pracovních prostorů Power BI – integrace sestavy do ukázky webové aplikace na GitHubu.

  2. Otevřete PowerBI-embedded.sln v sadě Visual Studio. Možná budete muset spustit příkaz Update-Package v konzole Správce balíčků NuGet, aby bylo možné aktualizovat balíčky použité v tomto řešení.

  3. Sestavte řešení.

  4. Spusťte konzolovou aplikaci ProvisionSample . V ukázkové konzolové aplikaci zřídíte pracovní prostor a naimportujete soubor PBIX.

  5. Pokud chcete zřídit nový pracovní prostor, vyberte možnost 1, správu kolekce a pak vyberte možnost 6, Zřízení nového pracovního prostoru.

  6. Pokud chcete importovat novou sestavu, vyberte možnost 2, Správu sestav a pak vyberte možnost 3, Import souboru PBIX Desktop do pracovního prostoru.

  7. Zadejte název kolekce pracovních prostorů a přístupový klíč. Můžete je získat v Azure Portal. Další informace o tom, jak získat přístupový klíč, najdete v tématu Zobrazení API Power BI přístupových klíčů v tématu Začínáme s Microsoft Power BI Embedded.

    Přístupové klíče v rámci Azure Portal

  8. Zkopírujte a uložte nově vytvořené ID pracovního prostoru pro pozdější použití v tomto článku. Po vytvoření ID pracovního prostoru ho najdete v Azure Portal.

    ID pracovního prostoru v rámci Azure Portal

  9. Pokud chcete importovat soubor PBIX do pracovního prostoru, vyberte možnost 6. Naimportujte soubor PBIX Desktop do existujícího pracovního prostoru. Pokud nemáte soubor PBIX užitečný, můžete si stáhnout soubor PBIX s ukázkou analýzy maloobchodního prodeje.

  10. Pokud se zobrazí výzva, zadejte popisný název datové sady.

Měla by se zobrazit odpověď podobná:

Checking import state... Publishing
Checking import state... Succeeded

Poznámka

Pokud váš soubor PBIX obsahuje nějaká připojení přímých dotazů, spusťte možnost 7 a aktualizujte připojovací řetězce.

V tuto chvíli máte do pracovního prostoru importovanou sestavu Power BI PBIX. Teď se podíváme na to, jak spustit kolekce pracovních prostorů Power BI a jak začít s ukázkovou webovou aplikací.

Spuštění ukázkové webové aplikace

Ukázka webové aplikace je ukázková aplikace, která vykreslí sestavy importované do vašeho pracovního prostoru. Tady je postup konfigurace ukázky webové aplikace.

  1. V řešení Sady Visual Studio vložené v PowerBI klikněte pravým tlačítkem myši na webovou aplikaci EmbedSample a zvolte Nastavit jako projekt StartUp.

  2. V web.configupravte ve webové aplikaci EmbedSampleappSettings: AccessKey, WorkspaceCollection name a WorkspaceId.

    <appSettings>
        <add key="powerbi:AccessKey" value="" />
        <add key="powerbi:ApiUrl" value="https://api.powerbi.com" />
        <add key="powerbi:WorkspaceCollection" value="" />
        <add key="powerbi:WorkspaceId" value="" />
    </appSettings>
    
  3. Spusťte webovou aplikaci EmbedSample .

Po spuštění webové aplikace EmbedSample by levý navigační panel měl obsahovat nabídku Sestavy . Pokud chcete zobrazit importovanou sestavu, rozbalte sestavy a klikněte na sestavu. Pokud jste importovali ukázku analýzy maloobchodního prodeje PBIX, ukázková webová aplikace by vypadala takto:

Ukázka levé navigace v ukázkové aplikaci

Po kliknutí na sestavu by webová aplikace EmbedSample měla vypadat nějak takto:

Ukázková sestava zobrazená v aplikaci

Prozkoumání ukázkového kódu

Ukázka kolekcí pracovních prostorů Microsoft Power BI je ukázková webová aplikace, která ukazuje, jak integrovat sestavy Power BI do aplikace. Používá vzor návrhu MVC (Model-View-Controller) k předvedení osvědčených postupů. Tato část zvýrazňuje části ukázkového kódu, které můžete prozkoumat v rámci řešení webové aplikace powerBI embedded . Model-View-Controller (MVC) odděluje modelování domény, prezentace a akce na základě uživatelského vstupu do tří samostatných tříd: Model, Zobrazení a Řízení. Další informace o MVC najdete v tématu Další informace o ASP.NET.

Ukázkový kód kolekce pracovních prostorů Microsoft Power BI je oddělený následujícím způsobem. Každá část obsahuje název souboru v řešení PowerBI-embedded.sln, abyste mohli snadno najít kód v ukázce.

Poznámka

Tato část je souhrnem ukázkového kódu, který ukazuje, jak byl kód napsán. Pokud chcete zobrazit úplnou ukázku, načtěte řešení PowerBI-embedded.sln v sadě Visual Studio.

Modelování

Ukázka má model ReportsViewModel a ReportViewModel.

ReportsViewModel.cs: Představuje sestavy Power BI.

public class ReportsViewModel
{
    public List<Report> Reports { get; set; }
}

ReportViewModel.cs: Představuje sestavu Power BI.

public class ReportViewModel
{
    public IReport Report { get; set; }

    public string AccessToken { get; set; }
}

Připojovací řetězec

Připojovací řetězec musí být v následujícím formátu:

Data Source=tcp:MyServer.database.windows.net,1433;Initial Catalog=MyDatabase

Použití běžných atributů serveru a databáze selže. Příklad: Server=tcp:MyServer.database.windows.net,1433;Database=MyDatabase,

Zobrazení

Zobrazení spravuje zobrazení sestav Power BI a sestavy Power BI.

Reports.cshtml: Iterujte přes Model.Reports a vytvořte actionLink. ActionLink se skládá takto:

Část Description
Nadpis Název sestavy
QueryString Odkaz na ID sestavy
<div id="reports-nav" class="panel-collapse collapse">
    <div class="panel-body">
        <ul class="nav navbar-nav">
            @foreach (var report in Model.Reports)
            {
                var reportClass = Request.QueryString["reportId"] == report.Id ? "active" : "";
                <li class="@reportClass">
                    @Html.ActionLink(report.Name, "Report", new { reportId = report.Id })
                </li>
            }
        </ul>
    </div>
</div>

Report.cshtml: Nastavte Model.AccessToken a výraz Lambda pro PowerBIReportFor.

@model ReportViewModel

...

<div class="side-body padding-top">
    @Html.PowerBIAccessToken(Model.AccessToken)
    @Html.PowerBIReportFor(m => m.Report, new { style = "height:85vh" })
</div>

Controller

DashboardController.cs: Vytvoří PowerBIClient s předáváním tokenu aplikace. K získání přihlašovacích údajů se vygeneruje webový token JSON (JWT) z podpisového klíče. Přihlašovací údaje slouží k vytvoření instance PowerBIClient. Jakmile máte instanci PowerBIClient, můžete volat GetReports() a GetReportsAsync().

CreatePowerBIClient()

private IPowerBIClient CreatePowerBIClient()
{
    var credentials = new TokenCredentials(accessKey, "AppKey");
    var client = new PowerBIClient(credentials)
    {
        BaseUri = new Uri(apiUrl)
    };

    return client;
}

ActionResult Reports()

public ActionResult Reports()
{
    using (var client = this.CreatePowerBIClient())
    {
        var reportsResponse = client.Reports.GetReports(this.workspaceCollection, this.workspaceId);

        var viewModel = new ReportsViewModel
        {
            Reports = reportsResponse.Value.ToList()
        };

        return PartialView(viewModel);
    }
}

Task<ActionResult> Report(string reportId)

public async Task<ActionResult> Report(string reportId)
{
    using (var client = this.CreatePowerBIClient())
    {
        var reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollection, this.workspaceId);
        var report = reportsResponse.Value.FirstOrDefault(r => r.Id == reportId);
        var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, report.Id);

        var viewModel = new ReportViewModel
        {
            Report = report,
            AccessToken = embedToken.Generate(this.accessKey)
        };

        return View(viewModel);
    }
}

Integrace sestavy do aplikace

Jakmile budete mít sestavu, použijete prvek IFrame k vložení sestavy Power BI. Tady je fragment kódu z powerbi.js v ukázce kolekcí pracovních prostorů Microsoft Power BI .

init: function() {
    var embedUrl = this.getEmbedUrl();
    var iframeHtml = '<iframe style="width:100%;height:100%;" src="' + embedUrl + 
        '" scrolling="no" allowfullscreen="true"></iframe>';
    this.element.innerHTML = iframeHtml;
    this.iframe = this.element.childNodes[0];
    this.iframe.addEventListener('load', this.load.bind(this), false);
}

Filtrování sestav vložených do aplikace

Vloženou sestavu můžete filtrovat pomocí syntaxe adresy URL. Uděláte to tak, že přidáte parametr řetězce dotazu $filter s operátorem eq do adresy URL prvku iFrame src se zadaným filtrem. Tady je syntaxe dotazu filtru:

https://app.powerbi.com/reportEmbed
?reportId=d2a0ea38-...-9673-ee9655d54a4a&
$filter={tableName/fieldName}%20eq%20'{fieldValue}'

Poznámka

V řetězci {tableName/fieldName} nesmí být mezery ani speciální znaky. Na místo položky {FieldValue} je možné vložit jednu hodnotu představující kategorii.

Viz také

Běžné scénáře shromažďování pracovních prostorů Microsoft Power BI
Ověřování a autorizace v kolekcích Pracovních prostorů Power BI
Vložení sestavy
Vytvoření nové sestavy z datové sady
Power BI Desktop
Ukázka vložení JavaScriptu

Máte další otázky? Zkuste se zeptat v komunitě Power BI.