將 V1 專案排程 API 與 Power Automate 搭配使用

適用於:資源/非庫存型案例適用的 Project Operations、精簡部署 - 交易至開立預估發票

本文說明的範例流程示範使用 Microsoft Power Automate 建立完整專案計劃、建立作業集和更新實體的方法。 此範例示範如何建立專案、專案團隊成員、作業集、專案工作和資源指派。 本文還說明如何更新實體以及執行作業集。

本文中的範例使用 PssCreateV1 API。 如需使用 PssCreateV2 API 的範例,請參閱 V2 專案排程 API 與 Power Automate

以下是本文範例流程中所記載步驟的完整清單:

  1. 建立 Power Apps 觸發程式
  2. 建立專案
  3. 初始化團隊成員的變數
  4. 建立一般團隊成員
  5. 建立作業集
  6. 初始化專案貯體識別碼的變數
  7. 建立專案貯體
  8. 初始化工作數目的變數
  9. 初始化專案工作識別碼的變數
  10. 執行直到
  11. 設定專案工作
  12. 建立專案工作
  13. 建立資源指派
  14. 遞減變數
  15. 重新命名專案工作
  16. 執行作業集

假設

本文假設您具備 Dataverse 平台、雲端流程及專案排程 API 的基本知識。 如需詳細資訊,請參閱本文稍後的參考資料

建立流程

選取環境

您可以在環境中建立 Power Automate 流程。

  1. 前往 https://flow.microsoft.com,並使用系統管理員認證登入。
  2. 在右上角選取環境
  3. 在清單中,選取已安裝 Dynamics 365 Project Operations 的環境 。

建立解決方案

依照這些步驟建立解決方案感知流程。 您可以建立有解決方案感知流程,更輕鬆地匯出流程以供日後使用。

  1. 在瀏覽窗格中,選取解決方案
  2. 解決方案頁面上,選取新增解決方案
  3. 新增解決方案對話方塊中,設定必要的欄位,然後選取建立

步驟 1:建立 Power Apps 觸發程序

  1. 解決方案頁面上,選取您所建立的解決方案,然後選取新增
  2. 在左窗格中,選取雲端流程>自動化>雲端流程>即時
  3. 流程名稱欄位中,輸入排程 API 示範流程
  4. 選擇觸發此流程的方式清單中,選取 Power Apps。 建立 Power Apps 觸發程序時,邏輯取決於身為作者的您。 對於本文中的範例,讓輸入參數保持空白以進行測試。
  5. 選取 建立

步驟 2:建立專案

依照下列步驟建立建立範例專案。

  1. 在您建立的流程中,選取新增步驟

    新增新步驟

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

    選取作業。

  3. 在新的步驟中,選取省略符號 (),然後選取重新命名

    重新命名步驟。

  4. 將步驟重新命名為建立專案

  5. 動作名稱欄位中,選取 msdyn_CreateProjectV1

  6. msdyn_subject 欄位底下,選取新增動態內容

  7. 運算式索引標籤的函數欄位中,輸入 concat('Project name - ',utcNow())

  8. 選取確定

步驟 3:初始化團隊成員的變數

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入初始化變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為初始化團隊成員
  5. 名稱欄位中,輸入 TeamMemberAction
  6. 類型欄位中,選取字串
  7. 欄位中,輸入 msdyn_CreateTeamMemberV1

步驟 4:建立一般團隊成員

  1. 在流程中,選取新增步驟

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

  3. 在新的步驟中,選取省略符號 (),然後選取重新命名

  4. 將步驟重新命名為建立團隊成員

  5. 動作名稱欄位的動態內容 對話方塊中,選取 TeamMemberAction

  6. 動作參數欄位中,輸入下列參數資訊。

    {
        "TeamMember": {
            "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectteam",
            "msdyn_projectteamid": "@{guid()}",
            "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})",
            "msdyn_name": "ScheduleAPIDemoTM1"
        }
    } 
    

    以下是參數的說明:

    • @@odata.type – 實體名稱。 例如,輸入 "Microsoft.Dynamics.CRM.msdyn_projectteam"
    • msdyn_projectteamid – 專案團隊識別碼的主索引鍵。 此值是全域唯一識別碼 (GUID) 運算式。 此識別碼是從運算式索引標籤中產生。
    • msdyn_project@odata.bind – 所屬專案的專案識別碼。 此值是來自「建立專案」步驟回應中的動態內容。 確定您已輸入完整路徑,並在括弧之間加入動態內容。 需要引號。 例如,輸入 "/msdyn_projects(ADD DYNAMIC CONTENT)"
    • msdyn_name – 團隊成員的名稱。 例如,輸入 "ScheduleAPIDemoTM1"

