Lier dynamiquement des jeux de données à un rapport paginé

Les rapports Power BI et les rapports paginés sont basés sur un jeu de données existant. Ce jeu de données définit le schéma de données que les visuels de rapport utilisent. En utilisant la liaison dynamique, vous pouvez sélectionner un jeu de données à la volée lorsque vous incorporez un visuel de rapport paginé.

Les jeux de données que vous sélectionnez doivent utiliser le même schéma de données. Si vous avez plusieurs jeux de données avec le même schéma de données, votre rapport peut se connecter ou lier dynamiquement à chacun de ces jeux de données. Vous pouvez ensuite afficher différents insights, en fonction de vos besoins.

La liaison dynamique offre également d’autres avantages. Vous n’avez pas besoin de créer une copie du même rapport avec un jeu de données différent pour chaque utilisateur. Un rapport peut servir plusieurs utilisateurs. Cette fonctionnalité réduit ensuite le nombre d’éléments gérés et améliore la gestion du cycle de vie de l’application. Par conséquent, la liaison dynamique simplifie l’intégration pour les nouveaux clients.

Guide pratique pour connecter un rapport à plusieurs jeux de données dynamiquement

Vos rapports et jeux de données peuvent se trouver dans des espaces de travail distincts , mais les deux espaces de travail doivent avoir une capacité.

Lorsque vous incorporez pour les clients, le jeton d’incorporation doit inclure des autorisations pour le rapport et le jeu de données lié dynamiquement. Utilisez la nouvelle API pour générer un jeton incorporé prenant en charge les éléments Power BI, tels que les rapports et les tableaux de bord.

Lorsque vous incorporez pour votre organisation, le jeton Azure Active Directory (AD) de l’utilisateur que vous utilisez doit disposer des autorisations appropriées pour tous les éléments Power BI.

Exemple 1 : Incorporer un rapport paginé avec une liaison dynamique

Pour implémenter un rapport paginé incorporé à l’aide de la liaison dynamique, ajoutez la propriété datasetBindings à l’objet de configuration incorporé, comme illustré dans l’exemple suivant.

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);

Exemple 2 : Incorporer un visuel de rapport paginé avec une liaison dynamique

Un visuel de rapport paginé est un rapport paginé incorporé dans un rapport Power BI. Pour implémenter un visuel de rapport paginé incorporé à l’aide d’une liaison dynamique, ajoutez la propriété datasetBinding à l’objet de configuration incorporé, comme illustré dans l’exemple suivant.

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);

Considérations et limitations

  • Le jeu de données sélectionné dynamiquement doit utiliser le même schéma de données dans le rapport.
  • Lors de l’incorporation pour les clients, générez un jeton incorporé à l’aide de la nouvelle API.
  • Lors de l’incorporation pour votre organisation, vérifiez que l’utilisateur dispose des autorisations pour le rapport et le jeu de données.
  • La propriété datasetBinding ne peut pas être vide. Il doit contenir, datasetId, paginatedReportBindings, ou les deux.
  • Les valeurs de datasetId et de targetDatasetId n’ont pas besoin d’être identiques. La liaison fonctionne indépendamment pour les rapports .pbix et paginés.
  • La propriété datasetBinding peut contenir plusieurs objets.