仅在特定报告上更新数据集参数时,InvalidRequest错误

时间:2020-08-03 00:46:42

标签: javascript powerbi powerbi-embedded

我在更新报表上的数据集参数时遇到麻烦。

过程本身非常简单:

  1. 请求oauth令牌
  2. 发布我的模板以启用双向服务
  3. 获取已发布的数据集和报告ID
  4. 更新已发布报告的数据集上的参数

这是我正在使用的代码:

function getDataset_Report(accessToken) {
            xmlHttp.open("GET",getReportIDUrl,true);
            xmlHttp.setRequestHeader('Authorization', 'Bearer '+accessToken);
            xmlHttp.responseType = "json";
            xmlHttp.onload = function () {
                if (xmlHttp.readyState === xmlHttp.DONE) {
                    if (xmlHttp.status === 200) {
                        var d = xmlHttp.response.datasets;
                        var r = xmlHttp.response.reports;
                        if (r != 0 && d != 0) {
                            console.log('---------------start updating parameter----------------')
                            reportId = r[0].id;
                            console.log(reportId);
                            datasetId = d[0].id;
                            console.log(datasetId);
                            embUrl = r[0].embedUrl;
                            clearInterval(set_interval_id);
                            var changeParamUrl = "https://api.powerbi.com/v1.0/myorg/groups/" + groupId + "/datasets/" + datasetId + "/Default.UpdateParameters";
                            changeParam(changeParamUrl, accessToken, paramData, datasetId)
                            console.log('---------------finished updating parameter----------------')
                        } else {
                            run_getDataset_Report(accessToken)
                        }
                    }
                    else{
                        removeLoading();
                    };
                }
                }
            xmlHttp.send();
        }

        function changeParam(theUrl,accessToken,paramData, datasetId) {
            console.log(paramData);
            xmlHttp.open("POST",theUrl,true);
            xmlHttp.setRequestHeader('Authorization', 'Bearer '+accessToken);
            xmlHttp.setRequestHeader("Content-type","application/json");
            xmlHttp.onload = function () {
                if (xmlHttp.readyState === xmlHttp.DONE) {
                    if (xmlHttp.status === 200) {
                        console.log('---------------start refreshing datasets----------------')
                        var getDatasourceUri = "https://api.powerbi.com/v1.0/myorg/groups/"+ groupId +"/datasets/" + datasetId + "/datasources"
                        getDatasourceInfo(getDatasourceUri, accessToken, paramData, datasetId)
                        console.log('---------------finished refreshing datasets----------------')
                    }
                    else{
                        removeLoading();
                    };
                    }
            }
            xmlHttp.send(paramData);
        };

现在关于此问题的奇怪之处是我有3个报告,2个已经存在的报告和1个新报告。 此问题仅发生在我要发布的新报告中。 当我使用此代码更新其他两个参数时,效果很好。

现在,我还比较了新报告和旧报告之间的设置:

  1. 都已经选中了“启用负载”参数
  2. 都是由具有管理员权限的同一应用程序用户释放的
  3. 两者都被释放到相同的powerBI工作区

我唯一能想到的区别是我的新报告是在更新powerBI桌面后创建的, 但我认为这不会对这个问题产生任何影响。

任何见识将不胜感激。

最好

0 个答案:

没有答案