我正在尝试通过其 guid(通过使用子流下拉列表中的表达式)从 Power Automate 流中调用子流,而不是对子流选择进行硬编码。
但是,每当我尝试保存父流时,都会出现以下错误:
<块引用>对 XRM API 的请求失败,错误为:'消息:流客户端错误返回,状态代码为“BadRequest”和详细信息“{”error”:{“code”:“ChildFlowIdNotValid”,“message”:“工作流 ID” [[表达式]]' 不是有效的子流 ID。 ID 必须是有效的 GUID。"}}"。代码:0x80060467
我尝试了各种表达方式,甚至是像 @guid()
这样简单的东西(这绝对是一个有效的 guid),但都无济于事。
似乎平台对该值执行了“编译时”检查,这使得无法使用任何动态值。
有什么想法吗?
答案 0 :(得分:1)
不幸的是,我认为 Run Child 流程操作旨在比可编程更具交互性。 与 Run Child Flow 操作交互调用 API,响应用于修改操作定义。 无论“自定义值”表达式是什么 - 它都不会被评估,而是作为字符串读取,并且在调用中用于检索示例标头。然后使用该示例重新格式化 Run Child Flow 操作以显示适当的标题。 具有未确定的目标意味着未定义调用主体,这可能是一个问题。有趣的是,当最初尝试寻找硬编码的 GUID 时,它确实为身体弹出了一个位置。
您可以看到这种行为的后果,即在保存/重新打开后,即使是硬编码的 GUID 也会被流名称替换。
作为一种解决方法,我在检查表达式结果的 Switch 操作中堆叠 Run Child 流。即:
旁注 - GUID() in Azure Logic Apps(和 powerautomate)不会将任意字符串格式化为 GUID。