Power BI Çalışma Alanı Koleksiyonları'yla çalışmaya başlama örneği

Microsoft Power BI Çalışma Alanı Koleksiyonları ile Power BI raporlarını doğrudan web uygulamalarınızla veya mobil uygulamalarınızla tümleştirebilirsiniz. Bu makalede, Power BI Çalışma Alanı Koleksiyonları kullanmaya başlama örneğini tanıtacağız.

Önemli

Power BI Çalışma Alanı Koleksiyonları kullanım dışı bırakılmıştır ve Haziran 2018'e kadar veya anlaşmanızda belirtilen süre boyunca kullanılabilecektir. Uygulamanızda kesinti yaşanmaması için Power BI Embedded'a geçirmeyi planlamanız önerilir. Verilerinizi Power BI Embedded'a nasıl taşıyacağınızı öğrenmek için bkz. Power BI Çalışma Alanı Koleksiyonları'nı Power BI Embedded'a geçirme.

Daha ileri gitmeden önce aşağıdaki kaynakları kaydetmek istiyorsunuz: Power BI raporlarını örnek uygulamayla ve kendi uygulamalarınızla tümleştirirken size yardımcı olurlar.

Not

Power BI Çalışma Alanı Koleksiyonları başlangıç örneğini yapılandırıp çalıştırabilmeniz için önce Azure aboneliğinizde en az bir Çalışma Alanı Koleksiyonu oluşturmanız gerekir. Azure portal Çalışma Alanı Koleksiyonu oluşturmayı öğrenmek için bkz. Power BI Çalışma Alanı Koleksiyonlarını Kullanmaya Başlama.

Örnek uygulamayı yapılandırma

Örnek uygulamayı çalıştırmak için gereken bileşenlere erişmek için Visual Studio geliştirme ortamınızı ayarlama adımlarını inceleyelim.

  1. Power BI Çalışma Alanı Koleksiyonlarını indirin ve sıkıştırmasını açın - GitHub'da bir raporu web uygulaması örneğine tümleştirin.

  2. Visual Studio'da PowerBI embedded.sln dosyasını açın. Bu çözümde kullanılan paketleri güncelleştirmek için NuGet Paket Yöneticisi Konsolu'nda Update-Package komutunu yürütmeniz gerekebilir.

  3. Çözümü derleyin.

  4. ProvisionSample konsol uygulamasını çalıştırın. Örnek konsol uygulamasında bir çalışma alanı sağlar ve pbix dosyasını içeri aktarırsınız.

  5. Yeni bir Çalışma Alanı sağlamak için 1. seçeneği, Koleksiyon yönetimi'ni ve ardından 6. Seçenek olan Yeni çalışma alanı sağlama'yı seçin

  6. Yeni bir Raporu içeri aktarmak için 2. seçeneği, Rapor yönetimi'ni seçin ve ardından 3. seçenek olan PBIX Masaüstü dosyasını çalışma alanına aktar'ı seçin.

  7. Çalışma Alanı Koleksiyonu adınızı ve Erişim Anahtarı'nızı girin. Bunları Azure portal alabilirsiniz. Erişim Anahtarınızı alma hakkında daha fazla bilgi edinmek için bkz. Microsoft Power BI Embedded kullanmaya başlama bölümünde Power BI API Erişim Anahtarlarını Görüntüleme.

    Azure portal içindeki anahtarlara erişme

  8. Bu makalenin devamında kullanmak üzere yeni oluşturulan Çalışma Alanı Kimliğini kopyalayın ve kaydedin. Çalışma Alanı Kimliği oluşturulduktan sonra Azure portal bulabilirsiniz.

    Azure portal içinde Çalışma Alanı Kimliği

  9. PbIX dosyasını Çalışma Alanınıza aktarmak için 6 seçeneğini belirleyin. PBIX Desktop dosyasını mevcut bir çalışma alanına aktarabilirsiniz. Kullanışlı bir PBIX dosyanız yoksa Perakende Analizi Örneği PBIX'i indirebilirsiniz.

  10. İstenirse Veri Kümeniz için kolay bir ad girin.

Aşağıdakine benzer bir yanıt görmeniz gerekir:

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

Not

PBIX dosyanız doğrudan sorgu bağlantıları içeriyorsa, bağlantı dizelerini güncelleştirmek için 7. seçeneği çalıştırın.

Bu noktada, Çalışma Alanınıza aktarılmış bir Power BI PBIX raporunuz vardır. Şimdi Power BI Çalışma Alanı Koleksiyonları'nı kullanmaya başlama örnek web uygulamasını çalıştırmaya bakalım.

Örnek web uygulamasını çalıştırma

Web uygulaması örneği, Çalışma Alanınıza aktarılan raporları işleyen örnek bir uygulamadır. Web uygulaması örneğini yapılandırma burada anlatılır.

  1. PowerBI eklenmiş Visual Studio çözümünde EmbedSample web uygulamasına sağ tıklayın ve Başlangıç projesi olarak ayarla'yı seçin.

  2. web.configiçinde EmbedSample web uygulamasında appSettings: AccessKey, WorkspaceCollection name ve WorkspaceId değerlerini düzenleyin.

    <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. EmbedSample web uygulamasını çalıştırın.

