Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit dem Power Apps-Connector für Azure DevOps können Sie mit Ihrer Azure DevOps-Instanz arbeiten. Anzeigen von Azure DevOps-Abfragen, Auswählen von Arbeitsaufgaben nach Typ und Anzeigen oder Bearbeiten von Details – alles in einer Canvas-App, die mit Azure DevOps verbunden ist.
Tipp
Eine vollständige Liste aller Aktionen finden Sie unter Azure DevOps-Connectoraktionen.
Dieser Artikel führt Sie durch das Erstellen einer Canvas-App, die eine Verbindung mit Azure DevOps herstellt, um eine Liste von Abfragen abzurufen und mit Arbeitsaufgaben in Ihrem Projekt zu interagieren.
Voraussetzungen
Sie benötigen Folgendes:
- Eine Power Apps-Lizenz. Wenn Sie nicht über eine Testversion verfügen, verwenden Sie eine 30-Tage-Testversion, oder registrieren Sie sich für einen Entwicklerplan für die Nichtproduktion.
- Wenn Sie mit Power Apps noch nicht vertraut sind, lernen Sie die Grundlagen kennen, indem Sie eine App generieren und dann die Steuerelemente, Kataloge, Formulare und Karten der App anpassen.
- Eine leere Canvas-App zum Herstellen einer Verbindung mit Azure DevOps.
- Zum Erstellen der App in diesem Artikel benötigen Sie eine Azure DevOps-Instanz mit einer Organisation, einem Projekt und einer freigegebenen Abfrage, die einige Beispielarbeitselemente zum Bearbeiten zur Verfügung hat.
- Die Azure DevOps-Instanz muss den Zugriff auf Anwendungen von Drittanbietern über OAuth ermöglichen. Weitere Informationen finden Sie unter Verwalten von Zugriffsrichtlinien für Azure DevOps.
Schritt 1 : Hinzufügen der Azure DevOps-Datenquelle
Um eine Verbindung mit Azure DevOps herzustellen, bearbeiten Sie die leere Canvas-App, und fügen Sie die Azure DevOps-Datenquelle hinzu.
Wenn Sie keine Azure DevOps-Verbindung haben, wählen Sie "Verbinden" aus, folgen Sie den Anweisungen, um Ihre Details einzugeben, und erlauben Sie der App, eine Verbindung herzustellen.
Schritt 2 : Auflisten freigegebener Abfragen
In diesem Abschnitt verwenden Sie die Aktion "ListQueriesInFolder " für den Azure DevOps-Connector, um die verfügbaren Abfragen auflisten zu können.
Wählen Sie im linken Bereich "Layout>leerer vertikaler Katalogeinfügen>" aus.
Geben Sie die folgende Formel für die Items-Eigenschaft des Katalogs ein. Ersetzen Sie die Beispielparameterwerte durch Ihre eigenen Werte.
AzureDevOps.ListQueriesInFolder("Project", "Organization", "Folder").value
Im Beispiel werden die Variablen "Project", "Organization" und "Folder" verwendet. Die tatsächlichen Werte befinden sich in den Textfeldern unterhalb der Bearbeitungsleiste (hervorgehoben). Sie finden Ihre Projekt- und Organisationswerte in der URL, die zum Herstellen einer Verbindung mit Azure DevOps verwendet wird. Der Ordner ist in der Regel "Freigegebene Abfragen" oder "Meine Abfragen".
Wenn die folgende Fehlermeldung in der obigen Formel angezeigt wird, aktivieren Sie den App-Zugriff von Drittanbietern mithilfe von OAuth in Ihrer Azure DevOps-Organisation, und versuchen Sie es erneut.
"AzureDevOps.ListQueriesInFolder failed:{"status":401,"message":"TF400813:The user 'GUID' isn't authorized to access this resource."}"
Legen Sie das Layout für den Katalog auf Titel und Untertitel fest.
Wählen Sie die Felder aus, die für Azure DevOps als Name und FolderOptions für den Titel und untertitel geeignet sind.
Schritt 3: Auflisten von Arbeitsaufgaben
Verwenden Sie die GetQueryResultsV2-Aktion für den Azure DevOps-Connector, um alle Arbeitsaufgaben für die ausgewählte Abfrage auflisten. Diese Aktion bindet den Katalog an die Datenquelle.
Fügen Sie einen weiteren leeren vertikalen Katalog ein, und platzieren Sie ihn neben dem vorhandenen Katalog.
Geben Sie die folgende Formel für die Items-Eigenschaft des Katalogs ein. Ersetzen Sie die Beispielparameterwerte durch Projekt- und Organisationsnamen.
AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id), "Organization").value
Diese Formel verwendet die GetQueryResultsV2-Aktion mit dem Projektnamen, der Abfrage-ID und dem Organisationsnamen. Die Abfrage-ID in diesem Beispiel (Gallery2.Selected.Id) bezieht sich auf die Abfrage, die aus der Liste der abfragen ausgewählt wurde, die über den zuvor hinzugefügten Katalog verfügbar sind. Ersetzen Sie den Katalognamen nach Bedarf.
Hinzufügen dynamischer Rückgabewerte zu Ihrem Katalog
Das Ergebnis von GetQueryResultsV2 ist dynamisch, sodass die Werte ebenfalls dynamisch sind.
Sie können jedoch auf einige der Werte zugreifen. Azure DevOps gibt einen grundlegenden Wertesatz für alle eingegebenen Elemente zurück. Wählen Sie die Datenkarte im Katalog aus, und fügen Sie zwei Textbeschriftungen ein. Legen Sie die Texteigenschaft der Beschriftungen wie folgt fest:
ThisItem.Value.'System.WorkItemType'
ThisItem.Value.'System.Title'
Schritt 4 – Anzeigen von Arbeitsaufgaben
Die App zeigt eine Liste aller Abfragen und die Liste der Arbeitsaufgaben für die ausgewählte Abfrage an. Fügen Sie nun ein Bearbeitungsformular zum Anzeigen von Daten hinzu.
Verschieben Sie beide Kataloge auf die linke Seite des Bildschirms, um Platz für das Bearbeitungsformular zu schaffen.
Fügen Sie dem Bildschirm das Bearbeitungsformular hinzu, und verschieben Sie es auf die rechte Seite der Kataloge.
Legen Sie die DataSource-Eigenschaft des Bearbeitungsformulars auf
AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value. Ersetzen Sie "Projekt" und "Organisation" durch Ihre Projekt- und Organisationsnamen.Legen Sie die Item-Eigenschaft des Bearbeitungsformulars auf
Gallery2.Selected.
Mit dieser Formel wird die Item-Eigenschaft für das Bearbeitungsformular auf die ausgewählte Arbeitsaufgabe festgelegt.
- Wählen Sie ... (Auslassungspunkte) >Fügen Sie eine benutzerdefinierte Karte hinzu.
- Verschieben Sie die Datenkarte an den Anfang des Bearbeitungsformulars.
- Vergrößern Sie die Größe des Texteingabesteuerelements.
- Legen Sie die Standardeigenschaft des Texteingabesteuerelements auf
Text(ThisItem.Value.'System.Title'). Die Text-Funktion gibt den Wert als Text zurück.
Mit dieser Formel wird der Standardtext innerhalb des Texteingabesteuerelements auf das Feld "Titel " aus der ausgewählten Azure DevOps-Arbeitsaufgabe festgelegt.
Tipp
Wenn Ihr Azure DevOps-Projekt das Feld "Beschreibung " mit HTML oder Rich-Text verwendet, verwenden Sie das Rich-Text-Editor-Eingabesteuerelement anstelle der Texteingabe - oder Bezeichnungssteuerelemente. Das Rich-Text-Editor-Steuerelement hilft, die Beschreibung als Rich-Text anstelle von HTML-Code anzuzeigen.
- Wiederholen Sie die vorherigen Schritte, um eine weitere benutzerdefinierte Karte hinzuzufügen, wobei ein Texteingabesteuerelement enthalten ist, auf das die Standardeigenschaft festgelegt ist
Text(ThisItem.Value.'System.State').
Mit dieser Formel wird der Standardtext innerhalb des Texteingabesteuerelements auf das Feld "Status" aus der ausgewählten Azure DevOps-Arbeitsaufgabe festgelegt.
- Ordnen Sie die Datenkarten im Bearbeitungsformular neu an, um Platz für das Speichersymbol zu erstellen.
Hinzufügen dynamischer Rückgabewerte zu Formularen
Bisher verwenden Sie das Bearbeitungsformular, das den Datenzugriff vereinfacht, indem Sie eine gemeinsame DataSource- und Item-Eigenschaft für alle Datenkarten im Formular bereitstellen. Um auf dynamische Werte zuzugreifen, legen Sie sowohl die Datenquelle als auch die Elementeigenschaften wie folgt fest (ersetzen Sie "Organisation" und "Project" durch Ihre Werte):
AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType')
Wenn Sie die Texteigenschaft "WorkItemType" übergeben, z. B. "Feature", können Sie zwischen Elementen wie Features und Arbeitselementen wechseln. Da sich der Satz von Feldern für diese Elemente unterscheidet, ist der Rückgabetyp von diesem Aufruf dynamisch.
Greifen Sie mithilfe der allgemeinen Methode "Text(ThisItem.Value.'System" auf bestimmte Werte zu. ID'). Alternativ können Sie über die allgemeinere dynamische Antwort mithilfe von Text(ThisItem.fields.System_Id) darauf zugreifen. Diese Dynamischen Wertnamen sind in der Regel nicht dokumentiert. Um die richtigen Namen für diese Felder zu finden, einschließlich nicht standardmäßiger Felder, öffnen Sie das Monitortool, und untersuchen Sie die Datenantwort für den GetWorkItemDetails-Aufruf. Eine Anleitung finden Sie in der nachstehenden Abbildung.
Wenn Sie kein Bearbeitungsformular verwenden, aber einen Container verwenden, rufen Sie diese Werte mit einer Formel wie der folgenden ab, die Informationen aus einem benutzerdefinierten Teamfeld abruft.
Text(AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType').fields.One_custom_CustomField1)
Aktualisieren von Werten in Azure DevOps
Verwenden Sie die Funktion in der UpdateWorkItemOnSelect Eigenschaft einer Schaltfläche, um einen Wert in Azure DevOps zu aktualisieren.
AzureDevOps.UpdateWorkItem(
Gallery2.Selected.Value.'System.Id',
Organization,
{
description: "This is a new description",
dynamicFields: ParseJSON(JSON({'Custom Field 1': "This is new custom text" }))
}
)
Die Formel fügt neuen Beispieltext hinzu, sie können aber auch einen Power Fx-Ausdruck verwenden.
Stellen Sie sicher, dass die Formel für integrierte Feldnamen Kleinbuchstaben verwendet. Wenn Sie z. B. auf das Feld "Beschreibung" verweisen, verwenden Sie description: "This is a new description" anstelle von Description: "This is a new description". Falsche Groß-/Kleinschreibung kann dazu führen, dass der Fehler "400 Erforderlicher Parameter fehlt für den angeforderten Vorgang: 'UpdateWorkItem'". Verwenden Sie für benutzerdefinierte oder dynamische Werte den Anzeigenamen, wie in der Benutzeroberfläche dargestellt, z. B. "Benutzerdefiniertes Feld 1". Diese Benennungskonvention ist spezifisch für Azure DevOps und kann sich von anderen Diensten unterscheiden.
Nächste Schritte
Führen Sie die App aus. Wählen Sie eine Abfrage aus der Liste der Abfragen aus. Wählen Sie dann eine Arbeitsaufgabe aus, deren Titel oder Beschreibung Sie aktualisieren möchten. Nehmen Sie eine Änderung vor, und wählen Sie dann die Schaltfläche "Speichern" aus. Die App speichert Ihre Änderungen an der Azure DevOps-Arbeitsaufgabe. Wechseln Sie zu einer anderen Abfrage, und wechseln Sie dann zurück, um die Änderungen in der App anzuzeigen.
Sie können die App auch weiter anpassen oder eine App mit weiteren Datenkarten auf Formularen erstellen. Verwenden Sie ein Anzeigeformular anstelle eines Bearbeitungsformulars, um Daten in verschiedenen Datenkarten anzuzeigen. Wenn Sie ein Anzeigeformular verwenden, verwenden Sie das Textbezeichnungssteuerelement , um Text anzuzeigen. Wenn Sie Rich-Text- oder HTML-Format verwenden (z. B. das Feld "Beschreibung" in Azure DevOps), verwenden Sie das HTML-Textsteuerelement . Weitere Informationen zum Anpassen der App finden Sie unter Steuerelementen, Katalogen, Formularen und Karten.
Siehe auch
Arbeiten mit dynamischen Schemadatenquellen in Power Apps (experimentell)