Einbetten eines eigenständigen Q&A-Visuals
Tipp
Versuchen Sie, eine Q&A einzubetten, oder experimentieren Sie mit unseren Client-APIs im Abschnitt Erkunden unserer APIs des Power BI Embedded Analytics Playground.
In diesem Artikel werden die Schritte zum Einbetten eines eigenständigen Q&A-Visuals in Ihre Anwendung beschrieben.
Dieses Feature bietet Benutzern die Möglichkeit, Fragen zu stellen. Sie erhalten dann sofortige Antworten in Form von Visuals wie Diagrammen oder Graphen. Weitere Informationen zu diesem Feature finden Sie unter Erstellen eines Q-&-Visuals in Power BI.
Einbetten von Q&A
Wenn Sie Power BI-Inhalte in eine App einbetten, verwenden Sie ein Konfigurationsobjekt, um den einzubettenden Inhalt zu definieren und die Einstellungen des Inhalts anzugeben. Anschließend übergeben Sie dieses Objekt an die API.
Verwenden Sie beim Einbetten von Q&A ein Konfigurationsobjekt vom Typ ILoadQnaConfiguration:
interface ILoadQnaConfiguration {
accessToken: string;
datasetIds: string[];
embedUrl: string;
question?: string;
tokenType?: models.TokenType;
type: string;
viewMode?: models.QnaMode;
}
Diese Schnittstelle enthält die folgenden Eigenschaften:
accessToken
– Das Token, das Ihnen Zugriff auf die Power BI-Daten ermöglicht, die Sie einbetten. Weitere Informationen zu Zugriffstoken finden Sie unter Grundlegendes zu den verschiedenen Einbettungslösungen .datasetIds
– Die IDs der Datasets, die die Datenschemas definieren, die vom eingebetteten Q&A verwendet werden. Sie können eine Datasets-API verwenden, um die Datasets abzurufen. Zwei Beispiele:Hinweis
Derzeit können Sie nur ein Dataset konfigurieren.
embedUrl
– Die URL des Datasets für die Q-&A, die Sie einbetten. Diese URL wird zur Quelle des HTML-Elementsiframe
, das das eingebettete Q&A enthält. Insbesondere weist die API die URL demsrc
Attribut desiframe
zu. Sie können eine Datasets-API verwenden, um diese URL abzurufen. Zwei Beispiele:question
– Die Frage, die die Visualisierung bestimmt, die von der API angezeigt wird. Diese Eigenschaft wird nur im Ergebnismodus verwendet.tokenType
– Die Art des Tokens, das Ihnen Zugriff auf die power BI-Daten ermöglicht, die Sie einbetten.- Verwenden Sie
models.TokenType.Aad
diese Option, wenn Sie für Ihre organization einbetten (der Benutzer besitzt die Daten). - Verwenden Sie
models.TokenType.Embed
, wenn Sie für Ihre Kunden einbetten (die App besitzt die Daten).
Weitere Informationen finden Sie unter Grundlegendes zu den verschiedenen Einbettungslösungen .
- Verwenden Sie
type
– Die Art von Inhalten, die Sie einbetten. Verwenden Sie'qna'
für Q&A.viewMode
– Der Modus des eingebetteten Q&A. Es stehen zwei Modi zur Verfügung:Interactive
– Der Benutzer kann Fragen eingeben. Die API zeigt die Fragen an und aktualisiert das Visual entsprechend.ResultOnly
Sie stellen eine bestimmte Frage. Die API zeigt diese Frage und ihr Visuelles an.
In diesem Beispiel wird gezeigt, wie Sie Q&A einbetten:
// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
accessToken: anAccessToken,
datasetIds: [aDatasetID],
embedUrl: anEmbedUrl,
question: aTextQuestion,
tokenType: aTokenType,
type: 'qna',
viewMode: QnaMode.ResultOnly
};
// Get a reference to the HTML element that contains the embedded Q&A.
let embedContainer = $('#embedContainer')[0];
// Embed the Q&A.
let visual = powerbi.embed(embedContainer, embedConfiguration);
Ändern der angezeigten Frage
Wenn Sie eine viewMode
von ResultOnly
verwenden und eine Frage angeben, können Sie die setQuestion
-Methode verwenden, um die angezeigte Frage zu ändern. Die API ändert dann das angezeigte Visual.
Sie können diese Methode für eine Liste mit häufig gestellten Fragen verwenden. Während der Benutzer die Fragen durchläuft, können Sie die Antworten innerhalb des eingebetteten Elements anzeigen.
Die PowerBI JavaScript Qna-Klasse definiert die setQuestion
Methode wie:
setQuestion(question: string): Promise<void>
Der question
Parameter enthält eine Frage im Textformat.
In diesem Beispiel wird gezeigt, wie Sie diese Methode verwenden, um die angezeigte Frage zu ändern:
// Get a reference to the embedded Q&A HTML element.
let qnaContainer = $('#qnaContainer')[0];
// Get a reference to the embedded Q&A.
let qna = powerbi.get(qnaContainer);
// Change the displayed question.
await qna.setQuestion("This year sales");
Erfassen Der Fragen Ihrer Benutzer
Wenn Sie einen viewMode
von Interactive
verwenden, kann die API Ihre App benachrichtigen, wenn sich das angezeigte Visuelle ändert. Wenn sich das Visual als Reaktion auf eine aktualisierte Eingabeabfrage ändert, gibt die eingebettete Komponente ein Ereignis aus visualRendered
. Wenn Ihre App auf diesen Ereignistyp lauscht, kann Ihr Code auf die neue Abfrage reagieren.
Für instance können Sie die Von Benutzern eingegebenen Fragen aufzeichnen. Sie können diese Fragen später für KI- oder Telemetriezwecke verwenden.
Verwenden Sie Code wie diese Zeilen, um Ereignisse zu visualRendered
lauschen:
qna.on("visualRendered", function(event) {
...
});
Weitere Informationen zum Lauschen von Ereignissen finden Sie unter Behandeln von Ereignissen .
Einschränkungen
Die eingebettete Q&A verwendet Datenschemas. Derzeit können Sie nur ein Schema und nicht mehrere Schemas konfigurieren.