Web sayfasına Power BI raporu veya panosu ekleme
İpucu
Bu makalede, powerbi Liquid etiketini kullanarak bir Power BI raporu veya panosunun nasıl ekleneceği açıklanmaktadır. Web sitenizdeki bir sayfaya tasarım stüdyosunu kullanarak Power BI bileşeni eklemek için Power BI bileşeni ekleme bölümüne gidin.
powerbi Liquid etiketini kullanarak bir web sayfasında Power BI raporu veya panosu ekleyebilirsiniz. Web sayfasının Kopyala alanındaki veya web şablonunun Kaynak alanındaki powerbi
etiketini kullanın.
Power BI'ın yeni çalışma alanında oluşturulan bir Power BI raporu veya panosu ekliyorsanız powerbi Liquid etiketinde kimlik doğrulaması türünü powerbiembedded olarak belirtmeniz gerekir.
Not
- powerbi Liquid etiketinde kimlik doğrulama türü olarak Microsoft Entra ID'yi belirttiyseniz portaldaki bir web sayfasına güvenli Power BI raporu veya panosu eklemeden önce bunu gerekli kullanıcılarla paylaşmalısınız. Daha fazla bilgi: Power BI çalışma alanını paylaşma ve Power BI panosu ve raporunu paylaşma.
- powerbiembedded, Azure Analysis Services ile bağlantı kuran Power BI panolarını ve raporlarını destekler. Ayrıca CustomData özelliği için değeri aktarmak üzere liquid kodunda "customdata" özelliğini de kullanabilirsiniz.
- Sayfalandırılmış Power BI raporları desteklenmez.
Örneğin:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection01" %}
Pano yolunu ve Pano kutucuğunun kimliğini almayı öğrenmek için bu makalenin sonraki bölümlerine başvurun.
Azure Analysis Services ile bağlantı kuran bir pano veya rapor kullanma
Azure Analysis Services ile bağlantı kuran bir pano veya raporla powerbi Liquid etiketini ekleyebilirsiniz.
Azure Analysis Services ile bağlantı kuran bir pano veya rapor eklemek için bağlantı dizesinde CustomData parametresini kullanın.
Örneğin:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/<GroupID>/reports/<ReportID>" roles:"<roles associated with report>" customdata:"<customdata>" %}
İsteğe bağlı customdata etiketi, dize olarak yapılandırılabilir veya iki çift küme ayracı arasında nesne ile özniteliği ayırmak için nokta (".") ya da köşeli ayraç ("[]") kullanarak nesnenin özniteliğine bağlı olarak dinamik şekilde oluşturulabilir.
Örnekler:
customdata: {{ object.attribute }}
customdata: {{ object[attribute] }}
customdata etiketi bir dize döndürdüğünden bu, bu dizeyi DAX sorgusunda bir tamsayıya dönüştürmek için gerekli olabilir.
Önemli
- Portallar, şirket içi bir veri kaynağına bağlanmak için veri ağ geçidi kullanan Azure Analysis Services ile bağlantı kuran Power BI panosu veya raporunu desteklemez.
- Bu özelliğin çalışabilmesi için web sitesi konağınızın sürümü 9.3.4.x veya sonrası olmalıdır.
Azure Analysis Services ve Roller (RLS)
Roller etiketi, raporlara ve panolara dayalı Azure Analysis Services için isteğe bağlıdır. Kullanılmadığında rol, varsayılan olarak Azure Analysis Services'te uygulamanın atandığı roldür.
Ancak bu etiket, birkaç mevcut rol arasında belirli bir rol (veya roller) belirtmek için gerekli olabilir ve Satır Düzeyinde güvenliği kullanırken gerekebilir.
Roller, diğer Power BI rapor türlerinin aksine raporun kendisinde değil, Azure Analysis Services veritabanı içinde bulunur.
Liquid kodunda rol sağlanmıyor.
Liquid kodunda rol sağlanmazsa Azure Analysis Services rolü, Uygulamanın erişebildiği rollere göre belirlenir ve rollerdeki DAX sorgusuna göre belirli özel verilere bağlı olarak sonuçları filtreler. Diğer bir deyişle, mevcut tüm roller erişimlerini birleştirir ancak sağlanan özel veriler ilgiliyse filtrelemeye devam eder. Bu senaryo çoğunlukla Azure Analysis Services raporlarında veya tek kutucuklu panolarda olur.
Liquid kodunda rol sağlanıyor.
Azure Analysis Services rolleri, RLS rollerine benzer şekilde Liquid kodunda sağlanabilir. Birden çok rol varsa bu rollerin kullanılması gerekebilir ancak sayfa için belirli roller kullanmak istersiniz. Bağlantı dizesindeki bir rol kullanıldığında, Azure Analysis Services rolünü belirtmek gerekir. Örneğin, RLS kutucuklarıyla Azure Analysis Services kutucuklarını kullanan çok kutucuklu panolar.
Panoda Azure Analysis Services kutucuklarını kullanırken aşağıdaki noktalara dikkat edilmelidir:
- Panoda, rolleri gerektiren diğer kutucuklarla bir Azure Analysis Services kutucuğu kullanılırsa Azure Analysis Services rolünün roller listesine eklenmesi gerekir.
- Farklı Azure Analysis Services kaynaklarından alınan birden çok kutucuk kendi rolleriyle kullanılabilir ancak özel veriler, her biri için aynı olmalıdır ve Liquid kodunda birden çok özel veri değeri kullanılamaz. EffectiveIdentity için customdata etiketi ve customdata parametresi yalnızca bir dize değeri alır.
Bir pano veya raporun yolunu alma
Power BI'te oturum açın.
Portalınıza katıştırılacak raporu veya panoyu açın.
Adres çubuğundan URL'yi kopyalayın.
Pano kutucuğunun kimliğini almak
Power BI'te oturum açın.
Web sitenize bir kutucuk eklemek için kullanmak istediğiniz panoyu açın.
Kutucuğa işaret edin, Daha fazla seçenek'i seçip ardından Odak modunda aç'ı seçin.
Kutucuğu kimlik adres çubuğuna URL'yi kopyalayın. Kutucuk kimliği /tiles/'ın sonrasındaki değerdir.
Power Pages'ta powerbi-client JavaScript kitaplığı kullanma
Web sitenizde Power BI Embedded raporları veya panoları için powerbi-client JavaScript kitaplığını kullanabilirsiniz. powerbi-client JavaScript kitaplığı hakkında daha fazla bilgi için bkz. Power BI JavaScript wiki.
Aşağıda rapor ayarlarını güncelleştirmek veya olayları işlemek için örnek bir JavaScript vardır. Bu örnek, filtre bölmesini devre dışı bırakır, sayfa gezintisini devre dışı bırakır ve dataSelected olayını etkinleştirir.
Önemli
- Filtre bölmesini devre dışı bırakmak veya etkinleştirmek için powerbi-client JavaScript kitaplığını kullanın. Ancak, veriye erişimi kısıtlamak veya güvenliği yapılandırmak istiyorsanız, Power BI ile satır düzeyi güvenliği (RLS) kullanın. Filtre bölmesini devre dışı bırakmak, veri erişimini kısıtlamaz ve bölme, JavaScript kitaplığı kodunu kullanarak yeniden etkinleştirilebilir.
- powerbi-client JavaScript kitaplığı yalnızca PowerBI Embedded akışı için desteklenir.
$(document).ready(function () {
var embedContainer = $(".powerbi")[0];
if (embedContainer) {
var report = powerbi.get(embedContainer);
report.on("loaded", function () {
report.updateSettings({
panes: {
filters: {
visible: false
},
pageNavigation: {
visible: false
}
}
}).catch(function (errors) {
console.log(errors);
});
})
}
});
Web sayfasına özel JavaScript eklemek için:
- Portal Yönetimi uygulamasını açın.
- Sol bölmede, Web Sayfaları'nı seçin.
- Power BI raporu veya panosunu içeren web sayfasını seçin.
- Gelişmiş sekmesini seçin.
- JavaScript'i kopyalayıp Özel JavaScript bölümünün içine yapıştırın.
- Kaydet ve Kapat'ı seçin.
Şimdi örnek JavaScript işlemlerini ve farklı seçenekleri kavrayalım.
Eklenmiş rapor HTML'ine başvuru alma
Eklenmiş rapor HTML'ine başvuru alma.
var embedContainer = $(".powerbi")[0];
Daha fazla bilgi: Kapsayan öğesine göre varolan bir Power BI bileşenine başvuru alma
Eklenmiş rapora başvuru alma
var report = powerbi.get(embedContainer);
Power BI bölmeleriyle çalışma
Web sayfasında Power BI bölmeleriyle çalışmak için bölme ayarlarını kullanabilirsiniz. Örneğin, bölmeyi gizlemek veya göstermek ya da sayfa gezintisi ayarıyla çalışmak için filtreler ayarını kullanabilirsiniz.
Aşağıda, filtreler bölmesini kaldırma örneği bulunmaktadır:
report.updateSettings({
panes: {
filters :{
visible: false
}
}
}).catch(function (errors) {
console.log(errors);
});
Aşağıda, sayfa gezintisi ve filtrelerle çalışma örneği bulunmaktadır:
report.updateSettings({
panes: {
filters :{
visible: false
},
pageNavigation:{
visible: false
}
}
}).catch(function (errors) {
console.log(errors);
});
Daha fazla bilgi: Güncelleştirme ayarları ve Ekleme yapılandırması - Ayarlar
Olayları işleme
Eklenen bileşen, yürütülen bir komutun tamamlanmasını çağırdıktan sonra olay gönderebilir. Örneğin, aşağıda dataSelected
olayı için bir örnek yer alır.
//Report.off removes a given event listener if it exists
report.off("dataSelected");
//Report.on will add an event list
report.on('dataSelected', function(event){
console.log('Event - dataSelected:');
console.log(event.detail);
})
Daha fazla bilgi: Olayları işleme