moqui 中的 <transition> 标签问题

Issue with <transition> tag in moqui

<transition name="abc">
<actions>
<if condition="update != null">
<service-call name="update#someEntity"/>
</if>
</actions>
<default-response url="."/>
</transition>

以上代码无效。即,如果我放置日志语句,它会进入 if 块但更新不会在 DB 实体中发生。还验证了所有 params/values/p.keys 等都使用来自 FORM 的正确值正确传递,FORM 在提交时调用此转换。

另一件值得注意的事情是,当如下更改时,它可以完美运行(即转换内只有一个服务调用元素,screen/other 处的任何其他代码都没有任何更改) :

<transition name="abc">
<service-call name="update#someEntity"/>
<default-response url="."/>
</transition>

有什么指导吗?

Making Apps with Moqui 解释了直接在过渡元素下使用服务调用与在内部操作相反时的区别。

如果服务调用直接位于过渡元素下,它假定您希望使用 "context" 作为内映射和外映射,除非您指定不同的内容。

通常(即在操作中)服务调用元素不假设这一点,不指定要传递给服务(在地图中)的操作是没有意义的,这会非常混乱默认情况下将服务输出添加到上下文中。

要修复您的第一个代码示例,您需要添加地图内属性,如果需要,还需要添加地图外属性,即:

<service-call name="update#someEntity" in-map="context" out-map="context"/>

应该可以解决问题。