You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Cloud Flow/Power Automate为Power Apps自定义表EmpCity添加Choice选项

用Power Automate批量添加Choice选项到Power Apps自定义表

步骤1:触发Flow并拉取API数据

  • 选择合适触发器(比如手动触发,或定时触发用于定期同步)
  • 添加「HTTP」动作,请求方法设为GET,填入目标API地址,获取返回的城市JSON数据。

步骤2:解析JSON数据

  • 添加「Parse JSON」动作,将HTTP动作的输出作为输入,点击「生成示例有效负载」,粘贴API返回的JSON示例自动生成Schema,确保能正确解析出每个城市的名称(及唯一标识如城市编码)。

步骤3:通过Dataverse操作批量添加选项

Choice字段的选项存储在Dataverse的Choices(逻辑名称choices)和Choice Options(逻辑名称choiceoptions)表,需通过Dataverse动作完成操作:

  • 获取目标EmpCity字段对应的Choice集ID:
    添加「Dataverse - 列出行」动作,表选择「Choices」,筛选条件设为DisplayName eq 'EmpCity',提取返回结果中的choiceid。
  • 遍历城市数据添加选项:
    添加「Apply to each」循环,选择解析后的城市数组作为循环对象。
    循环内添加「Dataverse - 添加行」动作,表选择「Choice Options」,填写必填字段:
    • Choice:选择上一步获取的choiceid
    • Label:当前循环的城市名称
    • Value:设置唯一数值(如城市编码,或用循环索引+1保证唯一)
    • Is Active:设为Yes

关键注意事项

  • 确保Flow使用的账号拥有Dataverse系统管理员或自定义实体编辑器权限,具备修改Choice选项的权限。
  • 若API返回重复城市,建议在循环前添加去重逻辑,避免重复选项。
  • 如需覆盖原有选项,可先添加「Dataverse - 删除行」动作,清除该Choice集下的所有旧选项后再批量添加新数据。

替代方案(Power Automate受限时)

方案1:PowerShell脚本调用Dataverse Web API

编写脚本批量创建选项,示例如下:

# 配置参数
$tenantId = "你的租户ID"
$clientId = "你的应用注册ID"
$clientSecret = "你的应用密钥"
$dataverseUrl = "你的Dataverse环境URL"
$choiceName = "EmpCity"
$apiUrl = "https://myclient.com/b2bapi/options/city"

# 获取城市数据
$cities = Invoke-RestMethod -Uri $apiUrl -Method Get

# 获取访问令牌及Choice集ID
$token = (Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method Post -Body @{
    client_id = $clientId
    client_secret = $clientSecret
    grant_type = "client_credentials"
    scope = "$dataverseUrl/.default"
}).access_token

$choiceId = (Invoke-RestMethod -Uri "$dataverseUrl/api/data/v9.2/choices?`$filter=DisplayName eq '$choiceName'" -Method Get -Headers @{Authorization = "Bearer $token"}).value[0].choiceid

# 批量添加选项
foreach ($city in $cities) {
    $body = @{
        choiceid = $choiceId
        label = $city.name
        value = $city.code # 或自定义唯一数值
        isactive = $true
    } | ConvertTo-Json
    Invoke-RestMethod -Uri "$dataverseUrl/api/data/v9.2/choiceoptions" -Method Post -Headers @{Authorization = "Bearer $token"; "Content-Type" = "application/json"} -Body $body
}

方案2:Dataverse插件

编写C#插件,在插件逻辑中调用外部API获取城市数据,通过Dataverse服务上下文批量创建Choice选项,将插件注册为定时执行的步骤,实现自动同步。

内容的提问来源于stack exchange,提问作者Aiden Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 20:02:40