2015-06-11 37 views
0
<transition name="abc"> 
<actions> 
<if condition="update != null"> 
<service-call name="update#someEntity"/> 
</if> 
</actions> 
<default-response url="."/> 
</transition> 

上面的代码不起作用。即如果我把日志语句,它会进入如果块内部,但更新不会发生在数据库实体。它也验证了所有的params/values/p.keys等都正确地传递了正确的FORM值,从而在提交时调用这个转换。<transition>问题moqui中的标记

这是注意到的另一件事是,它完美的作品时,如下改变(即只有转变内部服务呼叫元素,没有在屏幕上任何地方的任何其他代码所做的任何更改/其他地方):

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

对此有任何指导吗?

回答

1

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

直接在转换元素下面进行服务调用时,假定您要使用“上下文”作为地图内和地图外,除非您指定了不同的内容。

通常情况下(即在动作中)服务调用元素不会假设这一点,没有指定你想要传递给服务的内容(地图中)是没有意义的,它会非常容易混淆缺省情况下会将服务输出添加到上下文中。

要解决,你需要在地图中添加您的第一个代码示例,如果需要,出的地图属性,即:

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

这应该修复它。

+0

谢谢。真棒!。 – Nitin