通过 Power Automate 使用 V1 项目计划 API
适用于:基于资源/非库存场景的 Project Operations,精简部署 - 估价开票交易
本文描述了一个示例流,展示了如何使用 Microsoft Power Automate 创建完整的项目计划、如何创建操作集以及如何更新实体。 示例演示了如何创建项目、项目团队成员、操作集、项目任务和资源分配。。 本文还解释了如何更新实体和运行操作集。
本文中的示例使用 PssCreateV1 API。 有关使用 PssCreateV2 API 的示例,请参阅通过 Power Automate 使用 V2 项目计划 API。
以下是本文的示例流中记录的步骤的完整列表:
- 创建 Power Apps 触发器
- 创建项目
- 为团队成员初始化变量
- 创建通用团队成员
- 创建操作集
- 为项目桶 ID 初始化变量
- 创建项目桶
- 为任务数初始化变量
- 为项目任务 ID 初始化变量
- 执行,直至
- 设置项目任务
- 创建项目任务
- 创建资源分配
- 减少变量
- 重命名项目任务
- 运行操作集
假设
本文假设您具备 Dataverse 平台、云端流和项目计划 API 的基本知识。 有关详细信息,请参阅本文后面的参考一节。
创建流
选择环境
您可以在您的环境中创建 Power Automate 流。
- 转到 https://flow.microsoft.com,使用您的管理员凭据登录。
- 在右上角,选择环境。
- 在列表中,选择安装了 Dynamics 365 Project Operations 的环境。
创建解决方案
请按照以下步骤创建解决方案识别流。 通过创建解决方案识别流,您可以更轻松地导出流以供以后使用。
- 在导航窗格上,选择解决方案。
- 在解决方案页上,选择新建解决方案。
- 在新建解决方案对话框中,设置所需字段,然后选择创建。
步骤 1:创建 Power Apps 触发器
- 在解决方案页面上,选择您创建的解决方案,然后选择新建。
- 在左侧窗格中,选择云端流>自动化>云端流>即时。
- 在流名称字段中,输入计划 API 演示流。
- 在选择如何触发此流列表中,选择 Power Apps。 创建 Power Apps 触发器时,逻辑由您(作者)决定。 在本文的示例中,将输入参数留空以进行测试。
- 选择创建。
步骤 2:创建项目
执行以下步骤创建一个示例项目。
在您创建的流中,选择新建步骤。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在新步骤中,选择省略号 (…),然后选择重命名。
重命名步骤创建项目。
在操作名称字段中,选择 msdyn_CreateProjectV1。
在 msdyn_subject 字段下,选择添加动态内容。
在表达式选项卡的函数字段中,输入 concat('Project name - ',utcNow())。
选择确定。
步骤 3:为团队成员初始化变量
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤初始化团队成员。
- 在名称字段中,输入 TeamMemberAction。
- 在类型字段中,选择字符串。
- 在值字段中,输入 msdyn_CreateTeamMemberV1。
步骤 4:创建一般团队成员
在流中,选择新建步骤。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在新步骤中,选择省略号 (…),然后选择重命名。
重命名步骤创建团队成员。
对于操作名称字段,在动态内容对话框中选择 TeamMemberAction。
在操作参数字段中,输入以下参数信息。
{ "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:创建操作集
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤创建操作集。
- 在操作名称字段中,选择 msdyn_CreateOperationSetV1 Dataverse 自定义操作。
- 在说明字段中,输入 ScheduleAPIDemoOperationSet。
- 在项目字段中,从动态内容对话框选择 msdyn_CreateProjectV1Response ProjectId。
步骤 6:为项目桶 ID 初始化变量
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤初始化项目桶 ID。
- 在名称字段中,输入项目桶 id。
- 在类型字段中,选择字符串。
- 在值字段中,输入 @{guid()}。
步骤 7:创建项目桶
在流中,选择添加操作。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在步骤中,选择省略号 (…),然后选择重命名。
重命名步骤创建桶。
-
- 在操作名称字段中,选择 msdyn_PssCreateV1。
在实体字段中,输入以下参数信息。
{ "@@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)"。
对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId。
步骤 8:为任务数初始化变量
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤初始化任务数。
- 在名称字段中,输入任务数。
- 在类型字段中,选择整数。
- 在值字段中,输入 5。
步骤 9:为项目任务 ID 初始化变量
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入初始化变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤 Init ProjectTaskID。
- 在名称字段中,输入 msdyn_projecttaskid。
- 在类型字段中,选择字符串。
- 对于值字段,在表达式生成器中输入 guid()。
步骤 10:执行,直至
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入执行,直至。 然后在操作选项卡上,在结果列表中选择操作。
- 将条件语句中的第一个值设置为动态内容对话框中的 number of tasks 变量。
- 将条件设置为 less than equal to。
- 将条件语句中的第二个值设置为 0。
步骤 11:设置项目任务
- 在流中,选择添加操作。
- 在选择操作对话框的搜索字段中,输入设置变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在新步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤设置项目任务。
- 在名称字段中,选择 msdyn_projecttaskid。
- 对于值字段,在表达式生成器中输入 guid()。
步骤 12:创建项目任务
按照以下步骤创建一个项目任务,该任务具有属于当前项目和您创建的项目桶的唯一 ID。
在流中,选择新建步骤。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在步骤中,选择省略号 (…),然后选择重命名。
重命名步骤创建项目任务。
在操作名称字段中,选择 msdyn_PssCreateV1。
在实体字段中,输入以下参数信息。
{ "@@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"。
对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId。
步骤 13:创建资源分配
在流中,选择添加操作。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在步骤中,选择省略号 (…),然后选择重命名。
重命名步骤创建分配。
在操作名称字段中,选择 msdyn_PssCreateV1。
在实体字段中,输入以下参数信息。
{ "@@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']})" }
对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId。
步骤 14:减少变量
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入减少变量。 然后在操作选项卡上,在结果列表中选择操作。
- 在名称字段中,选择任务数。
- 在值字段中,输入 1。
步骤 15:重命名项目任务
在流中,选择新建步骤。
在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
在步骤中,选择省略号 (…),然后选择重命名。
重命名步骤重命名项目任务。
在操作名称字段中,选择 msdyn_PssUpdateV1。
在实体字段中,输入以下参数信息。
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask", "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}", "msdyn_subject": "ScheduleDemoTask1-UpdatedName" }
对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId。
步骤 16:运行操作集
- 在流中,选择新建步骤。
- 在选择操作对话框的搜索字段中,输入执行解除绑定操作。 然后在操作选项卡上,在结果列表中选择操作。
- 在步骤中,选择省略号 (…),然后选择重命名。
- 重命名步骤执行操作集。
- 在操作名称字段中,选择 msdyn_ExecuteOperationSetV1。
- 对于 OperationSetId 字段,在动态内容对话框中选择 msdyn_CreateOperationSetV1Response OperationSetId。