Anslut till Azure DevOps från Power Apps

Power Apps-anslutningsprogram för Azure DevOps låter dig arbeta med Azure DevOps-instans. Du kan visa Azure DevOps-frågor, välja arbetsobjekt utifrån olika arbetsobjekttyper, visa eller redigera information inifrån en arbetsyteapp som ansluter till Azure DevOps.

Dricks

En fullständig lista över alla åtgärder finns i åtgärder för Azure DevOps-anslutningsprogram.

Syftet med den här artikeln är att guida dig i arbetet med att skapa en app för arbete som kan ansluta till Azure DevOps för att samla en lista med frågor och interagera med arbetsobjekten i projektet.

Förutsättningar

Följande krav är nödvändiga:

Steg 1 – Lägg till Azure DevOps datakälla

Om du vill ansluta till Azure DevOps redigerar du den tomma arbetsyteappen och lägger till Azure DevOps-datakälla.

Anslut till Azure DevOps.

Om du inte redan har en Azure DevOps-anslutning väljer du Anslut och följer anvisningarna för att ange din information, och tillåter sedan att appen ansluter.

Steg 2 – Visa delade frågor

I det här avsnittet använder vi åtgärden ListQueriesInFolder för Azure DevOps-anslutningsprogrammet för att lista de tillgängliga frågorna.

  1. I vänster fönster väljer du Infoga > Layout > Tomt stående galleri.

  2. Ange följande formel för egenskapen Items i galleriet och ersätt därmed exempelparametervärdena efter behov.

    AzureDevOps.ListQueriesInFolder("Project","Organization","Folder").value
    

Listfrågor i mappen med formeln som lagts till för egenskapen Items i det stående galleriet.

Om variablerna "Projekt", "Organisation" och "Mapp" används i exemplet och de faktiska värdena finns i textrutorna nedanför formelfältet (och de är inte aktuella). Du hittar dina projekt- och organisationsvärden från URL:en som används för att ansluta till Azure Dev Ops. Mappen är vanligtvis "Delade frågor" eller "Mina frågor".

Leta upp projekt- och organisationsnamnet för din Azure Dev Ops-instans.

Om följande fel visas i ovanstående formel aktiverar du åtkomsten till appen från tredje part med hjälp av OAuth i Azure DevOps-organisationen och försöker igen.
"AzureDevOps.ListQueriesInFolder failed:{"status":401,"meddelande":"TF400813:Användarens 'GUID' är ej behörigt att få åtkomst till denna resurs."}

  1. Ang galleriets layout som Rubrik och undertext.

  2. Välj fälten som är lämpliga för Azure Dev Ops som Namn och FolderOptions för rubrik och undertext.

Gallerifält för frågelistning.

Steg 3 – Lista arbetsuppgifter

Vi ska nu använda åtgärden GetQueryResultsV2 för anslutningsprogrammet Azure DevOps för att lista alla arbetsobjekt för den valda frågan. Detta binder galleriet till datakällan.

  1. Infoga ett annat tomt, stående galleri och placera det på höger sida av det befintliga galleriet.

  2. Ange följande formel för egenskapen Items i galleriet och ersätt därmed exempelparametervärdena efter behov. Ersätt projekt- och organisationsnamnen efter behov.

    AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value
    

Hämta frågeresultat från befintligt galleri baserat på den valda frågan..

Den här formeln använder åtgärden GetQueryResultsV2 med projektnamn, fråge-ID och organisationsnamn. Fråge-ID:t i det här exemplet (Gallery2.Selected.Id) refererar till frågan som valts i listan med frågor som är tillgänglig via galleriet som lagts till tidigare. Ersätt gallerinamnet efter behov.

Det returnerade resultatet av GetQueryResultsV2 är dynamiskt. Värdena är därför även typlösa.

Visa arbetsobjektfält för rubrik, arbetsobjekttyp.

Du kan dock komma åt vissa av värdena. Azure Dev Ops returnerar en grundläggande uppsättning värden för alla objekt som är typbestämd. Markera datakort i galleriet och infoga två textetiketter. Ange textegenskapen för etiketterna enligt följande:

    ThisItem.Value.'System.WorkItemType'
    ThisItem.Value.'System.Title'

Steg 4 – Visa arbetsuppgifter

Appen visar en lista över alla frågor och därefter listan med arbetsobjekt för den valda frågan. Nu kan vi lägga till ett redigeringsformulär som ska användas för att visa data.

  1. Ordna om de två gallerierna på skärmen så att det blir plats för det redigeringsformulär som ska läggas till genom att flytta båda gallerier till vänster på skärmen.

  2. Lägg till Redigera formulär på skärmen och flytta det till höger om gallerierna.

Lägg till formulärsredigering.

  1. Ange egenskapen DataSource för redigeringsformuläret som AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value. Ersätt projekt- och organisationsnamnen efter behov.

  2. Ange Item-egenskapen för redigeringsformuläret som Gallery2.Selected.

    Med den här formeln anges Item-egenskapen för redigeringsformuläret som det arbetsobjekt som är markerat i listan över arbetsobjekt.

  3. Välj Redigera fält i egenskapsfönstret till höger om skärmen.

  4. Välj ... (ellips) > Lägg till anpassat kort.

    Lägg till ett anpassad-kort.

  5. Ordna om datakorten i redigeringsformuläret högst upp.

    Anpassat kort flyttas till det övre avsnittet i redigeringsformuläret.

  6. Håll det anpassade kortet markerat och infoga en Textinmatning-kontroll. När kontrollen har valts läggs den till i det anpassade kortet.

  7. Öka storleken på Textinmatning-kontrollen.

