Associar conjuntos de dados dinamicamente a um relatório paginado

Relatórios do Power BI e relatórios paginados são criados com base em um conjunto de dados existente. Esse conjunto de dados define o esquema de dados que os visuais de relatório usam. Usando a associação dinâmica, você pode selecionar um conjunto de dados em tempo real ao inserir um visual de relatório paginado.

Os conjuntos de dados selecionados precisam usar o mesmo esquema de dados. Se você tiver vários conjuntos de dados com o mesmo esquema de dados, seu relatório poderá se conectar ou associar dinamicamente a cada um desses conjuntos de dados. Em seguida, você pode exibir insights diferentes, dependendo de suas necessidades.

A associação dinâmica também oferece outras vantagens. Você não precisa criar uma cópia do mesmo relatório com um conjunto de dados diferente para cada usuário. Um relatório pode atender a vários usuários. Esse recurso reduz o número de itens mantidos e melhora o tratamento do ciclo de vida do aplicativo. Como resultado, a associação dinâmica simplifica a integração para novos clientes.

Como conectar um relatório a vários conjuntos de dados dinamicamente

Seus relatórios e conjuntos de dados podem estar em workspaces separados, no entanto, ambos os workspaces devem ter uma capacidade.

Quando você inserir para clientes, o token de inserção deve incluir permissões para o relatório e o conjunto de dados associado dinamicamente. Use a nova API para gerar um token de inserção que dê suporte a itens do Power BI, como relatórios e dashboards.

Ao inserir para sua organização, o token do Azure Active Directory (AD) do usuário que você usa deve ter permissões apropriadas para todos os itens do Power BI.

Exemplo 1: Inserir um relatório paginado com associação dinâmica

Para implementar um relatório paginado inserido usando a associação dinâmica, adicione a datasetBindings propriedade ao objeto de configuração de inserção, conforme mostrado no exemplo a seguir.

let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: "reportId",
    permissions: permissions,
    datasetBindings: [{
            sourceDatasetId: "originalDatasetId",
            targetDatasetId: "notOriginalDatasetId"
        }]
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);

Exemplo 2: Inserir um visual de relatório paginado com associação dinâmica

Um visual de relatório paginado é um relatório paginado inserido em um relatório do Power BI. Para implementar um visual de relatório paginado inserido usando associação dinâmica, adicione a datasetBinding propriedade ao objeto de configuração de inserção, conforme mostrado no exemplo a seguir.

let config = {
    type: 'report',
    tokenType: models.TokenType.Embed,
    accessToken: accessToken,
    embedUrl: embedUrl,
    id: "reportId",
    permissions: permissions,
    datasetBinding: {
        datasetId: "notOriginalDatasetId",
        paginatedReportBindings: [{
            sourceDatasetId: "originalDatasetId",
            targetDatasetId: "notOriginalDatasetId"
        }]
    }
};

// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];

// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);

Considerações e limitações

  • O conjunto de dados selecionado dinamicamente deve usar o mesmo esquema de dados no relatório.
  • Ao inserir para clientes, gere um token de inserção usando a nova API.
  • Ao inserir para sua organização, verifique se o usuário tem permissões para o relatório e o conjunto de dados.
  • A datasetBinding propriedade não pode estar vazia. Ele deve conter, datasetId, paginatedReportBindingsou ambos.
  • Os valores de datasetId e targetDatasetId não precisam ser os mesmos. A associação funciona de forma independente para relatórios .pbix e paginados.
  • A datasetBinding propriedade pode conter vários objetos.

Próximas etapas