步驟 5:建立作業集

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為建立作業集
  5. 動作名稱欄位中,選取 msdyn_CreateOperationSetV1 Dataverse 自訂動作。
  6. 描述欄位中,輸入 ScheduleAPIDemoOperationSet
  7. 專案欄位中,從動態內容對話方塊選取 msdyn_CreateProjectV1Response ProjectId

步驟 6:初始化專案貯體識別碼的變數

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入初始化變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為初始化專案貯體識別碼
  5. 名稱欄位中,輸入專案貯體識別碼
  6. 類型欄位中,選取字串
  7. 欄位中,輸入 @{guid()}

步驟 7:建立專案貯體

  1. 在流程中,選取新增動作

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

  3. 在步驟中,選取省略符號 (),然後選取重新命名

  4. 將步驟重新命名為建立貯體

    1. 動作名稱欄位中,選取 msdyn_PssCreateV1
  5. 實體欄位中,輸入下列參數資訊。

    {
        "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectbucket",
        "msdyn_projectbucketid": "@{variables('project bucket id')}",
        "msdyn_name": "ScheduleAPIDemoBucket1",
        "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})",
    }
    

    以下是參數的說明:

    • @@odata.type – 實體名稱。 例如,輸入 "Microsoft.Dynamics.CRM.msdyn_projectbucket"
    • msdyn_projectbucketid – 專案貯體的唯一識別碼。 此值應透過 步驟 6 中的動態變數來設定。
    • msdyn_project@odata.bind – 所屬專案的專案識別碼。 此值是來自「建立專案」步驟回應中的動態內容。 確定您已輸入完整路徑,並在括弧之間加入動態內容。 需要引號。 例如,輸入 "/msdyn_projects(ADD DYNAMIC CONTENT)"
    • msdyn_name – 專案貯體名稱。
  6. 對於 OperationSetId 欄位,選取動態內容對話方塊中的 msdyn_CreateOperationSetV1Response OperationSetId

步驟 8:初始化工作數目的變數

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入初始化變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為初始化工作數目
  5. 名稱欄位中,輸入工作數目
  6. 類型欄位中,選取整數
  7. 欄位中,輸入 5

步驟 9:初始化專案工作識別碼的變數

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入初始化變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為Init ProjectTaskID
  5. 名稱欄位中,輸入 msdyn_projecttaskid
  6. 類型欄位中,選取字串
  7. 欄位的運算式產生器中,輸入 guid()

步驟 10:執行直到

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入執行直到。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 將條件陳述式中的第一個值設定為動態內容對話方塊中的工作數目變數。
  4. 將條件設定為小於等於
  5. 將條件陳述式中的第二個值設定為0

步驟 11:設定專案工作

  1. 在流程中,選取新增動作
  2. 選擇作業對話方塊的搜尋欄位中,輸入設定變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在新的步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為設定專案工作
  5. 名稱欄位中,選取 msdyn_projecttaskid
  6. 欄位的運算式產生器中,輸入 guid()

步驟 12:建立專案工作

