`
zc-111
  • 浏览: 117290 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ofbiz TemporalExpression 表达式

阅读更多
项目中遇到,这个表达式,不知道怎么写,后来Debug进去兜了一圈,转换日期呀序列呀对象啊什么的。今天说下这个表达式一些规则。

  <!-- TemporalExpression field details... -->

    <!-- The TemporalExpression field meanings depend upon what type of expression it is. The integer
        values are typically obtained from the java.util.Calendar field constants. For more
        information, see the org.ofbiz.service.calendar.TemporalExpressions.java file.

        tempExprTypeId        integer1       integer2        date1  date2  string1    string2
        ====================  ============== =============== ====== ====== ========== ========
        HOUR_RANGE            start[11]      end[11]
        DATE_RANGE                                           start  end
        TIME_OF_DAY_RANGE[10] interval [9]   count [7]                     start [1]  end [1]
        DAY_OF_WEEK_RANGE     start [2]      end [2]
        MINUTE_RANGE          start [12]     end [12]
        MONTH_RANGE           start [3]      end [3]
        DAY_OF_MONTH_RANGE    start [4]      end [4]
        DAY_IN_MONTH          day [2]        occurrence [5]
        FREQUENCY             freq type [6]  freq count [7]  start[8]

        [1] hh:mm:ss
        [2] Day of week: 1 = Sunday, 7 = Saturday
        [3] Month: January = 0, Undecimber = 12
        [4] Day of month: 1 to 31
        [5] Integer: -5 to +5, zero excluded
        [6] Second = 13, Minute = 12, Hour = 11, Day = 5, Month = 2, Year = 1
        [7] Positive integer, zero excluded
        [8] If null, defaults to system date when the expression was retrieved from storage.
        [9] Second = 13, Minute = 12, Hour = 11 (default)
        [10] Deprecated - do not use
        [11] Integer: 0 to 23, midnight = 0
        [12] Integer: 0 to 59
    -->

Integer1对应规则的类型,Integer2对应Integer1(规则类型)的倍数
示例:现在来定义一个14天后的表达式
  <TemporalExpression tempExprId="PM" tempExprTypeId="FREQUENCY" description="Every Other Monday at 5pm" date1="2000-01-03 17:00:00.000" integer1="5" integer2="14"/>
integer1="5" 可以看出规则类型是Day,integer2="14",所以说是14天。

如果要表达一段时间,比如几点-几点,这样的话,上面的表达式就不能满足。
下面是一个星期一到星期五:
<TemporalExpression tempExprId="GOVT_WORK_SCHED" tempExprTypeId="DIFFERENCE" description="Monday to Friday without US Federal Holidays"/>
    <TemporalExpressionAssoc fromTempExprId="GOVT_WORK_SCHED" toTempExprId="MON_TO_FRI" exprAssocType="INCLUDE"/>
    <TemporalExpressionAssoc fromTempExprId="GOVT_WORK_SCHED" toTempExprId="US_FED_HOLIDAYS" exprAssocType="EXCLUDE"/>

这个东西跟ofbiz Job紧密结合。。。很灵活。。。最近在用这个东西做项目,所以先研究下。后续补上job配置及其东西分享给大家。
关于TemporalExpression的一些例子和介绍
https://cwiki.apache.org/OFBENDUSER/temporal-expressions.html
转载注明出处 Charles,http://juck.iteye.com/


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics