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í.
- Ukázková webová aplikace pracovního prostoru
- Referenční informace k rozhraní API kolekcí pracovních prostorů Power BI
- Power BI .NET SDK (k dispozici přes NuGet)
- Ukázka vložení sestavy JavaScriptu
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.
Stáhněte a rozbalte kolekce pracovních prostorů Power BI – integrace sestavy do ukázky webové aplikace na GitHubu.
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í.
Sestavte řešení.
Spusťte konzolovou aplikaci ProvisionSample . V ukázkové konzolové aplikaci zřídíte pracovní prostor a naimportujete soubor PBIX.
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.
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.
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.
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.
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.
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.
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.
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>
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:
Po kliknutí na sestavu by webová aplikace EmbedSample měla vypadat nějak takto:
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.