OFBiz进阶--OFBiz标签之间 [* Services.xml] -mililang介绍与分析(二)

  1. call-map-processor xml-resource “xpp / com / note / SimpleForNoteMain.xml” error-list-name “error_list”    
  2.   processor-name “validateNoteMainMap” in-map-name “parameters” out-map-name “context” >    
  3.   <! - 调用来自一个既存Map的一个简单map处理器,创建一个新的Map或者如果名称out-map已经存在,添加到一个既存的Map。  
  4.   <! - error-list-name错误消息列表对象名,如果给定的名称不存在,将创建一个新的列表。  
  5.     <! - 注意:在同一个上下文中存在的所有列表和地图必须拥有唯一的名称。  
  6.   <! - call-map-processor调用校验简单方法: - >  
  7.   <! - xml-resource调用的简单方法文件所在位置(类似java类路径); - >  
  8.   处理器名称要执行的简单方法名称; - >  
  9.   <! - in-map-name传入对象名; 出的地图名称返回对象名(如果不存在则创建如果已经存在则覆盖内容); - >  
  10.   
  11.   <! - 通过在call-map-processor标签下放入一个simple-map-processor标签可以 - >  
  12.     <! - 使用一个内联的simple-map-processor。如果一个外部和一个内联的map-processor两者都被指定了, - >  
  13.     <! - 外部的将先调用,允许内联的去覆盖它的行为。 - >  
  14.   simple-map-processor name “validateNoteMainMap” >   
  15.     <! - 简单的地图数据处理 - >  
  16.     make-in-string field “createdDate” >   
  17.       <! - 通过字符串变量构造map <key,value>值 - >  
  18.       in-field field “createdMonth” />   
  19.         <! - 传入变量 - >  
  20.       constant </ constant >  
  21.         <! - 简单连接符 - >  
  22.       in-field field “createdYear” />   
  23.       property resource “” property “” />    
  24.       <! - 资源资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >  
  25.     </ make-in-string >  
  26.       <! - 从一个日期变量中获取日期和年份,并放入返回的地图中(以/分割); 如(09/2012),示例如下 - >  
  27.     make-in-string field “expireDate” >   
  28.    in-field field “expMonth” />   
  29.    constant </ constant >  
  30.    in-field field “expYear” />   
  31.  </ make-in-string >  
  32.   
  33.     process field “noteId” >   
  34.         copy replace “true” set-if-null “true” to-field “” />     
  35.             <! - 复制过程。@ field变量:replace若结果Map中已存在是否覆盖; - >  
  36.             <! - set-if-null若值为空是否设置; 至场=复制给结果地图@至场变量; - >  
  37.             copy to-field “currentPasswordVerify” />   
  38.     </ process >  
  39.       <! - 设置变量到结果Map,从上下文Map中copy给结果Map; - >  
  40.       <! - 注意:若一个变量在这里没有出现,则在返回的地图中将不存在该变量; 即返回的地图中的变量都要在此出现并传递 - >  
  41.   
  42.     process field “noteName” copy /> not-empty fail-property resource “NoteUiLabels”    
  43.     property “NoteMainCreateProcessor_NoteName_isMissing” /> </ not-empty </ process >  
  44.       <! - 变量的空验证:若验证为空,则调配资源(配置文件名称)的配置中 - >  
  45.         <! - property(配置的键值)指定的配置,返回本地化错误信息 - >  
  46.   
  47.     process field “productId” copy />   
  48.       compare operator “less” value “” format “” type “String” >      
  49.         <! - 比较:运算符条件,值比较值,格式化格式字符串,输入数据类型 - >  
  50.        
  51.         fail-message message “” />   
  52.       </ 比较>  
  53.       <! - 将当期变量和值比较,若结果为true,则复制给结果Map,否则返回错误消息 - >  
  54.        
  55.       compare-field operator “less” field “” format “” type “String” >      
  56.         <! - 比较变量:operator比较操作符; 字段被比较的变量; 格式格式化的格式字符串; 键入数据类型;- >  
  57.        
  58.         fail-message message “” />   
  59.       </ compare-field >  
  60.       <! - 当前变量与指定的字段变量比较,若结果为true,则复制给结果Map,否则返回错误消息 - >  
  61.       compare-field operator “equals” field “PASSWORD” >    
  62.         fail-property resource “PartyUiLabels” property “PartyPasswordMatchError” />    
  63.       </ compare-field >  
  64.        
  65.       convert type “PlainString” format “” to-field “” replace “true” set-if-null “true” >       
  66.         <! - 变量数据转换:类型数据类型; 格式格式化的格式字符串; 到字段格式化完传递给此变量; - >  
  67.           变量存在值,是否覆盖; 设置如果空转换结果为空时,是否赋值给[给场]; - >  
  68.         fail-message message “” />   
  69.       </ convert >  
  70.       convert to-field “createdDate” replace “true” set-if-null “false” type “Timestamp” >      
  71.         fail-property resource “ContentUiLabels” property “ContentCreateDateInvalidFormat” />    
  72.       </ convert >  
  73.        
  74.       regexp expr “” fail-message message “” /> </ regexp >      
  75.         <! - 将当前变量与expr正则表达式比较; 若结果为假,  
  76.         则返回错误消息如:  regexp value “[a-zA-Z] {2,20}” />  - >   
  77.          
  78.       validate-method method “isDateAfterToday” class “org.ofbiz.base.util.UtilValidate” >    
  79.         <! - 调用校验方法,验证数据; 这里可以写自己的校验静态方法,这里的验证方法是:  
  80.         org.ofbiz.base.util.UtilValidate类的isDateAfterToday(); >  
  81.            
  82.         fail-property resource “NoteUiLabels” property “NoteMainCreateProcessor_createdDate_isNoteAfterToday” />    
  83.       </ validate-method >  
  84.   
  85.     </ process >  
  86.   </ simple-map-processor >  
  87. </ call-map-processor >  
  88.      
  89. set-service-field service-name “updateCreditCard” map “creditCard” to-map “uccMap” error-list-name “error_list” />      
  90.     <! - 构建指定服务需要的参数新地图中:service-name服务名; 映射待过滤的数据集; 到地图服务需要的参数集; 错误列表名称错误消息列表变量; - >  
  91.   
  92. call-service service-name “checkPermissionForCreateNoteMain” in-map-name “parameters” include-user-login “true” break-on-error “true” >      
  93.   <! - 调用外部服务:service-name服务名称; 在的地图名称传入服务的映射变量名(可选); 包括用户的登录是否携带登录信息; 当执行出错时当前方法终止执行,返回错误信息(false则继续执行); - >  
  94.    <! - include-user-login默认地,将包含用户登录(true),因此如果当前简单方法有一个用户登录,将传送它们到服务。  
  95.    
  96.  error-prefix property “” resource “” </ error-prefix >    
  97.    <! - 已废弃//错误消息前缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >  
  98.    
  99.  error-suffix property “” resource “” </ error-suffix >    
  100.    <! - 已废弃//错误消息后缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >  
  101.    
  102.  message-prefix property “” resource “” </ message-prefix >    
  103.    <! - 已废弃//消息前缀:resource资源名称(general / blog / NoteUiLabels); 财产属性的关键;- >  
  104.    
  105.  message-suffix property “” resource “” </ message-suffix >    
  106.    <! - 已废弃//消息后缀:资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >  
  107.    
  108.  default-message property “” resource “” </ default-message >    
  109.    <! - 默认消息:资源资源名称(general / blog / NoteUiLabels); 财产属性的关键; - >  
  110.    <! - <default-message resource =“AccountingUiLabels”property =“AccountingCreditCardCreatedSuccessfully”/> - >  
  111.    
  112.  result-to-field result-name “noteId” field “noteIdTmp” />    
  113.    <! - 从服务结果的地图中获取值给变量:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >  
  114.        <! - 注意:若字段没设定,则字段名=结果名称,设定了字段,则使用字段指定的变量存储结果值 - >  
  115.        result-to-field result-name “agreementId” field “agreementIdTo” />    
  116.     
  117.  result-to-request result-name “permission” request-name “” />    
  118.    <! - 从服务结果的地图中获取值给请求:获取地图中结果名称指定的密钥的值,赋值给请求名称指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >  
  119.    result-to-request result-name “paymentMethodId” request-name “paymentMethodId” />    
  120.    
  121.  result-to-result result-name “” service-result-name “” />    
  122.    <! - 从服务结果的地图中获取值给结果地图:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >  
  123.    result-to-result result-name “contentRevisionSeqId” service-result-name “rootContentRevisionSeqId” />    
  124.     
  125.  result-to-session result-name “” session-name “” />    
  126.    <! - 从服务结果的地图中获取值给会话:获取地图中结果名称指定的键的值,赋值给字段指定的变量; 结果名称返回地图中指定的键的值; 字段返回值赋给此变量; - >  
  127.    result-to-session result-name “categories” session-name “categoriesField” />    
  128.    
  129.  results-to-map map-name “” />   
  130.    <! - 将服务返回结果给map-name指定的变量 - >  
  131.     results-to-map map-name “serviceResult” />   
  132.    
  133. </ call-service >  
  134.      
  135. call-service-asynch service-name “checkPermissionForCreateNoteMain” in-map-name “parameters” include-user-login “true” />      
  136.   <! - 调用外部服务:异步地调用一个服务并忽略结果,因此没有使用返回信息,但它们都有系统错误信息。  
  137. <! - call-service-asynch例子开始 - >  
  138. set-service-field service-name “sendMailFromScreen” map “parameters” to-map “emailParams” />     
  139. set field “emailParams.xslfoAttachScreenLocation” value “component://accounting/widget/AccountingPrintScreens.xml#InvoicePDF” />    
  140. set field “emailParams.bodyParameters.invoiceId” from-field “parameters.invoiceId” />    
  141. set field “emailParams.bodyParameters.userLogin” from-field “parameters.userLogin” />    
  142. 以“其他货币”打印set field “emailParams.bodyParameters.other” from-field “parameters.other” /> <!    
  143. call-service-asynch service-name “sendMailFromScreen” in-map-name “emailParams” />    
  144. property-to-field resource “AccountingUiLabels” property “AccountingEmailScheduledToSend” field “successMessage” />     
  145. <! - call-service-asynch例子结束 - >  
  146.   
  147. script location “” error-list-name “error_list” </ script <! - 执行script脚本(location指向具体路径); 接收返回的错误; - >    
  148. script location “component://bi/webapp/bi/WEB-INF/actions/reportbuilder/GetStarSchemas.groovy” />   
  149.   
  150. call-bsh error-list-name “error_list” resource “” >    
  151.     <! - 使用脚本块(groovy支持):脚本用到的一些变量在<simple-method>。@ attribute已经定义好; 错误列表名称错误消息列表变量; 资源资源标识(一般/博客/ NoteUiLabels); - >  
  152.   <![CDATA [ 
  153.     java.sql.Timestamp createdDate = context.createdDate; 
  154.     java.util.Calendar cal = java.util.Calendar.getInstance(); 
  155.     cal.setTimeInMillis(createdDate.getTime()); 
  156.     cal.add(java.util.Calendar.DAY_OF_YEAR,daysToShip.intValue()); 
  157.     返回org.ofbiz.base.util.UtilMisc.toMap(“createdDate”,new java.sql.Timestamp(cal.getTimeInMillis())); 
  158.   ]]>  
  159.   <! - 脚本执行内容的标签体<![CDATA [bsh]]> - >  
  160. </ call-bsh >  
  161. check-errors />  
  162.   
  163. call-simple-method method-name “validateNoteMainMap” xml-resource “” />    
  164.   <! - 调用简单方法的写法:method-name方法名称, - >  
  165.     <! - 若xml-resource属性不设置,则这里用到的方法,必须是当前文件内的; - >  
  166.     call-simple-method method-name “genericBasePermissionCheck”   
  167.             xml-resource “component://common/script/org/ofbiz/common/permission/CommonPermissionServices.xml” />  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖夏荡漾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值