通过 Power Automate 使用 V2 项目计划 API

适用于:基于资源/非库存场景的 Project Operations,精简部署 - 估价开票交易

本文描述了一个示例流,展示了如何使用 Microsoft Power Automate 创建完整的项目计划、如何创建操作集以及如何更新实体。 示例演示了如何创建项目、项目团队成员、操作集、项目任务和资源分配。 本文还解释了如何更新实体和运行操作集。

本文中的示例使用 PssCreateV2 API。 有关使用 PssCreateV1 API 的示例,请参阅通过 Power Automate 使用 V1 项目计划 API

以下是本文的示例流中记录的步骤的完整列表:

  1. 创建 PowerApps 触发器
  2. 创建项目
  3. 为团队成员初始化变量
  4. 创建通用团队成员
  5. 创建操作集
  6. 创建项目桶
  7. 为任务数初始化变量
  8. 为项目任务 ID 初始化变量
  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:创建 PowerApps 触发器

  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 – 项目团队 ID 的主键。 此值是一个全局唯一标识符 (GUID) 表达式。 ID 从表达式选项卡生成。
    • msdyn_project@odata.bind – 所负责项目的项目 ID。 此值将是来自“创建项目”步骤响应的动态内容。 请确保输入完整路径并在括号之间添加动态内容。 需要使用引号。 例如,输入 "/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. 名称字段中,输入 ScheduleAPIDemoBucket1
  7. 项目字段中,输入 /msdyn_projects(
  8. 动态内容对话框中,选择 msdyn_CreateProjectV1Response ProjectId
  9. 项目字段中,输入 )

步骤 7:为任务数初始化变量

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在新步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤初始化任务数
  5. 名称字段中,输入任务数
  6. 类型字段中,选择整数
  7. 字段中,输入 5

步骤 8:为项目任务 ID 初始化变量

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在新步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤 Init ProjectTaskID
  5. 名称字段中,输入 msdyn_projecttaskid
  6. 类型字段中,选择字符串
  7. 对于字段,在表达式生成器中输入 guid()

步骤 9:初始化数组

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在新步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤初始化数组
  5. 名称字段中,输入任务和分配
  6. 类型字段中,选择数组

步骤 10:执行,直至

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入执行,直至。 然后在操作选项卡上,在结果列表中选择操作。
  3. 将条件语句中的第一个值设置为动态内容对话框中的 number of tasks 变量。
  4. 将条件设置为 less than equal to
  5. 将条件语句中的第二个值设置为 0

步骤 11:设置项目任务

  1. 在流中,选择添加操作
  2. 选择操作对话框的搜索字段中,输入设置变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在新步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤设置项目任务
  5. 名称字段中,选择 msdyn_projecttaskid
  6. 对于字段,在表达式生成器中输入 guid()

步骤 12:将任务添加到数组

  1. 在流中,选择添加操作

  2. 选择操作对话框的搜索字段中,输入追加到数组

  3. 在步骤中,选择省略号 (),然后选择重命名

  4. 重命名步骤将任务添加到数组

  5. 名称字段中,选择任务和分配

  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(@{outputs('Create_Bucket')?['body/msdyn_projectbucketid']})",
        "msdyn_start": "@{addDays(utcNow(), 1)}",
        "msdyn_scheduledstart": "@{utcNow()}",
        "msdyn_scheduledend": "@{addDays(utcNow(), 5)}",
        "msdyn_LinkStatus": "192350000"
    }
    

    以下是对参数的说明:

    • @@odata.type – 实体名称。 例如,输入 "Microsoft.Dynamics.CRM.msdyn_projecttask"
    • msdyn_projecttaskid – 任务的唯一 ID。 此值应设置为 msdyn_projecttaskid 中的动态变量。
    • msdyn_project@odata.bind – 所负责项目的项目 ID。 此值将是来自“创建项目”步骤响应的动态内容。 请确保输入完整路径并在括号之间添加动态内容。 需要使用引号。 例如,输入 "/msdyn_projects(ADD DYNAMIC CONTENT)"
    • msdyn_subject – 任意任务名称。
    • msdyn_projectbucket@odata.bind – 包含任务的项目桶。 此值将是来自“创建桶”步骤响应的动态内容。 请确保输入完整路径并在括号之间添加动态内容。 需要使用引号。 例如,输入 "/msdyn_projectbuckets(ADD DYNAMIC CONTENT)"
    • msdyn_start – 开始日期的动态内容。 例如,明天将表示为 "addDays(utcNow(), 1)"
    • msdyn_scheduledstart – 计划开始日期。 例如,明天将表示为 "addDays(utcNow(), 1)"
    • msdyn_scheduleend – 计划结束日期。 选择一个未来的日期。 例如,指定 "addDays(utcNow(), 5)"
    • msdyn_LinkStatus – 计费设置的链接。 例如,如果计费设置的链接,输入“192350000”;如果已链接计费设置,输入“192350001”

步骤 13:创建资源分配

  1. 在流中,选择添加操作

  2. 选择操作对话框的搜索字段中,输入追加到数组

  3. 在步骤中,选择省略号 (),然后选择重命名

  4. 重命名步骤将分配添加到数组

  5. 名称字段中,选择任务和分配

  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']})"
    }
    

步骤 14:减少变量

  1. 在流中,选择添加操作
  2. 选择操作对话框的搜索字段中,输入减少变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 名称字段中,选择任务数
  4. 字段中,输入 1

步骤 15:将任务和分配添加到操作集

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤将任务和分配添加到操作集
  5. 操作名称字段中,选择 msdyn_PssCreateV2
  6. 对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId
  7. EntityCollection 字段中,选择将输入切换为整个数组
  8. 对于 EntityCollection 字段,在动态内容对话框中选择任务和分配

步骤 16:运行操作集

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤执行操作集
  5. 操作名称字段中,选择 msdyn_ExecuteOperationSetV1
  6. 对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId

引用