XML Action概览
对于细节文档,xml-actions-${version}.xsd 文件有详尽的注解,此章节只是一个概览以帮助你上手。你可以通过许多好的XML编辑器(包括更好的Java IDE或IDE的插件)、XSD文件自身或moqui.org上从XSD文件生成的PDF来查看这些注解。
这里有需要知道的最重要的XML Actions元素的小结:
元素 | |
---|---|
set | 设置一个field,要么来自于(from)另一个字段或直接赋予一个值(value),可以指定类型(type)、默认值(default-value)以及为空时是否设置(set-if-empty) |
if | 有条件地运行在if元素下或if.then中的元素。条件可以是在if.condition属性中,或在if.condition元素下的compare和expression元素中(用and、or元素组合,用not元素取反)。对于替代动作使用else-if和else子元素 |
while | 只要条件为真就重复子元素。就像if元素,condition可以在if.condtion属性或if.condition元素中 |
iterate | 迭代遍历给定list中的元素,使用entry属性中的名字在上下文中创建一个字段。如果list属性中命名的字段是一个Map,在map的entries上遍历,每个条目的key被放入上下文中,使用key属性中的名字。也会创建${entry}_index和${entry}_has_next上下文字段 |
script | 运行在指定位置(location)的任意类型的Resource Facade能运行的脚本。或者在此元素下的文本中的Groovy脚本(内联脚本) |
service-call | 调用在name属性中指定的服务,使用in-map属性(它是一个Groovy表达式,所以能使用方括号[]表示内联的Map)或field-map子元素中的输入,并将输出放入out-map。可以是async和include-user-login。如果服务结果出错并且ignore-error的值不为true,这个简单的方法将立即返回。 |
entity-find-one | 查找名为entity-name的实体的单条记录,将结果(一个 EntityValue 对象)放入value-field 中,属性包括auto-field-map、cache和for-update,子元素包括field-map和select-field。 |
entity-find | 查找名为entity-name的实体的记录,将结果EntityList对象放入list,属性包括cache、for-update、distinct、offset和limit,子元素包括search-form-inputs, date-filter, econdition, econditions, econdition-object, having-econditions, select-field, order-by, limit-range, limit-view 和 use-iterator。 |
entity-find-count | 查找匹配给定条件的记录数。条件和其他可应用的选项遵循和entity-find操作同样的结构 |
entity-make-value | 为指定名字entity-name的实体创建一个value-field的值对象,可选地基于一个map设置字段 |
entity-create | 以value-field实体值创建(或更新-update)一条记录 |
entity-update | 为value-field实体值更新记录 |
entity-delete | 删除对应vlue-field实体值的记录 |
entity-set | 从map(默认为上下文)设置value-field中的EntityValue对象上的include(主键(pk)、非主键(nonpk))或所有(all))指定的字段,可选地设置prefix和set-if-empty |
entity-sequenced-id-primary | 对于有单一主键字段的实体的value-field,用一个序列值(序列名是实体全名)填充主键字段 |
entity-data | 对于给定的模式(mode),加载或校验指定位置(location)的Entity Facade XML。 |
filter-map-list | 过滤列表list,如果指定了to-list则把结果放入to-list,否则放回list。使用一个或多个field-map或date-filter子元素来指定如何过滤此列表。 |
order-map-list | 用order-by子元素中指定的字段排序一个Map对象列表list |
message | 把message元素下的文本加到MessageFacade,如果error为true,则加到错误列表,否则加到消息列表 |
check-errors | 检查MessageFacade的错误消息列表(ec.message.errors),如果不为空则返回一个错误,否则啥也不做 |
return | 立即返回。可以指定一个message来加到MessageFacade,如果error为true,则加到错误列表,否则加到消息列表 |
log | 以指定的level记录message到日志 |