0

我正在尝试创建一个创建产品并添加 SKU 的单一表单,但到目前为止我还没有找到可以帮助我的示例。

我正在尝试构建的是一个表单,其中包含三个文本行/区域字段供用户输入的值,而我能够正确保存 productName 的值和描述,而 idValue 不出所料地不会保存。我尝试在字段名称中包含完整的实体路径,但这也不起作用。

任何对现有示例的建议或指示将不胜感激!

<?xml version="1.0" encoding="UTF-8"?>
<screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-1.5.xsd">

<parameter name="productId"/>

<transition name="newProduct">
    <default-response url=".">
        <parameter name="productId" value=""/>
    </default-response>
</transition>
<transition name="createProduct">
    <service-call name="create#mantle.product.Product"/>
    <default-response url="."/>
</transition>
<transition name="updateProduct">
    <service-call name="update#mantle.product.Product"/>
    <default-response url="."/>
</transition>

<widgets>
    <form-single name="CreateProduct" transition="createProduct">
        <field name="productName"><default-field><text-line/></default-field></field>
        <field name="description"><default-field><text-area/></default-field></field>
        <field name="idValue"><default-field><text-line></text-line></default-field></field>
        <field name="submitButton"><default-field title="Create"><submit/></default-field></field>
    </form-single>
</widgets>
</screen>
4

1 回答 1

1

只需创建一个接受与表单字段匹配的输入参数的服务,并让该服务完成必要的工作。在 HiveMind 和 Mantle 中有各种这样的例子,包括 HiveMind 中使用 mantle.work.TaskServices.create#Task 服务的各种任务创建表单。

这是具有该服务定义的 TaskServices.xml 文件:

https://github.com/moqui/mantle/blob/master/mantle-usl/service/mantle/work/TaskServices.xml

这是一个带有表单 (NewTaskForm) 的屏幕,它通过 createTask 转换调用此服务:

https://github.com/moqui/HiveMind/blob/master/screen/HiveMindRoot/Task/FindTask.xml

这是 Moqui 的一般模式:创建一个输入参数与表单字段匹配的服务。当您执行此操作时,甚至会出现来自服务输入参数的各种约束,这些约束由浏览器中的 JavaScript 自动强制执行(即使用单个定义进行客户端和服务器端验证)。

在使用 Moqui 制作应用程序这本书(您可以从 moqui.org 下载)中有更多关于所有这些的详细信息。

于 2014-12-30T05:22:20.537 回答