Thanks Roland, here I am starting a new topic.

I have a problem with setting a timer on a Task Node.

I have defined the following process


  | <?xml version="1.0" encoding="UTF-8"?>
  | <process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="timer-test">
  |     <swimlane name="Initiator">
  |             <assignment actor-id="admin"></assignment>
  |     </swimlane>
  | 
  |     <start-state name="start-state1">
  |             <task name="start task" swimlane="Initiator"></task>
  |             <transition to="TaskA"></transition>
  |     </start-state>
  | 
  |     <task-node name="TaskA">
  |             <task name="TaskA">
  |                     <assignment actor-id="petia"></assignment>
  |             </task>
  |             <timer duedate="10 seconds" transition="skipB"></timer>
  |             <transition to="TaskB" name="execute B"></transition>
  |             <transition to="end-state1" name="skipB"></transition>
  |     </task-node>
  | 
  |     <task-node name="TaskB">
  |             <task name="TaskB">
  |                     <assignment actor-id="petia"></assignment>
  |             </task>
  |             <transition to="end-state1"></transition>
  |     </task-node>
  | 
  |     <end-state name="end-state1"></end-state>
  | </process-definition>
        

The idea is that if the timer in Task Node TaskA expires the process will be 
ended (and the Task Node TaskB skipped).

However, when running the process and the timer expires, the transition skipB 
is not executed (as specified in the code) and the process stalls at Task Node 
TaskA (which appears in the tasks list, but without an "End" button available 
for it).

I am running jBPM 3.2.3. From the discussion on 
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=140634&postdays=0&postorder=asc&start=10
 I can see that there have been some problems with timers on State Nodes which 
apparently have been fixed in 3.2.4. Does this apply to my problem with timers 
on task nodes? Have anyone else experienced a similar problem?

Note, the timer is important. Example of a business scenario: if a notification 
is not registered within a week, the process is ended otherwise it is 
continued. Therefore, the solution proposed by Alejandro (thanks Alejandro) 
suggesting that the timer is replaced by asynchronous continuation (see below), 
can not be applied in this case. 

anonymous wrote : JBSEAM-1575 depends on JBPM-1135 which is already resolved. 
That said, I have two suggestions.
  | 
  | The first is to replace the timer with an asynchronous continuation, unless 
you need the delay (which I understand you do not). Just set the node's async 
attribute to true. It does not need to be a separate emtpy state, you can 
decorate any of your existing nodes with that attribute.
  | 
  | The second is to implement a ThreadLocal based solution which prevents 
recursive calls once the loop node is reached. I came to it for preventing the 
stack overflow in the BPEL while activity, but it can be implemented for jPDL 
as well. You can browse the code in the online repository. Look at 
Loop.execute(). It is much of a hack - you might want to stick to asynchronous 
continuations unless you need more performance.
  | _________________
  | Saludos/Regards,
  | Alejandro

In summary: Does the Timer on Task Node work in  jBPM 3.2.3? Does it work in  
jBPM 3.2.4? (Clarification: the timer seems indeed to expire, but the specified 
transition is not taken, which results in a stalling process instance)

Kind regards, Petia 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4171721#4171721

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4171721
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to