從 Power Apps 連線 Azure DevOps

Azure DevOps 的 Power Apps 連接器可讓您使用 Azure DevOps 執行個體。 您可以從連接到 Azure DevOps 的畫布應用程式中查看 Azure DevOps 查詢、根據不同的工作項目類型選取工作項目,以及檢視或編輯詳細資料。

提示

如需所有動作的完整清單,請參閱 Azure DevOps 連接器動作

本文的目標是引導您組建可連接 Azure DevOps 的畫布應用程式,以便收集查詢清單,並與專案中的工作項目互動。

先決條件

下列為必要需求:

步驟 1 - 新增 Azure DevOps 資料來源

若要連接至 Azure DevOps,請編輯空白畫布應用程式,並新增 Azure DevOps 資料來源。

連接至 Azure DevOps。

如果尚未有任何 Azure DevOps 連線,請選取連線,並依提示提供詳細資料,然後允許該應用程式連接。

步驟 2 - 列出共用查詢

在本節中,我們將使用 Azure DevOps 連接器的 ListQueriesInFolder 動作來列出可用的查詢。

  1. 從左窗格中選取插入 > 版面 > 空白垂直資源庫

  2. 為資源庫的 Items 屬性輸入下列公式,並視需要取代範例參數值。

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

使用新增至垂直資源庫 Items 屬性的公式來列出資料夾中的查詢。

如果範例使用「專案」、「組織」以及 「資料夾」等變數,而實際值是在公式列下方的文字方塊中 (突出顯示) 。 您可以從用於連接至 Azure Dev Ops 的 URL 尋找專案和組織值。 資料夾通常會是「共用查詢」或「我的查詢」。

找出 Azure Dev Ops 執行個體的專案和組織名稱。

