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

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

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

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

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

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

  1. 在流中,选择新建步骤
  2. 选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
  3. 在新步骤中,选择省略号 (),然后选择重命名
  4. 重命名步骤初始化项目桶 ID
  5. 名称字段中,输入项目桶 id
  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 – 项目桶的唯一 ID。 此值应在步骤 6 从动态变量进行设置。
    • msdyn_name – 项目桶名称。
    • msdyn_project@odata.bind – 所负责项目的项目 ID。 此值将是来自“创建项目”步骤响应的动态内容。 请确保输入完整路径并在括号之间添加动态内容。 需要使用引号。 例如,输入 "/msdyn_projects(ADD DYNAMIC CONTENT)"
  6. 对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId

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

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

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

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

步骤 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:创建项目任务

按照以下步骤创建一个项目任务,该任务具有属于当前项目和您创建的项目桶的唯一 ID。

  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 – 任务的唯一 ID。 此值应设置为 msdyn_projecttaskid 中的动态变量。
    • msdyn_project@odata.bind – 所负责项目的项目 ID。 此值将是来自“创建项目”步骤响应的动态内容。 请确保输入完整路径并在括号之间添加动态内容。 需要使用引号。 例如,输入 "/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

引用