Textinmatning-kontroll i anpassat kort.

  1. Ange egenskapen Standard för Textinmatning-kontrollen som Text(ThisItem.Value.'System.Title'). Textfunktionen "skriver" returen som text.

Detta är den textinmatning-kontroll som refererar till arbetsobjektets rubrik.

Med den här formeln anges standardtexten i Textinmatning-kontrollen till fältet Rubrik från valt Azure DevOps-arbetsobjekt.

Dricks

Om ditt Azure DevOps-projekt använder fältet Beskrivning med HTML eller RTF kan du också använda indatakontrollen RTF-redigerare istället för Textinmatning eller etikett-kontroller. Om du använder RTF-redigerare i det här fallet kan du även lösa eventuella problem, t.ex. beskrivningen som visas med HTML-kod i stället för oformaterad eller som RTF.

  1. Upprepa föregående steg om du vill lägga till ett annat anpassat kort med en Textinmatning-kontroll där egenskapen Standard har angetts till Text(ThisItem.Value.'System.State').

    Med den här formeln anges standardtexten i Textinmatning-kontrollen till fältet Tillstånd från valt Azure DevOps-arbetsobjekt.

  2. Ordna om datakorten i redigeringsformuläret så att det skapas utrymme där sparikonen ska läggas till.

Lägga till typlösa och dynamiska returvärden i formulären

Vi har nu använt formuläret Redigera, vilket förenklar informationens åtkomst genom att tillhandahålla en gemensam egenskap för DataSource och Item som alla datakort i formuläret kan användas med. Om du använder formuläret Redigera ser du till att du anger både datakälla och objektets egenskaper enligt följande för att få åtkomst till typlösa värden.

   AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType')

När du skickar textegenskapen "WorkItemType", till exempel "Funktion", kan du växla från objekt som funktioner och arbetsobjekt. Eftersom fältuppsättningen för dessa objekt skiljer sig från varandra är returtypen från det här samtalet dynamisk.

Du kan komma åt specifika värden med hjälp av den vanliga metoden Text(ThisItem.Value.' System.Id'). Du kan även få tillgång till dem via det mer allmänna dynamiska svaret med hjälp av Text(ThisItem.fields.System_Id). Dessa dynamiska värdenamn är vanligtvis inte dokumenterade. Om du vill hitta rätt namn för dessa fält, även fält som inte är standardfält, öppnar du övervakningsverktyget och undersöker datasvaret för GetWorkItemDetails-anropet. Se bilden nedan för mer information.

Om du inte skapar ett redigeringsformulär utan i stället använder en behållare kan du hämta dessa värden med hjälp av en formel, t.ex. en nedan, som hämtar information från ett anpassat teamfält.

Text(AzureDevOps.GetWorkItemDetails(Gallery2.Selected.Value.'System.Id',Organization, Project, Gallery2.Selected.Value.'System.WorkItemType').fields.One_custom_CustomField1)

Textinmatning-kontroll som refererar till arbetsobjektets rubrik.

Uppdatera värden i Azure DevOps

Om du vill uppdatera ett värde i Azure Dev ops använder du UpdateWorkItem i OnSelect på en knapp.

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

Formeln lägger till ny exempeltext, men du kan också använda ett PowerFx-uttryck.

Kontrollera att formeln innehåller gemener för de icke-anpassade eller inbyggda fältnamnen. Om du till exempel hänvisar till fältet "Beskrivning" ska du använda description: "This is a new description" istället för Description:"This is a new description". Felaktiga gemener/VERSALER kan resultera i felet "400 Krävd parameter saknas för begärd åtgärd: 'UpdateWorkItem'". För anpassade/dynamiska värden kan du använda standardvisningsfältet. Fältnamnet för det anpassade fältet är till exempel bara visningsnamn "Anpassat fält 1". Den här namnkonvention för returvärdena är specifik för Azure DevOps och kan skilja sig från andra tjänster.

Nästa steg

Kör programmet. Markera en fråga i frågelistan. Välj sedan ett arbetsobjekt som du vill uppdatera rubriken eller beskrivningen för. Gör en ändring och välj sedan knappen Spara. Ändringarna sparas i arbetsobjektet Azure DevOps. Växla till en annan fråga och växla tillbaka igen för att se att ändringarna visas i appen.

På samma sätt kan du anpassa appen ytterligare eller skapa en app med fler datakort i formulär. Du kan också använda visningsformulär istället för att redigera formulär för att bara visa data i olika datakort. När du använder visningsformulär bör du kontrollera att du använder kontrollen Textetikett för att visa text. Om du använder RTF- eller HTML-format (till exempel fältet Beskrivning i Azure DevOps) använder du kontrollen för HTML-text. Mer information om hur du anpassar appen finns i kontroller, galleri, formulär och kort.

Se även

Arbeta med dynamiska schemadatakällor i Power Apps (beta)

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).