As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
<br>diff -r 7afd0f3dfc29 modules/activiti-engine/src/main/java/org/activiti/engine/RuntimeService.java<br>— a/modules/activiti-engine/src/main/java/org/activiti/engine/RuntimeService.java Tue Oct 19 08:47:15 2010 -0400<br>+++ b/modules/activiti-engine/src/main/java/org/activiti/engine/RuntimeService.java Fri Oct 22 10:22:54 2010 -0400<br>@@ -168,6 +168,14 @@<br> */<br> void signal(String executionId);<br> <br>+ /** Sends an external message to an activity instance that is waiting inside the given execution.<br>+ * @param executionId id of execution to signal, cannot be null.<br>+ * @param signalName the name identifying the signal. May be null<br>+ * @param message the message being delivered to activity instance<br>+ * @throws ActivitiException when no execution is found for the given executionId.<br>+ */<br>+ void signal(String executionId, String signalName, Object message);<br>+<br> /** Find variables for an execution. <br> * @param executionId id of execution, cannot be null.<br> * @throws ActivitiException when no execution is found for the given executionId. <br>diff -r 7afd0f3dfc29 modules/activiti-engine/src/main/java/org/activiti/engine/impl/RuntimeServiceImpl.java<br>— a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/RuntimeServiceImpl.java Tue Oct 19 08:47:15 2010 -0400<br>+++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/RuntimeServiceImpl.java Fri Oct 22 10:22:54 2010 -0400<br>@@ -99,6 +99,10 @@<br> commandExecutor.execute(new SignalCmd(activityInstanceId, null, null));<br> }<br> <br>+ public void signal(String activityInstanceId, String signalName, Object message) {<br>+ commandExecutor.execute(new SignalCmd(activityInstanceId, signalName, message));<br>+ }<br>+<br> public ProcessInstanceQuery createProcessInstanceQuery() {<br> return new ProcessInstanceQueryImpl(commandExecutor);<br> }<br>diff -r 7afd0f3dfc29 modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/ReceiveTaskActivity.java<br>— a/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/ReceiveTaskActivity.java Tue Oct 19 08:47:15 2010 -0400<br>+++ b/modules/activiti-engine/src/main/java/org/activiti/engine/impl/bpmn/ReceiveTaskActivity.java Fri Oct 22 10:22:54 2010 -0400<br>@@ -27,12 +27,21 @@<br> */<br> public class ReceiveTaskActivity extends TaskActivity {<br> <br>+ private Object dataOutput = null;<br>+<br> public void execute(ActivityExecution execution) throws Exception {<br> // Do nothing: waitstate behavior<br> }<br> <br> public void signal(ActivityExecution execution, String signalName, Object data) throws Exception {<br>+ this.dataOutput = data;<br> leave(execution);<br> }<br>- <br>+<br>+ /**<br>+ * @return the dataOutput of the receiveTask (if any)<br>+ */<br>+ public Object getDataOutput() {<br>+ return dataOutput;<br>+ } <br> }<br>
Farrukh: whats the use case ? What would you be passing ?Note that the current impl of the receive task is just a wait state.
Specifically, what I need help from someone is what needs to be done to lookup the dataOutput of the task when evaluating the conditionExpression on the outgoing sequenceFlows.