[jboss-user] [JBoss jBPM] - Re: How to set the timer duedate dynamicly
abdelak01
do-not-reply at jboss.com
Fri Oct 26 04:44:39 EDT 2007
thanks for your answer, I solved the problem by using an action to update the timer due date .
here is the action
| .....
| public class UpdatingTimerActionHandler implements ActionHandler {
|
| private static final long serialVersionUID = 1L;
|
|
|
| /**
| * update
| */
| public void execute(ExecutionContext context) throws Exception {
|
| System.out
| .println("start timer updating");
| String timerName = "actionTimer";
| String delay = context.getContextInstance().getVariable("action_delay").toString();
| //System.out.println("new delay : "+ delay);
| if (delay!=null && !delay.equals("")){
| try{
| SchedulerSession schedulerSession = context.getJbpmContext().getSchedulerSession();
| Duration duration = new Duration(delay);
| Date newDueDate = new BusinessCalendar().add(new Date(), duration);
| List timers = schedulerSession.findTimersByName(timerName, context.getToken());
| for(Object o : timers) {
| Timer timer = (Timer)o;
| log.info("Timer '" + timer.getName() + "' due date is " + timer.getDueDate());
| try{
| timer.setDueDate(newDueDate);
| }catch(Exception e) {
| throw new Exception("Timer '" + timer.getName() + "' due date was not updated to " +
| newDueDate + "': " + e);
| }
| schedulerSession.saveTimer(timer);
| log.info("Timer '" + timer.getName() + "' due date updated to " + timer.getDueDate());
| }
| }
| catch(Exception ex){
| ex.printStackTrace();
| }
| }
| System.out
| .println("finish timer updating");
| }
| public Log log = LogFactory.getLog(this.getClass());
|
| }
|
thanks again
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4099158#4099158
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4099158
More information about the jboss-user
mailing list