在我的应用程序中,我正在显示Power BI报告.它已经可以工作,因此通过其ID(guid)显示任何报告都没有问题.
但是有一些报告需要进行参数化,例如,当前年份或观看报告的人.这是我的问题:如何做到这一点?
更具体地说,我将报表嵌入HTML <iframe>
元素中.我将iframe URL设置为从报告定义embedUrl
(从REST API接收)接收的URL .我通过调用的JavaScript代码来控制它postMessage()
.
报告定义:
{
"id":"12345678-6418-4b47-ac7c-f8ac7791a0aa",
"name":"Retail Analysis Sample",
"webUrl":"https://app.powerbi.com/reports/12345678-6418-4b47-ac7c-f8ac7791a0aa",
"embedUrl":"https://app.powerbi.com/reportEmbed?reportId=12345678-6418-4b47-ac7c-f8ac7791a0aa"
}
Run Code Online (Sandbox Code Playgroud)
用于加载报告的JavaScript代码:
function onFrameLoaded() {
var m = {
action: "loadReport",
reportId: reportId,
accessToken: accessToken
};
iframe.contentWindow.postMessage(JSON.stringify(m), "*");
}
Run Code Online (Sandbox Code Playgroud)
现在,我通过自定义应用程序中的参数来过滤报告.有没有办法在报告中发送或传递值来过滤数据集?
这是上一个问题的后续:SSIS Hanging 中的 OData 源组件
我在 Visual Studio 2015 (17.4) 中使用 SSIS,并希望使用 OData 连接从此页面中提取公共 NADAC 数据:https ://data.medicaid.gov/Drug-Pricing-and-Payment/NADAC-全国平均药物采购成本-/a4y5-998d。
我已经使用 Windows 身份验证成功地创建了一个 OData 源连接管理器到基本 URL:https : //data.medicaid.gov/api/odata/v4/。
我创建了一个包含 2 个组件的简单数据流。OData 源和记录集目标。Recordset Destination 指向数据类型为 Object 的变量。
在我的数据流上,我已经成功地创建了一个 OData 源到资源路径 a4y5-998d 并且能够预览数据。
显示预览数据和数据流布局以及 OData 源编辑器配置的屏幕截图。
一切看起来都不错,但是当我在 Visual Studio 中运行我的包时,出现以下错误:
信息:0x4004300A 在数据流任务,SSIS.Pipeline:验证阶段开始。错误:数据流任务中的 0xC020801F,OData 源 [2]:无法从运行时连接管理器获取托管连接。错误:0xC0047017 在数据流任务,SSIS.Pipeline:OData 源验证失败并返回错误代码 0xC020801F。错误:0xC004700C 在数据流任务,SSIS.Pipeline:一个或多个组件验证失败。错误:数据流任务中的 0xC0024107:任务验证期间出现错误。
我将关键语句加粗(无法从运行时连接管理器获取托管连接),但包含更多上下文消息。
因为这是一个验证错误,数据流甚至没有开始运行。
环顾互联网,很多地方都表明这可能是 32 位/64 位驱动程序问题。但是,我打开和关闭了Run64BitRuntime,每次都得到相同的结果。
无论我在 SQL Server …