我一整天都在追寻这个问题,结果发现这取决于报告的创建方式。
我们正在迁移到嵌入的 Power BI 来进行报告。我们正在进行的一项测试是将分页报告嵌入到我们的网络应用程序中。
我们发现嵌入通过 Power BI Online 创建的报表、使用现有数据集和从桌面报表生成器创建报表之间存在差异。
为了简单起见,我们使用开发人员示例复制了该问题。 https://github.com/microsoft/PowerBI-Developer-Samples
如果我在桌面应用程序上创建报告,我可以嵌入该报告。如果我在线创建它,它不会被正确识别为分页报告,因此无法加载。
问题发生在 IReportOperations.GenerateTokenInGroup (GetEmbedTokenForRDLReport,嵌入服务.cs)
“InvalidRequest:将分页报告与 Power BI 数据集嵌入为 V1 嵌入令牌不支持数据源”
我理解该消息,但我不明白为什么响应差异取决于分页报告的创建方式。工作报告和非工作报告之间的唯一变化是报告 ID。
这两个报告都可以在 Power BI 在线应用程序中使用。
在线创建的报告与通过桌面应用程序创建的报告之间有根本区别吗?
public static async Task<EmbedToken> GetEmbedTokenForRDLReport(Guid targetWorkspaceId, Guid reportId, string accessLevel = "view")
{
using (var pbiClient = await GetPowerBiClient())
{
EmbedToken embedToken = null;
// Generate token request for RDL Report
var generateTokenRequestParameters = new GenerateTokenRequest(
accessLevel: accessLevel
);
try
{
embedToken = pbiClient.Reports.GenerateTokenInGroup(targetWorkspaceId, reportId, generateTokenRequestParameters);
}
catch (Exception ex)
{
Console.WriteLine(ex);
throw;
}
// Generate Embed token
return embedToken;
}
}
您面临的问题背后的原因可能是由于您的报告所在的工作区的某些访问/设置,或者您创建的 Azure 应用程序中的某些 API 权限。
验证以下内容:
请参考以下文档
将分页报告嵌入 Power BI 嵌入式分析应用程序 - Power BI |微软学习
如果在彻底验证上述步骤后问题仍然存在,请提供更多详细信息,以便我们为您提供进一步帮助。