PowerBI, встроенный в Visualforce - невозможно вызвать getVisuals для объекта Page - PullRequest
0 голосов
/ 05 апреля 2019

Метод getVisuals на объекте страницы не будет работать для меня в Javascript моей страницы Visualforce. В моем журнале консоли я вижу: TypeError: Object doesn't support property or method 'getVisuals'

Справочная информация: Я предвосхищу это, сказав, что я не разработчик. В лучшем случае я хакер, и я не очень разбираюсь в Javascript, но у меня есть общее представление о языке.

Я успешно внедрил PowerBI в Salesforce, используя это руководство: 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 отсутствует, а оставшаяся часть кода завершается ошибкой.

Если я вызываю код функции getVisuals отдельно от функции события window.onload, я получаю ту же ошибку.

Также я вижу эту ошибку в журнале (независимо от того, пытаюсь ли я вызвать 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}

Мне интересно, связано ли это обещание с вызовом рендеринга?

Также следует отметить: отчет загружается нормально и является интерактивным и т. Д.

Не уверен, что я делаю не так, но любая помощь приветствуется!

...