我正在尝试创建一个单独的表单来创建一个产品并添加一个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>
答案 0 :(得分: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下载)。