Вызов API Power BI для GenerateToken вызывает ошибку DMTS_MonikerNotFoundError

Когда мы пытаемся GenerateToken использовать PowerBI API v2 для получения встроенного токена в сценарии RLS / App Owns Data, мы получаем следующий ответ:

{"error":{"code":"DMTS_MonikerNotFoundError","pbi.error":{"code":"DMTS_MonikerNotFoundError","parameters":{},"details":[]}}}

Кто-нибудь имел дело с этим раньше и знает, что может быть не так или как понять больше, т.е. есть ли где-нибудь в Power BI, где я могу видеть журналы и то, что здесь происходит, и что означает DMTS?

Я передаю объект JSON, как показано ниже, в вызов GenerateToken:

{
  "accessLevel": "View",
  "datasetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "identities": [
    {
      "username": "[email protected]",
      "datasets": [
        "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      ]
    }
  ]
}

Еще одно наблюдение: если я передам главную учетную запись (пользователя, которого мы подключаем к Azure как при встраивании) вместо [email protected], то тот же код будет работать нормально, и мы получим встроенный токен.

В приложении Power BI Sample указанная выше ошибка проявляется как:

Operation returned an invalid status code 'NotFound'<r><r> 
at Microsoft.PowerBI.Api.V2.Reports.<GenerateTokenInGroupWithHttpMessagesAsync>d__16.MoveNext()

person dev.bv    schedule 21.09.2017    source источник


Ответы (1)


Если это кому-то поможет. Теперь я лучше понимаю проблему, указанную выше.

Корень проблемы, похоже, заключался в том, что для набора данных, который передавался в запрос API, владельцем был издатель отчета (который он поддерживает), а не главная учетная запись.

После того, как главная учетная запись перешла во владение (это можно сделать на портале Power BI> выберите рабочую область> Наборы данных> В интересующем наборе данных перейдите в «Настройки»> «Взять на себя»), встроенный токен выдан правильно.

Передаваемое эффективное имя пользователя, похоже, не играет никакой роли до тех пор, пока встроенный токен не будет использован для визуализации отчета.

Примечание: я до сих пор не знаю, что означает DMTS, но теперь проблема решена.

person dev.bv    schedule 25.09.2017