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

Dynamics365中部分Power Automate流缺失且无WorkflowID问题咨询

问题背景

编写PowerShell脚本采集Power Automate流信息时,发现部分流无workflowentityid(即WorkflowID),这类流无统一分布特征:跨多个环境存在,同时覆盖启用、禁用状态,创建者、所有者无共性。访问对应环境Dataverse的workflows表接口https://<环境域名>.crm.dynamics.com/api/data/v9.1/workflows排查时,上述缺失ID的流均未出现在返回结果中,需排查根因。

原排查脚本
$Flowids = $null
$NOids=$null
$NOids=@()
$flowids = @()
$flowarray = $null
$flowarray = @()
$environment = Get-FlowEnvironment -EnvironmentName Default-d67fa8sd7f-e8f76ds7sa-98ds7f-98af7

$flows = get-adminflow -EnvironmentName $environment.environmentname 
Foreach($flow in $flows)
{
    Get-AdminFlow -EnvironmentName $environment.environmentname -FlowName $flow.flowname
    $Result = New-object PSOBJECT
    $result | Add-Member -MemberType NoteProperty -name "Name" -value $flow.DisplayName
    $result | Add-Member -MemberType NoteProperty -name "workflowid" -value $flow.internal.properties.workflowentityid
    $flowarray += $result
    if($flow.internal.properties.workflowentityid -ne $null)
    {
        $Flowids += $flow.internal.properties.workflowentityid
    }
    if($flow.internal.properties.workflowentityid -eq $null)
    {
        $NOids += $flow.displayname
    }
}
排查方案
  • 先筛除正常无WorkflowID的流:Get-AdminFlow返回的流集合并非全部与Dataverse workflows表绑定。Teams个人上下文流、内置SaaS模板流、软删除后留存的流残迹、非解决方案感知的测试流,都不会在Dataverse侧生成对应workflow实体,自然不存在workflowentityid。给脚本新增flowType字段输出,对缺失ID的流按类型归类,即可先排除这部分正常场景。
  • 修复脚本逻辑消除接口字段裁剪误判:当前脚本存在逻辑问题,循环内调用单流详情接口Get-AdminFlow后未将结果赋值给变量,后续属性判断全部基于列表接口返回的$flow对象。Power Platform管理接口的列表响应默认会裁剪非必填字段,部分流的workflowentityid不会在列表结果中透出,并非真的缺失。将单流查询结果赋值后再读取属性即可修正这类误判,核心修正代码如下:
    Foreach($flow in $flows)
    {
        # 将单流查询结果赋值给变量,使用该变量读取全量属性
        $flowDetail = Get-AdminFlow -EnvironmentName $environment.environmentname -FlowName $flow.flowname
        $Result = New-object PSOBJECT
        $result | Add-Member -MemberType NoteProperty -name "Name" -value $flowDetail.DisplayName
        $result | Add-Member -MemberType NoteProperty -name "workflowid" -value $flowDetail.internal.properties.workflowentityid
        # 后续判断逻辑统一使用$flowDetail变量
        $flowarray += $result
        if($flowDetail.internal.properties.workflowentityid -ne $null)
        {
            $Flowids += $flowDetail.internal.properties.workflowentityid
        }
        else
        {
            $NOids += $flowDetail.displayname
        }
    }
    
  • 排查Dataverse同步异常:通过旧版API、批量脚本、第三方工具创建的流,偶发会出现管理侧可见但Dataverse实体同步失败的问题,这类流不会生成workflowentityid,也不会出现在workflows表中,手动进入流编辑页点击一次保存触发同步,即可正常生成对应记录和ID。
  • 校验Dataverse接口查询权限:调用workflows表接口时,如果当前身份没有对应流的行级读取权限,接口会自动过滤无权限记录,造成“流不在表中”的假象,换用环境系统管理员或全局管理员身份重新查询即可排除权限影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:01:18