SetProperty() 未按预期更新对象。
我初始化了一个对象HasAtLeast1AttachmentsWith = {"CapitalCall":"False"}
。
然后我使用下面的表达式创建一个撰写动作
if(condition,setProperty(variables('HasAtLeast1AttachmentsWith'),'CapitalCall','True'),0)
我运行了一个测试,其中 if 条件返回 true,并且 compose 输出正确显示{"CapitalCall":"True"}
。但是,HasAtLeast1AttachmentsWith
仍然显示为{"CapitalCall":"False"}
/ 未被 更新setProperty
。有人知道这是为什么吗?我需要 compose 操作在条件成立时更新对象。
在我的用例中,我将根据不同的逻辑表达式对对象进行多次更新。能否使用表达式在单个组合操作中处理所有这些操作?
setProperty()
setProperty()
不会直接更新变量,而是在执行完变量后返回其值。您需要使用一种模式,在该模式中使用一个
Compose
来执行setProperty()
表达式,然后使用一个操作将该组合的结果传递回您的变量中Set Variable
。初始化对象
这将创建一个具有单个属性的基本对象,名为
Property1
组合设置属性
这是您运行
setProperty()
表达式的地方,这是我在该步骤中所拥有的......设置测试对象
这是使用上一步的输出
Set Variable
设置变量的操作。Test Object
这是最终结果...
底线是,您不能在 PowerAutomate 表达式框架中进行自我引用,因此您
Compose
在中间使用,以及为什么您不能使用它Set Variable
来执行撰写步骤所做的事情,它们必须分开。setProperty 仅返回修改了特定键值对的 JSON 副本。要实际修改变量,您需要执行 set 操作并将其设置为所需的 JSON 输出(例如,可以是 compose 输出)。