如果您發現上述公式中出現以下錯誤,請在您的 Azure DevOps 組織中使用 OAuth 來啟用協力廠商應用程式存取,然後再試一次。
「AzureDevOps.ListQueriesInFolder 失敗:{"status":401,"message":"TF400813:使用者 'GUID' 無權存取此資源。」}

  1. 在資源庫的配置選取標題和子標題

  2. 選擇適合 Azure Dev Ops 的欄位,做為標題和子標題的名稱資料夾選項

用於列出查詢的資源庫欄位。

步驟 3 - 列出工作項目

現在,我們會使用 Azure DevOps 連接器的 GetQueryResultsV2 動作,列出所選查詢的所有工作項目。 這會把資源庫綁定到資料來源。

  1. 插入其他空白垂直資源庫,並將其放置在現有資源庫的右側。

  2. 為資源庫的 Items 屬性輸入下列公式,並視需要取代範例參數值。 視需要取代您的專案與組織名稱。

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

根據所選查詢,從現有資源庫取得查詢結果。

此公式會將 GetQueryResultsV2 動作與專案名稱、查詢識別碼和組織名稱搭配使用。 這個範例 (Gallery2.Selected.Id) 中的查詢識別碼,指的是透過您先前新增資源庫的可用查詢清單中所選取的查詢。 視需要取代資料庫名稱。

GetQueryResultsV2 傳回的結果是動態的。 因此值也是非輸入的。

顯示標題、工作項目類型的工作項目欄位。

不過,您可以存取某些值。 Azure Dev Ops 會傳回所有已輸入項目的一組基本值。 選取資源庫中的資料卡片,並插入兩個文字標籤。 將標籤的 text 屬性設為以下內容:

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

步驟 4 - 顯示工作項目

應用程式會顯示所有查詢的清單,以及所選查詢的工作項目清單。 現在,我們可以新增一種編輯表單,而我們只會用它來顯示資料。

  1. 排列畫面上的兩個資源庫以空出編輯表單的空間,我們的做法是把這兩個資源庫移至畫面的左邊。

  2. 編輯表單新增至畫面,並將它移至資源庫的右側。

新增編輯表單。

  1. 將編輯表單的 DataSource 屬性設為 AzureDevOps.GetQueryResultsV2("Project", Text(Gallery1.Selected.Id),"Organization").value。 視需要取代您的專案與組織名稱。

  2. 將編輯表單的 Item 屬性設為 Gallery2.Selected

    此公式會將編輯表單的 Item 屬性設為工作項目清單中所選的工作項目。

  3. 從畫面右側的屬性窗格選取編輯欄位

  4. 選取 ... (省略符號) > 新增自訂卡片

    新增自訂卡片。

  5. 在最上方的編輯表單中重新排列資料卡片。

    自訂卡片移至編輯表單中的頂端區段。

  6. 讓自訂卡片保持選取狀態,插入文字輸入控制項。 選取後,控制項就會新增至自訂卡片中。

  7. 增加文字輸入控制項的大小。

自訂卡片內的文字輸入控制項。

  1. 將文字輸入控制項的 Default 屬性設為 Text(ThisItem.Value.'System.Title')。 文字函數將傳回值「輸入」為文字。

這是參考工作項目標題的文字輸入控制項。

此公式會將文字輸入控制項中的預設文字設定為所選 Azure DevOps 工作項目中的標題欄位。

提示

如果您的 Azure DevOps 專案使用具有 HTML 或富文本的描述欄位,您也可以使用富文本編輯器輸入控制項來取代 文字輸入或標籤控制項。 在此案例中使用富文本編輯器控制項也有助於解決任何問題,例如描述與 HTML 程式碼一起顯示,而不是純文字或富文本。

  1. 重複上述步驟新增其他自訂卡片,其中包含文字輸入控制項,其 Default 屬性設為 Text(ThisItem.Value.'System.State')

    此公式會將文字輸入控制項中的預設文字設定為所選 Azure DevOps 工作項目中的狀態欄位。

  2. 重新排列編輯表單中的資料卡片,以建立要新增儲存圖示的空間。

將非輸入和動態傳回值新增至您的表單

到目前為止,我們一直使用編輯表單來簡化資料存取,方法是提供可讓表單中所有資料卡片都能使用的通用資料來源和項目屬性。 如果您使用編輯表單來存取非輸入的值,請務必依照下面所示,同時設定您的資料來源與項目屬性:(在組織與專案部分換成您的值。)

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

當您傳遞 text 屬性 "WorkItemType" (例如,"Feature") 時,它可讓您從項目 (例如功能和工作項目) 中切換。 因為這些項目的欄位集彼此不同,所以來自此調用的傳回類型是動態的。

您可以使用通用方法文字 (ThisItem.Value.'System.Id') 存取特定值。 或者,也可以使用文字 (ThisItem.fields.System_Id),透過比較常見的動態回覆來存取它們。 通常不會記載這些動態值名稱。 若要尋找這些欄位 (包括非標準欄位) 的正確名稱,請打開顯示器工具,並檢查 GetWorkItemDetails 調用的資料回覆。 如需進一步指引,請參考下圖。

如果您不是使用編輯表單,而是使用容器,則可以使用如下所示的公式來擷取這些值,這樣會從自訂團隊欄位中擷取資訊。

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

參考工作項目標題的文字輸入控制項。

更新 Azure DevOps 中的值

若要更新 Azure Dev ops 中的值,請使用按鈕 OnSelect 中的 UpdateWorkItem。

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

公式會新增範例文字,但是您也可以使用 PowerFx 運算式。

請確定公式使用小寫的 非自訂或內建欄位名稱。 例如,當參考「描述」欄位時,請使用 description: "This is a new description" 而不是 Description:"This is a new description"。 不正確的大小寫可能會導致錯誤「400 需要參數,要求的作業缺少:‘UpdateWorkItem’」。 如果是自訂 / 動態值,您可以使用顯示欄位的一般大小寫。 例如,自訂欄位的欄位名稱只是顯示名稱 '自訂欄位 1'。 這個傳回值的命名規範只限 Azure DevOps 使用,且可能與其他服務不同。

後續步驟

播放應用程式。 從查詢清單中選擇一個查詢。 然後,選擇要更新其標題或描述的工作項目。 進行變更,然後選取 [儲存] 按鈕。 變更會儲存至 Azure DevOps 工作項目。 切換至其他查詢,然後切換回來以查看應用程式中顯示的變更。

同樣地,您也可進一步自訂應用程式,或在表單上建立具有其他資料卡片的應用程式。 您也可以使用 [顯示表單] 而不是 [編輯表單],以只顯示不同資料卡片中的資料。 使用顯示表單時,請確定您使用 文字標籤l控制項來顯示文字。 當使用 RTF 或 HTML 格式 (例如 Azure DevOps 中的描述欄位) 時,請使用 HTML 文字 控制項。 如需自訂應用程式的詳細資訊,請參閱控制項資源庫表單卡片

請參閱

在 Power Apps 中使用動態結構描述資料來源 (實驗性)

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。