<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)所解析的,也就是說是一個數字;是{secondsecondsminuteminuteshourhoursdaydaysweekweeksmonthmonthsyearyears}之一;加上可選的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結束。現在就可以來區別業務時間和絕對時間了,假設我是在星期五的早上10點啟動了這個timer,那它第一次執行action的方法是在什么時候呢?因為這里的定義是有加上business的所以要結束工作日歷的定義來算了。工作日歷中定義了星期六和星期天是不上班的(沒有定義),所以在計算時間時就跳過,要到星期三到早上10點(這時只是執行完duedate的時間也就是第一次觸發action的時間),到星期五早上10點第二次觸發action,到下個星期二早上第二次觸發action(因為星期六和星期日沒定義不是業務時間),以此類推。如果在timer定義時沒有加上business的話,就以絕對時間進行計算,也就是在星期一的10點第一次觸發action,到星期三10點第二次觸發action,以此類推。

     

    posted on 2007-09-19 17:40 jbpm 閱讀(909) 評論(1)  編輯  收藏 所屬分類: jbpm實例
    主站蜘蛛池模板: 国产亚洲免费的视频看| 久久亚洲国产精品五月天婷| 久久精品国产精品亚洲人人| 特级毛片免费观看视频| 免费大黄网站在线看| 男人j进女人p免费视频| 亚洲一区二区三区免费| a级毛片免费高清毛片视频| 亚洲一区爱区精品无码| 叮咚影视在线观看免费完整版| 国产亚洲精品自在线观看| 成人自慰女黄网站免费大全| 久久精品九九亚洲精品天堂| 午夜老司机永久免费看片| 亚洲成人黄色在线观看| 性色av免费观看| 一级毛片a免费播放王色电影| 亚洲中文久久精品无码ww16| 日本免费一区二区久久人人澡| 久久久久亚洲AV无码专区体验| 在线看片v免费观看视频777 | 国产福利免费在线观看| 一级特黄录像视频免费| 日韩亚洲欧洲在线com91tv| 亚洲大片免费观看| 亚洲男同gay片| 国产成人综合亚洲AV第一页 | A级毛片高清免费视频在线播放| 亚洲成人黄色在线观看| 免费一级做a爰片性色毛片| 两个人看的www高清免费观看| 中文字幕亚洲免费无线观看日本| 操美女视频免费网站| 一级一级毛片免费播放| 亚洲资源在线视频| 免费看一级做a爰片久久| 日本免费高清视频| 香蕉97碰碰视频免费| 亚洲av无码一区二区三区乱子伦 | 亚洲一区二区三区在线观看网站| 亚洲精品国产高清嫩草影院|