This content has been marked as final.
Show 8 replies
-
1. Re: How to signal subprocess?
rmoskal Nov 25, 2009 9:27 PM (in response to olivierl)Something like this works for me:
ExecutionImpl tp = (ExecutionImpl) executionService.findProcessInstanceById(topPop.getProcessExecutionId()); ExecutionImpl subProc = tp.findActiveExecutionIn(activityName).getSubProcessInstance(); executionService.signalExecutionById(subProc.getId(),"to Rework");
-
2. Re: How to signal subprocess?
olivierl Nov 26, 2009 4:01 AM (in response to olivierl)Waaouu It works perfectly!! Thanks
-
3. Re: How to signal subprocess?
neshap Nov 27, 2009 5:16 AM (in response to olivierl)Instead of casting it to implementation class, you can try something like
Execution parentExecution=instance.findActiveExecutionIn("SubProcessParent"); OpenExecution subProcessExecution=((OpenExecution)parentExecution).getSubProcessInstance();
After that you can access state and signal it with something like:Execution subProcessState=subProcessExecution.findActiveExecutionIn("SubProcess");
Regards
Nenad -
4. Re: How to signal subprocess?
olivierl Nov 27, 2009 8:47 AM (in response to olivierl)Thanks for your response, but you have a cast too : Execution into OpenExecution.
Does someone know the diffrence between Execution, ExecutionImpl, OpenExecution, ProcessInstance? I'm a bit confused with all these concepts. -
5. Re: How to signal subprocess?
cmjhingeniero Nov 27, 2009 3:57 PM (in response to olivierl)Hi
I have a state that has an event that is consumed until the flag reaches a certain value. When you reach this value need to turn to another task. As I do this, some examples in java<state g="438,14,92,52" name="verificar repo"> <on event="start"> <timer duedate="1 minutes" repeat="10 seconds"/> <event-listener class="com.configuracion.eventos.VerificarReposicion"> <field name="documento"><object expr="#{resReposicion}"/></field> <field name="caf"><object expr="#{txtCaf}"/></field> </event-listener> </on> <transition to="enviar email"/> </state> <mail g="562,14,107,54" name="enviar email"> <to addresses="carlosj@audifarma.com.co"/> <subject>Prueba</subject> <text>Prueba</text> <transition to="fin_1"/> </mail>
public void notify(EventListenerExecution execution) throws Exception { ProcessInstance processInstance = executionService.findProcessInstanceById("Pendientes-1"); String respuesta = execution.getVariable("respuesta")+""; if (respuesta.equals(null)) { respuesta = new String(); execution.setVariable("respuesta", respuesta); } ReposicionDao reposicion = new ReposicionDao(); respuesta = reposicion.verificarCarguePorReposicion(documento, caf); execution.setVariable("respuesta", respuesta); if(execution.getVariable("respuesta").toString().equals("N")){ executionService.signalExecutionById(processInstance.getId(),"enviar email"); } }
Thanks -
6. Re: How to signal subprocess?
kukeltje Nov 27, 2009 5:40 PM (in response to olivierl)@cmjhingeniero
What is the relation of your post with this topic? -
-
8. Re: How to signal subprocess?
neshap Nov 30, 2009 5:27 AM (in response to olivierl)Thanks for your response, but you have a cast too : Execution into OpenExecution.
Does someone know the diffrence between Execution, ExecutionImpl, OpenExecution, ProcessInstance? I'm a bit confused with all these concepts.
I'm a bit new to JBPM, but I'll try to give it a go.
It seems that casting has to be done (my opinion is better to cast it to interface than implementation). Judging from the javadoc, state of the Execution can be either active or locked. OpenExecution is Execution in active state only, and it gives you access to related objects in execution. ProcessInstance is one execution of a process definition, and it can have many concurrent executions (forks, subprocess).