嵌入在Visualforce中的PowerBI-无法在Page对象上调用getVisuals

时间:2019-04-05 17:38:53

标签: javascript visualforce powerbi-embedded

在我的Visualforce页面的Javascript中,页面对象上的getVisuals方法对我不起作用。在控制台日志中,我看到:  TypeError: Object doesn't support property or method 'getVisuals'

背景:我将以我不是开发人员为开头。我充其量是一名黑客,并且我不精通Javascript,但是我对语言有基本了解。

我已使用以下教程成功在Salesforce中实现了PowerBI:https://powerbi.microsoft.com/en-us/blog/embedding-a-power-bi-report-into-salesforce/

现在,我正在尝试通过预先设置一些切片器来扩展功能。第一步是使用页面对象的getVisuals方法获取切片器名称,但是,每当我调用getVisuals时,都会收到一条错误消息,指出该方法不存在。

我知道报告需要呈现,并且已经将getVisuals执行移到report.on(“ rendered”)事件中,但是仍然失败。我可以肯定我的事件调用很好,因为可以看到“已渲染”的日志。

以下是相关代码:

window.onload = function() {

... (stuff from tutorial above to load the report) ...

    var element = document.getElementById('myReport');

    var report = powerbi.embed(element, embedConfiguration);

    report.on("loaded", function(){
        console.log("loaded");
    });

    report.on("rendered", function(){
        console.log("rendered");

        report.getPages()
        .then(function (pages) {
        // Retrieve active page.
        var activePage = pages.filter(function(page) {
            return page.isActive
        })[0];

        console.dir(activePage);

        activePage.getVisuals()
            .then(function (visuals) {
                console.log(
                    visuals.map(function(visual) {
                        return {
                            name: visual.name,
                            type: visual.type,
                            title: visual.title,
                            layout: visual.layout
                        };
                    })
                );
            })
            .catch(function (errors) {
                console.log(errors);
            });
    })
        .catch(function (errors) {
            console.log(errors);
        });

    });
}

该日志显示“已渲染”消息,并输出页面属性,但是缺少getVisuals方法,其余的代码其余部分失败。

如果我在window.onload事件函数之外分别调用getVisuals函数的代码,则会遇到相同的错误。

我还在日志中看到此错误(无论是否尝试调用getVisuals): ERROR Error: Uncaught (in promise): Object: {"data":"","status":401,"activityId":"ff2eaf1f-2d26-406a-a8f4-cb44289872c1","requestId":"1d418ee5-fc82-93e9-01cf-5bdc99edab0d","responseRequestId":null,"pendingRequestCount":4}

我想知道那个诺言是否与渲染调用有关?

还应注意:报告加载正常且具有交互性等。

不知道我在做什么错,但是可以提供任何帮助!

0 个答案:

没有答案