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 utilisé par les visuels de rapport. À l’aide de 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 se lier dynamiquement à chacun de ces jeux de données. Vous pouvez ensuite afficher différentes informations, 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 des applications. Par conséquent, la liaison dynamique simplifie l’intégration pour les nouveaux clients.

Comment 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 des 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é qui prend en charge les éléments Power BI, tels que les rapports et les tableaux de bord.

Lorsque vous incorporez pour votre organization, 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 d’une liaison dynamique, ajoutez la datasetBindings propriété à 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 datasetBinding propriété à 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 d’incorporation à l’aide de la nouvelle API.
  • Lors de l’incorporation pour votre organization, vérifiez que l’utilisateur dispose d’autorisations pour le rapport et le jeu de données.
  • La datasetBinding propriété ne peut pas être vide. Il doit contenir , datasetIdpaginatedReportBindings, ou les deux.
  • Les valeurs pour datasetId et targetDatasetId ne doivent pas être les mêmes. La liaison fonctionne indépendamment pour .pbix et les rapports paginés.
  • La datasetBinding propriété peut contenir plusieurs objets.

Étapes suivantes