如何在Power Apps中为D365的Projects应用创建关联客户的自定义流程
为项目关联的Accounts/Contacts创建关联的快速营销活动
核心思路
要实现将项目关联的客户(Accounts)和联系人(Contacts)绑定到新创建的快速营销活动(Quick Campaign),关键是先收集这些关联记录,通过**营销列表(Marketing List)**作为中间载体,再将列表绑定到Quick Campaign。以下是具体实现步骤:
步骤1:Power Automate流程配置
触发方式
选择「Power Apps」作为触发器,接收Power Apps按钮传入的当前Project记录ID(作为流程输入参数)。
获取项目关联的Accounts和Contacts
针对多对多关系,通过Dataverse的List rows操作提取关联记录:
- 获取关联Accounts:
- 选择Projects与Accounts多对多关系对应的关联实体(比如
new_projects_accounts,需替换为你实际的关系架构名称) - 筛选条件:
new_projectid eq @triggerBody()['ProjectId'] - 从返回结果中提取所有
new_accountid字段值,存入数组变量varAccountIds
- 选择Projects与Accounts多对多关系对应的关联实体(比如
- 获取关联Contacts:
- 同理选择Projects与Contacts的多对多关联实体
- 筛选条件:
new_projectid eq @triggerBody()['ProjectId'] - 提取所有
new_contactid字段值,存入数组变量varContactIds
创建临时营销列表
使用Create new row操作,实体选择「Marketing List」:
- 设置必填字段:
List Name:可设为"项目营销列表 - @{triggerBody()['ProjectName']}"List Type:选择「Static」(静态列表适合一次性添加指定成员)Targeted Record Type:勾选「Account」和「Contact」(确保列表支持多类型成员)
批量添加成员到营销列表
使用Add list members操作:
- 选择刚创建的营销列表ID
- 在「Members」参数中,传入
varAccountIds和varContactIds合并后的数组(格式需符合Dataverse要求的实体ID数组)
创建并关联Quick Campaign
- 创建Quick Campaign:
Create new row操作,实体选择「Quick Campaign」- 设置字段:
Name:"项目快速营销活动 - @{triggerBody()['ProjectName']}"Regarding:关联传入的Project记录IDMarketing List:选择刚创建的临时营销列表ID
- 启动Quick Campaign:
- 使用
Execute action操作,选择Dataverse的QuickCampaign.Activate动作 - 传入Quick Campaign的ID,完成活动激活
- 使用
Power Apps按钮关联配置
在Power Apps的自定义按钮OnSelect属性中,添加以下代码(替换流程名称和参数):
PowerAutomate.Run("你的流程名称", ThisItem.ProjectId, ThisItem.ProjectName)
关键注意事项
- 多对多关系的关联实体名称需在Dataverse中确认:进入Dataverse > 表 > Projects > 关系,查看对应多对多关系的「关联实体」名称
- 营销列表需设置为支持多类型成员,否则无法同时添加Account和Contact
- 若需自动清理临时营销列表,可在流程末尾添加
Delete row操作,删除刚创建的列表
内容的提问来源于stack exchange,提问作者BadStudent
相关产品推荐
相关产品推荐