依照下列步驟,建立具有唯一識別碼且屬於目前專案及您所建立專案貯體的專案工作。

  1. 在流程中,選取新增步驟

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

  3. 在步驟中,選取省略符號 (),然後選取重新命名

  4. 將步驟重新命名為建立專案工作

  5. 動作名稱欄位中,選取 msdyn_PssCreateV1

  6. 實體欄位中,輸入下列參數資訊。

    {
        "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask",
        "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}",
        "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})",
        "msdyn_subject": "ScheduleAPIDemoTask1",
        "msdyn_projectbucket@odata.bind": "/msdyn_projectbuckets(@{variables('project bucket id')})",
        "msdyn_start": "@{addDays(utcNow(), 1)}",
        "msdyn_scheduledstart": "@{utcNow()}",
        "msdyn_scheduledend": "@{addDays(utcNow(), 5)}"
    }
    

    以下是參數的說明:

    • @@odata.type – 實體名稱。 例如,輸入 "Microsoft.Dynamics.CRM.msdyn_projecttask"
    • msdyn_projecttaskid – 工作的唯一識別碼。 此值應設定為 msdyn_projecttaskid 中的動態變數。
    • msdyn_project@odata.bind – 所屬專案的專案識別碼。 此值是來自「建立專案」步驟回應中的動態內容。 確定您已輸入完整路徑,並在括弧之間加入動態內容。 需要引號。 例如,輸入 "/msdyn_projects(ADD DYNAMIC CONTENT)"
    • msdyn_subject – 任何工作名稱。
    • msdyn_projectbucket@odata.bind – 包含工作的專案貯體。 此值應與「建立貯體」步驟中用於設定 msdyn_projectbucketid 的值相同。 確定您已輸入完整路徑,並在括弧之間加入動態內容。 需要引號。 例如,輸入 "/msdyn_projectbuckets(ADD DYNAMIC CONTENT)"
    • msdyn_start – 開始日期的動態內容。 例如,將明天表示為 "addDays(utcNow(), 1)"
    • msdyn_scheduledstart – 排定的開始日期。 例如,將明天表示為 "addDays(utcNow(), 1)"
    • msdyn_scheduleend – 排定的結束日期。 選取未來的日期。 例如,指定 "addDays(utcNow(), 5)"
    • msdyn_LinkStatus – 連結狀態。 例如,輸入 "192350000"
  7. 對於 OperationSetId 欄位,選取動態內容對話方塊中的 msdyn_CreateOperationSetV1Response OperationSetId

步驟 13:建立資源指派

  1. 在流程中,選取新增動作

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

  3. 在步驟中,選取省略符號 (),然後選取重新命名

  4. 將步驟重新命名為建立指派

  5. 動作名稱欄位中,選取 msdyn_PssCreateV1

  6. 實體欄位中,輸入下列參數資訊。

    {
        "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourceassignment",
        "msdyn_resourceassignmentid": "@{guid()}",
        "msdyn_name": "ScheduleAPIDemoAssign1",
        "msdyn_taskid@odata.bind": "/msdyn_projecttasks(@{variables('msdyn_projecttaskid')})",
        "msdyn_projectteamid@odata.bind": "/msdyn_projectteams(@{outputs('Create_Team_Member')?['body/TeamMemberId']})",
        "msdyn_projectid@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})"
    }
    
  7. 對於 OperationSetId 欄位,選取動態內容對話方塊中的 msdyn_CreateOperationSetV1Response OperationSetId

步驟 14:遞減變數

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入遞減變數。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 名稱欄位中,選取工作數目
  4. 欄位中,輸入 1

步驟 15:重新命名專案工作

  1. 在流程中,選取新增步驟

  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。

  3. 在步驟中,選取省略符號 (),然後選取重新命名

  4. 將步驟重新命名為重新命名專案工作

  5. 動作名稱欄位中,選取 msdyn_PssUpdateV1

  6. 實體欄位中,輸入下列參數資訊。

    {
        "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask",
        "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}",
        "msdyn_subject": "ScheduleDemoTask1-UpdatedName"
    }
    
  7. 對於 OperationSetId 欄位,選取動態內容對話方塊中的 msdyn_CreateOperationSetV1Response OperationSetId

步驟 16:執行作業集

  1. 在流程中,選取新增步驟
  2. 選擇作業對話方塊的搜尋欄位中,輸入執行未繫結動作。 然後,在動作索引標籤上,選取結果清單中的作業。
  3. 在步驟中,選取省略符號 (),然後選取重新命名
  4. 將步驟重新命名為執行作業集
  5. 動作名稱欄位中,選取 msdyn_ExecuteOperationSetV1
  6. 對於 OperationSetId 欄位,選取動態內容對話方塊中的 msdyn_CreateOperationSetV1Response OperationSetId

推薦人