- < call-map-processor xml-resource = “xpp / com / note / SimpleForNoteMain.xml” error-list-name = “error_list”
- processor-name = “validateNoteMainMap” in-map-name = “parameters” out-map-name = “context” >
- <! - 调用来自一个既存Map的一个简单map处理器,创建一个新的Map或者如果名称out-map已经存在,添加到一个既存的Map。
- <! - error-list-name错误消息列表对象名,如果给定的名称不存在,将创建一个新的列表。
- <! - 注意:在同一个上下文中存在的所有列表和地图必须拥有唯一的名称。
- <! - call-map-processor调用校验简单方法: - >
- <! - xml-resource调用的简单方法文件所在位置(类似java类路径); - >
- 处理器名称要执行的简单方法名称; - >
- <! - in-map-name传入对象名; 出的地图名称返回对象名(如果不存在则创建如果已经存在则覆盖内容); - >
- <! - 通过在call-map-processor标签下放入一个simple-map-processor标签可以 - >
- <! - 使用一个内联的simple-map-processor。如果一个外部和一个内联的map-processor两者都被指定了, - >
- <! - 外部的将先调用,允许内联的去覆盖它的行为。 - >
- < simple-map-processor name = “validateNoteMainMap” >
- <! - 简单的地图数据处理 - >
- < make-in-string field = “createdDate” >
- <! - 通过字符串变量构造map <key,value>值 - >
- < in-field field = “createdMonth” />
- <! - 传入变量 - >
- < constant > / </ constant >
- <! - 简单连接符 - >
- < in-field field = “createdYear” />
- < property resource = “” property = “” />
- <! - 资源资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >
- </ make-in-string >
- <! - 从一个日期变量中获取日期和年份,并放入返回的地图中(以/分割); 如(09/2012),示例如下 - >
- < make-in-string field = “expireDate” >
- < in-field field = “expMonth” />
- < constant > / </ constant >
- < in-field field = “expYear” />
- </ make-in-string >
- < process field = “noteId” >
- < copy replace = “true” set-if-null = “true” to-field = “” />
- <! - 复制过程。@ field变量:replace若结果Map中已存在是否覆盖; - >
- <! - set-if-null若值为空是否设置; 至场=复制给结果地图@至场变量; - >
- < copy to-field = “currentPasswordVerify” />
- </ process >
- <! - 设置变量到结果Map,从上下文Map中copy给结果Map; - >
- <! - 注意:若一个变量在这里没有出现,则在返回的地图中将不存在该变量; 即返回的地图中的变量都要在此出现并传递 - >
- < process field = “noteName” > < copy /> < not-empty > < fail-property resource = “NoteUiLabels”
- property = “NoteMainCreateProcessor_NoteName_isMissing” /> </ not-empty > </ process >
- <! - 变量的空验证:若验证为空,则调配资源(配置文件名称)的配置中 - >
- <! - property(配置的键值)指定的配置,返回本地化错误信息 - >
- < process field = “productId” > < copy />
- < compare operator = “less” value = “” format = “” type = “String” >
- <! - 比较:运算符条件,值比较值,格式化格式字符串,输入数据类型 - >
- < fail-message message = “” />
- </ 比较>
- <! - 将当期变量和值比较,若结果为true,则复制给结果Map,否则返回错误消息 - >
- < compare-field operator = “less” field = “” format = “” type = “String” >
- <! - 比较变量:operator比较操作符; 字段被比较的变量; 格式格式化的格式字符串; 键入数据类型;- >
- < fail-message message = “” />
- </ compare-field >
- <! - 当前变量与指定的字段变量比较,若结果为true,则复制给结果Map,否则返回错误消息 - >
- < compare-field operator = “equals” field = “PASSWORD” >
- < fail-property resource = “PartyUiLabels” property = “PartyPasswordMatchError” />
- </ compare-field >
- < convert type = “PlainString” format = “” to-field = “” replace = “true” set-if-null = “true” >
- <! - 变量数据转换:类型数据类型; 格式格式化的格式字符串; 到字段格式化完传递给此变量; - >
- 变量存在值,是否覆盖; 设置如果空转换结果为空时,是否赋值给[给场]; - >
- < fail-message message = “” />
- </ convert >
- < convert to-field = “createdDate” replace = “true” set-if-null = “false” type = “Timestamp” >
- < fail-property resource = “ContentUiLabels” property = “ContentCreateDateInvalidFormat” />
- </ convert >
- < regexp expr = “” > < fail-message message = “” /> </ regexp >
- <! - 将当前变量与expr正则表达式比较; 若结果为假,
- 则返回错误消息如: < regexp value = “[a-zA-Z] {2,20}” /> - >
- < validate-method method = “isDateAfterToday” class = “org.ofbiz.base.util.UtilValidate” >
- <! - 调用校验方法,验证数据; 这里可以写自己的校验静态方法,这里的验证方法是:
- org.ofbiz.base.util.UtilValidate类的isDateAfterToday(); - >
- < fail-property resource = “NoteUiLabels” property = “NoteMainCreateProcessor_createdDate_isNoteAfterToday” />
- </ validate-method >
- </ process >
- </ simple-map-processor >
- </ call-map-processor >
- < set-service-field service-name = “updateCreditCard” map = “creditCard” to-map = “uccMap” error-list-name = “error_list” />
- <! - 构建指定服务需要的参数新地图中:service-name服务名; 映射待过滤的数据集; 到地图服务需要的参数集; 错误列表名称错误消息列表变量; - >
- < call-service service-name = “checkPermissionForCreateNoteMain” in-map-name = “parameters” include-user-login = “true” break-on-error = “true” >
- <! - 调用外部服务:service-name服务名称; 在的地图名称传入服务的映射变量名(可选); 包括用户的登录是否携带登录信息; 当执行出错时当前方法终止执行,返回错误信息(false则继续执行); - >
- <! - include-user-login默认地,将包含用户登录(true),因此如果当前简单方法有一个用户登录,将传送它们到服务。
- < error-prefix property = “” resource = “” > </ error-prefix >
- <! - 已废弃//错误消息前缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >
- < error-suffix property = “” resource = “” > </ error-suffix >
- <! - 已废弃//错误消息后缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >
- < message-prefix property = “” resource = “” > </ message-prefix >
- <! - 已废弃//消息前缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键;- >
- < message-suffix property = “” resource = “” > </ message-suffix >
- <! - 已废弃//消息后缀:资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >
- < default-message property = “” resource = “” > </ default-message >
- <! - 默认消息:资源资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >
- <! - <default-message resource =“AccountingUiLabels”property =“AccountingCreditCardCreatedSuccessfully”/> - >
- < result-to-field result-name = “noteId” field = “noteIdTmp” />
- <! - 从服务结果的地图中获取值给变量:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >
- <! - 注意:若字段没设定,则字段名=结果名称,设定了字段,则使用字段指定的变量存储结果值 - >
- < result-to-field result-name = “agreementId” field = “agreementIdTo” />
- < result-to-request result-name = “permission” request-name = “” />
- <! - 从服务结果的地图中获取值给请求:获取地图中结果名称指定的密钥的值,赋值给请求名称指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >
- < result-to-request result-name = “paymentMethodId” request-name = “paymentMethodId” />
- < result-to-result result-name = “” service-result-name = “” />
- <! - 从服务结果的地图中获取值给结果地图:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >
- < result-to-result result-name = “contentRevisionSeqId” service-result-name = “rootContentRevisionSeqId” />
- < result-to-session result-name = “” session-name = “” />
- <! - 从服务结果的地图中获取值给会话:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >
- < result-to-session result-name = “categories” session-name = “categoriesField” />
- < results-to-map map-name = “” />
- <! - 将服务返回结果给map-name指定的变量 - >
- < results-to-map map-name = “serviceResult” />
- </ call-service >
- < call-service-asynch service-name = “checkPermissionForCreateNoteMain” in-map-name = “parameters” include-user-login = “true” />
- <! - 调用外部服务:异步地调用一个服务并忽略结果,因此没有使用返回信息,但它们都有系统错误信息。
- <! - call-service-asynch例子开始 - >
- < set-service-field service-name = “sendMailFromScreen” map = “parameters” to-map = “emailParams” />
- < set field = “emailParams.xslfoAttachScreenLocation” value = “component://accounting/widget/AccountingPrintScreens.xml#InvoicePDF” />
- < set field = “emailParams.bodyParameters.invoiceId” from-field = “parameters.invoiceId” />
- < set field = “emailParams.bodyParameters.userLogin” from-field = “parameters.userLogin” />
- 以“其他货币”打印< set field = “emailParams.bodyParameters.other” from-field = “parameters.other” /> <!
- < call-service-asynch service-name = “sendMailFromScreen” in-map-name = “emailParams” />
- < property-to-field resource = “AccountingUiLabels” property = “AccountingEmailScheduledToSend” field = “successMessage” />
- <! - call-service-asynch例子结束 - >
- < script location = “” error-list-name = “error_list” > </ script > <! - 执行script脚本(location指向具体路径); 接收返回的错误; - >
- < script location = “component://bi/webapp/bi/WEB-INF/actions/reportbuilder/GetStarSchemas.groovy” />
- < call-bsh error-list-name = “error_list” resource = “” >
- <! - 使用脚本块(groovy支持):脚本用到的一些变量在<simple-method>。@ attribute已经定义好; 错误列表名称错误消息列表变量; 资源资源标识(一般/博客/ NoteUiLabels); - >
- <![CDATA [
- java.sql.Timestamp createdDate = context.createdDate;
- java.util.Calendar cal = java.util.Calendar.getInstance();
- cal.setTimeInMillis(createdDate.getTime());
- cal.add(java.util.Calendar.DAY_OF_YEAR,daysToShip.intValue());
- 返回org.ofbiz.base.util.UtilMisc.toMap(“createdDate”,new java.sql.Timestamp(cal.getTimeInMillis()));
- ]]>
- <! - 脚本执行内容的标签体<![CDATA [bsh]]> - >
- </ call-bsh >
- < check-errors />
- < call-simple-method method-name = “validateNoteMainMap” xml-resource = “” />
- <! - 调用简单方法的写法:method-name方法名称, - >
- <! - 若xml-resource属性不设置,则这里用到的方法,必须是当前文件内的; - >
- < call-simple-method method-name = “genericBasePermissionCheck”
- xml-resource = “component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml” />