<transition> moqui 中的标签问题


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

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

注意到的另一件事是,当更改如下时,它可以完美运行(即过渡中只有一个服务调用元素,并且没有对屏幕/其他地方的任何其他代码进行任何更改):

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

请对此提供任何指导?

使用 Moqui 制作应用程序解释了直接在过渡元素下而不是内部操作下使用服务调用时的差异。

使用直接在转换元素下的服务调用,它假定您希望使用"上下文"作为映射内和映射外,除非您指定了不同的东西。

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

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

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

这应该可以解决它。

最新更新