首页 > 解决方案 > Power Automate:按 GUID 运行子流

问题描述

我试图通过它的 guid(通过使用子流下拉列表中的表达式)从 Power Automate 流中调用子流,而不是对子流选择进行硬编码。

但是,每当我尝试保存父流时,都会收到以下错误:

对 XRM API 的请求失败并出现错误:'消息:流客户端错误返回状态代码“BadRequest”和详细信息“{“error”:{“code”:“ChildFlowIdNotValid”,“message”:“工作流 id '[[表达式]]' 不是有效的子流 ID。id 必须是有效的 GUID。"}}"。代码:0x80060467

我尝试了各种表达方式,甚至是简单的东西@guid()(绝对是有效的 guid),但无济于事。

平台似乎对值执行“编译时”检查,这使得使用任何动态值成为不可能。

有任何想法吗?

标签: power-automate

解决方案


不幸的是,我认为 Run Child 流动作被设计为比可编程更具交互性。与 Run Child Flow 操作交互调用 API,响应用于修改操作定义。无论“自定义值”表达式是什么 - 它都不会被评估,而是作为字符串读取,并在调用中用于检索示例标头。然后使用该示例重新格式化 Run Child Flow 操作以显示适当的标题。有一个未确定的目标意味着调用主体没有定义,这可能是一个问题。有趣的是,当最初试图寻找硬编码的 GUID 时,它确实会弹出一个实体点。

您可以在保存/重新打开后如何将硬编码的 GUID 替换为流名称中看到此行为的后果。

作为一种解决方法,我在一个检查表达式结果的 Switch 操作中堆叠运行子流。IE:

切换解决方法

旁注 - Azure 逻辑应用(和 powerautomate)中的 GUID() 不会将任意字符串格式化为 GUID。


推荐阅读