<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 26,  comments - 7,  trackbacks - 0

    作者:   wf_7758520
     

     

    這次就說說jBPM的業務日歷。

    這是官方的定義,現在看不明白沒關系,我會慢慢解釋。是一個文本塊,它是可以使用Double.parseDouble(quantity)所解析的,也就是說是一個數字;是{second,secondsminute,minutes,hour,hours,day,daysweekweeksmonthmonths,year,years}之一;加上可選的business指示,意味著對于這個期限只有業務時間才應被考慮,如果沒有business指示,期限將作為一個絕對的時間段被解釋。也就是說加了business的按業務時間算,沒加的按絕對時間算。

    什么叫業務時間,什么叫絕對時間?我就用jbpm的例子說明。文件org/jbpm/calendar/jbpm.business.calendar.properties指定了什么是業務時間,該配置文件可以被定制并且修改后的拷貝可被放在classpath根。                 下面是業務時間規范的例子,它在jbpm.business.calendar.properties中被默認配置。

    xml 代碼

    1. hour.format=HH:mm   
    2. #weekday ::= [<daypart> [& <daypart>]*]   
    3. #daypart ::<start-hour>-<to-hour>  
    4. #start-hour and to-hour must be in the hour.format   
    5. #dayparts have to be ordered   
    6. weekday.monday=    9:00-12:00 & 12:30-17:00   
    7. weekday.thuesday=  9:00-12:00 & 12:30-17:00   
    8. weekday.wednesday9:00-12:00 & 12:30-17:00   
    9. weekday.thursday=  9:00-12:00 & 12:30-17:00   
    10. weekday.friday=    9:00-12:00 & 12:30-17:00   
    11. weekdayweekday.saturday=   
    12. weekday.sunday=   
    13.   
    14. day.format=dd/MM/yyyy   
    15. # holiday syntax: <holiday>  
    16. # holiday period syntax: <start-day>-<end-day>  
    17. # below are the belgian official holidays   
    18. holiday.1=  01/01/2005 # nieuwjaar   
    19. holiday.2=  27/3/2005  # pasen    
    20. holiday.3=  28/3/2005  # paasmaandag    
    21. holiday.4=  1/5/2005   # feest van de arbeid   
    22. holiday.5=  5/5/2005   # hemelvaart    
    23. holiday.6=  15/5/2005  # pinksteren    
    24. holiday.7=  16/5/2005  # pinkstermaandag    
    25. holiday.8=  21/7/2005  # my birthday    
    26. holiday.9=  15/8/2005  # moederkesdag    
    27. holiday.101/11/2005  # allerheiligen    
    28. holiday.1111/11/2005 # wapenstilstand    
    29. holiday.1225/12/2005 # kerstmis    
    30.   
    31.   
    32. business.day.expressed.in.hours=            8  
    33. business.week.expressed.in.hours=           40  
    34. business.month.expressed.in.business.days=  21  
    35. business.year.expressed.in.business.days=  220  
    36.   

    對于上面定義通俗的理解就是它歸定了從星期一到星期五的9:00-12:00 & 12:30-17:00   這段時間為上班時間也就是業務時間,星期六和星期日沒有定義也就是放假的時間,再往下就是定義了12個節假日,最后是一些工作時長的統計如一天8小時,一個星期40小時等。

    從官方定義至少可以看出jbpm要與定時器結合使用,下面我們定義一個定時器:

    xml 代碼

    1. <state name='catch crooks'>         
    2.   <timer name='reminder' duedate='3 business day' 
    3.       repeat='2 business day'         
    4.       transition='time-out-transition' >         
    5.     <action class='the-remainder-action-class-name' />         
    6.   timer>            
    7. <state>   

    這里的定時器(timer)的名字是reminder,它的duedate定義的是3 business day,repeat定義的是2 business day也就是說從定時器啟動開始在3個業務日的時間后每隔兩個業務日執行一次action的方法,直到timer結束?,F在就可以來區別業務時間和絕對時間了,假設我是在星期五的早上10點啟動了這個timer,那它第一次執行action的方法是在什么時候呢?因為這里的定義是有加上business的所以要結束工作日歷的定義來算了。工作日歷中定義了星期六和星期天是不上班的(沒有定義),所以在計算時間時就跳過,要到星期三到早上10點(這時只是執行完duedate的時間也就是第一次觸發action的時間),到星期五早上10點第二次觸發action,到下個星期二早上第二次觸發action(因為星期六和星期日沒定義不是業務時間),以此類推。如果在timer定義時沒有加上business的話,就以絕對時間進行計算,也就是在星期一的10點第一次觸發action,到星期三10點第二次觸發action,以此類推。

     

    posted on 2007-09-19 17:40 jbpm 閱讀(910) 評論(1)  編輯  收藏 所屬分類: jbpm實例
    主站蜘蛛池模板: 热久久精品免费视频| 亚洲国产成人影院播放| 久久久久亚洲AV无码观看| 少妇性饥渴无码A区免费 | 日本免费v片一二三区| 国产av无码专区亚洲国产精品| 美女免费精品高清毛片在线视| 日日夜夜精品免费视频| 美女又黄又免费的视频| 久久久久亚洲AV综合波多野结衣| 亚洲免费在线观看| 免费黄色大片网站| 国产成人精品亚洲一区| 亚洲一级免费毛片| 国产成人精品日本亚洲网址| 免费无码一区二区三区蜜桃大 | 国产免费牲交视频免费播放| 久久久久亚洲精品男人的天堂| 免费无码作爱视频| 亚洲免费在线视频播放| 日韩一级视频免费观看| 九九久久精品国产免费看小说 | 男人的天堂av亚洲一区2区| 亚洲精品WWW久久久久久| 亚洲综合色丁香婷婷六月图片| 国产大片91精品免费观看男同| 曰批全过程免费视频观看免费软件| 国产精品亚洲高清一区二区| 亚洲免费视频网站| 亚洲色大网站WWW永久网站| 亚洲成AV人在线观看网址| 欧洲人免费视频网站在线| 久久久久亚洲AV成人网人人网站| 久9久9精品免费观看| 一本天堂ⅴ无码亚洲道久久| 亚洲一区视频在线播放| 99热在线免费播放| 黄人成a动漫片免费网站| 亚洲an天堂an在线观看| 久久精品免费视频观看| 亚洲免费福利在线视频|