powerbi - 创建新报表时,我在 PowerBIEmbed 中放置什么作为报表 ID?
问题描述
我正在尝试使用PowerBIEmbed
React 组件来创建和设计一个新报告。当我编辑现有报告时,一切都很好,但是当我创建一个新报告时(使用生成的嵌入令牌TokenAccessLevel.Create
),我收到以下错误:
报告 ID 是必需的,但未找到。您必须提供一个 ID 作为嵌入配置的一部分或作为属性“powerbi-report-id”。
我通过配置传入的 id 是空的 GUID ( "00000000-0000-0000-0000-000000000000"
)。我也尝试从配置中删除该属性。
我将权限设置为models.Permissions.All
(包括models.Permissions.Create
),所以这不是问题。
客户端代码
const config = {
permissions: models.Permissions.All,
tokenType: models.TokenType.Embed,
type: 'report',
embedURL: generatedURL,
accessToken: generatedToken,
viewMode: models.ViewMode.Edit,
};
return (
<PowerBIEmbed
embedConfig={config}
getEmbeddedComponent={report => this.setState({ report })}
/>
);
服务器代码
var authToken = await PowerBIAuthentication.DoAuthentication(_Config);
using var client = new PowerBIClient(new Uri(_Config.ApiUrl), authToken);
var dataSets = await client.Datasets.GetDatasetsInGroupAsync(_Config.WorkspaceId, cancellationToken);
var dataSet = dataSets.Value.First(x => x.Name == "AppProtoModel");
var embedTokenParameters = new GenerateTokenRequest(TokenAccessLevel.Create, dataSet.Id);
var embedToken = await client.Reports.GenerateTokenForCreateInGroupAsync(
_Config.WorkspaceId,
embedTokenParameters,
cancellationToken: cancellationToken);
myDoc.PowerBISettings.EmbedToken = embedToken;
myDoc.PowerBISettings.EmbedUrl = dataSet.CreateReportEmbedURL;
return myDoc;
解决方案
目前,powerbi-client-react库中的 PowerBIEmbed 组件不支持 Power BI Report 的创建模式嵌入,可以使用Power BI JS SDK实现。
请参考以下代码片段:
const embedConfiguration: IEmbedConfiguration = {
permissions: models.Permissions.All,
tokenType: models.TokenType.Embed,
type: "report",
embedUrl: createReportEmbedURL,
accessToken: createEmbedToken,
viewMode: models.ViewMode.Edit,
datasetId: datasetId,
};
const report = powerbi.createReport(reportContainer, embedConfiguration);
上面片段中提到的 createReportEmbedURL 可以使用Datasets - Get Dataset API生成。上述代码段中提到的 createEmbedToken 可以使用Embed Token - Report GenerateTokenForCreateInGroup API 生成。
注意:配置中传入的 datasetId 应该与生成 createReportEmbedURL 时使用的相同。
有关更多信息,请参阅以下文档: 创建和保存嵌入式报告
推荐阅读
- javascript - 我正在从 API 接收一些文本形式的数据,这些数据在 ReactJS 环境中嵌入了 HTML 标记。我想将该文本转换为 HTML
- visual-studio - 嘿,我有 2 个 [not_required_arguments] 问题 1 在返回 MaterialApp( 另一个在 Scaffold(
- regex - 如何将内容与正则表达式匹配
- android - 如何在 Delphi Firemonkey / Android 应用程序中为 TRectangle 添加触摸效果?
- .net - “obj”文件夹的“.resources”和“.cache”文件是什么?(VB.NET)
- javascript - 包含固定单元格引用的触发器未触发
- django - 此数据库后端不支持 DISTINCT ON 字段
- shell - 使用 sed 替换动态变化的正则表达式
- vba - 检索特定记录,然后在 vba 访问中转到下一个
- javascript - PrimeNg Table 动态单元格编辑控件