EmbedSample web uygulamasını çalıştırdıktan sonra sol gezinti panelinde Raporlar menüsü bulunmalıdır. İçeri aktardığınız raporu görüntülemek için Raporlar'ı genişletin ve bir rapora tıklayın. Perakende Analizi Örneği PBIX'i içeri aktardıysanız örnek web uygulaması şöyle görünür:

Örnek uygulama içinde örnek sol gezinti

Bir rapora tıkladıktan sonra EmbedSample web uygulaması şu şekilde görünmelidir:

Uygulama içinde görüntülenen örnek rapor

Örnek kodu keşfetme

Microsoft Power BI Çalışma Alanı Koleksiyonları örneği, Power BI raporlarını uygulamanızla tümleştirmeyi gösteren örnek bir web uygulamasıdır. En iyi yöntemleri göstermek için Model-Görünüm Denetleyicisi (MVC) tasarım deseni kullanır. Bu bölümde örnek kodun PowerBI tümleşik web uygulaması çözümünde keşfedebileceğiniz bölümleri vurgulanır. Model-View-Controller (MVC) düzeni, etki alanının, sununun ve kullanıcı girişini temel alan eylemlerin modellemesini üç ayrı sınıfa ayırır: Model, Görünüm ve Denetim. MVC hakkında daha fazla bilgi edinmek için bkz. ASP.NET Hakkında Bilgi Edinin.

Microsoft Power BI Çalışma Alanı Koleksiyonları örnek kodu aşağıdaki gibi ayrılmıştır. Her bölüm PowerBI-embedded.sln çözümünde dosya adını içerir, böylece kodu örnekte kolayca bulabilirsiniz.

Not

Bu bölüm, kodun nasıl yazıldığını gösteren örnek kodun özetidir. Örneğin tamamını görüntülemek için lütfen Visual Studio'da PowerBI embedded.sln çözümünü yükleyin.

Modelleme

Örnekte ReportsViewModel ve ReportViewModel vardır.

ReportsViewModel.cs: Power BI Raporlarını temsil eder.

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

ReportViewModel.cs: Power BI Raporunu temsil eder.

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

    public string AccessToken { get; set; }
}

Bağlantı dizesi

Bağlantı dizesi aşağıdaki biçimde olmalıdır:

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

Ortak sunucu ve veritabanı özniteliklerini kullanma başarısız olur. Örneğin: Server=tcp:MyServer.database.windows.net,1433;Database=MyDatabase,

Görünüm

Görünüm, Power BI Raporlarının ve Bir Power BI Raporunun görüntülenmesini yönetir.

Reports.cshtml: ActionLink oluşturmak için Model.Reports üzerinde yineleme yapın. ActionLink aşağıdaki gibi oluşturulur:

Bölüm Açıklama
Başlık Raporun adı.
QueryString Rapor Kimliğinin bağlantısı.
<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: PowerBIReportFor için Model.AccessToken ve Lambda ifadesini ayarlayın.

@model ReportViewModel

...

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

Denetleyici

DashboardController.cs: Uygulama belirteci geçiren bir PowerBIClient oluşturur. Kimlik bilgilerini almak için İmzalama Anahtarı'ndan bir JSON Web Belirteci (JWT) oluşturulur. Kimlik Bilgileri, Bir PowerBIClient örneği oluşturmak için kullanılır. Bir PowerBIClient örneğine sahip olduktan sonra GetReports() ve GetReportsAsync() çağrılarını yapabilirsiniz.

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

Raporu uygulamanızla tümleştirme

Bir Rapor elde ettikten sonra, Power BI Raporunu eklemek için bir IFrame kullanırsınız. Microsoft Power BI Çalışma Alanı Koleksiyonları örneğindeki powerbi.js kod parçacığı aşağıda verilmiştir.

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

Uygulamanıza eklenmiş raporları filtreleme

Bir URL söz dizimini kullanarak eklenmiş bir raporu filtreleyebilirsiniz. Bunu yapmak için, belirtilen filtreyle iFrame src URL'nize eq işlecine sahip bir $filter sorgu dizesi parametresi eklersiniz. Filtre sorgusu söz dizimi şöyledir:

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

Not

{tableName/fieldName} boşluk ya da özel karakter içeremez. {fieldValue} tek bir kategorik değer kabul eder.

Ayrıca bkz.

Yaygın Microsoft Power BI Çalışma Alanı Koleksiyonu senaryoları
Power BI Çalışma Alanı Koleksiyonları ile kimlik doğrulaması ve yetkilendirme
Rapor ekleme
Veri kümesinden yeni rapor oluşturma
Power BI Desktop
JavaScript Ekleme Örneği

Başka bir sorunuz mu var? Power BI Topluluğu'na başvurun