Hi there,
I’ve been working with the Workflow component for a
little while, and I felt like I was starting to get the hang of it, until I ran
into this little problem that I can’t seem to figure out. It could
be that I’m not using the nodes in the intended way, or it could be that
I’m too stupid to see what’s obviously right in front of my
face. Either way, some help would be appreciated.
Scenario: I have a parallel split, followed (later) by a
synchronizing merge. In one (or both, it doesn’t really matter) of
the two execution branches, I have an exclusive choice after an input, that
tells the branch whether to loop back or to continue on to the synchronization
point based on the value of a variable set by the input node. See attached image.
The little dummy class I wrote (“eh”) is just to
spit something out to the console so I can tell what’s happening.
Attached is the script I wrote that accomplishes this.
Basically, me expectation is that the synchronizing merge
will wait until the exclusive choice node chooses the path that points to the
synchronizing merge node, but it doesn’t seem to be doing that.
When I execute the workflow like so:
Start(); //execution stops at each branch’s input
nodes, as expected
Resume(array(‘foo’ => ‘asdf’)); //make
the exclusive choice loop continue; execution stops at each branch’s
input nodes, as expected
Resume(array(‘foo’ => ‘bar’)); //make
the exclusive choice loop break (execution continues past the synchronizing
merge node for some reason); execution “stops” at the remaining branch’s
input node
Resume(array(‘bar’ => ‘baz’));
//make the other branch node continue on to the synchronizing merge node
What happens is that the workflow “finishes,”
meaning that execution continues past the synchronizing merge node even though
the other branch (the branch waiting for ‘bar’ input variable) has
not completed. A screenshot of the script’s result can be seen in the
attached merge_result.png.
I’ve been working on this for about 6 hours and can’t
figure out why it would do that. My only thinking is that it’s
either a bug or I’m doing something incorrect.
Any help is appreciated. If more clarification is
needed, I can provide it.
Thanks,
Tommy
IMPORTANT NOTICE: This e-mail message is intended to be received only by persons entitled to receive the confidential information it may contain. E-mail messages sent from Bridgepoint Education, Inc. may contain information that is confidential and may be legally privileged. Please do not read, copy, forward or store this message unless you are an intended recipient of it. If you received this transmission in error, please notify the sender by reply e-mail and delete the message and any attachments.