在转换中调用服务的基本过程是什么?

What is the basic procedure to call a service in a transition?

我想知道像

这样直接在转换中调用服务的区别
<transition name="createExample">
    <service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters"
                  web-send-json-response="true"/>
    <default-response type="none"/>
</transition>

并在

等操作标签内调用服务
<transition name="createExample">
    <actions>
        <service-call name="org.moqui.example.ExampleServices.createExample" in-map="ec.web.parameters"
                  web-send-json-response="true"/>
    <actions>
    <default-response type="none"/>
</transition>

两种情况下如何处理网络参数?

当我在 JSON 中发送数组映射时,使用 AngularJS 作为输入参数,它们在这两种情况下的解析方式不同。

当服务调用在动作标签内部或外部时,两种情况下参数的解析方式不同。

Parameters in JSON 
var parameters = { exampleId : ["example1","example2","example3"]};

ec.web.parameters for service-call in actions tag
exampleId : [example1, example2, example3]

ec.web.parameters for service-call outside actions tag
exampleId : [example1,  example2,  example3]

列表中的元素将在操作标签之外包含额外的 space 服务。

那么它应该以这种方式工作吗?

在这两种情况下,您都明确指定了要与 service-call.@in-map 属性一起使用的输入参数,因此在本例中它们是相同的。当服务调用元素直接位于过渡元素下方(不在动作元素内)并且未指定@in-map 时,它默认为当前上下文,@out-map 也是如此。当服务调用在动作元素内时,这些元素没有默认值,即如果您想使用上下文或其他一些内部或外部映射,您必须明确指定它们。

在使用 Moqui 制作应用程序一书中(您可以从 moqui.org 网站下载)中有关屏幕、屏幕转换以及与转换相关联的表单做什么的这些以及更多详细信息。