cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X

Windchill 9.1 Workflow issue using Conditional Connector

hootman
1-Newbie

Windchill 9.1 Workflow issue using Conditional Connector

Windchill 9.1 Workflow questoin; will a Conditional Connector start/fire on multiple links if more than on variable value is true.

See attached document for further information detail on my issue.

3 REPLIES 3
MikeLockwood
22-Sapphire I
(To:hootman)

Fundamental need - much discussion lately.

Jeff Z / Pradeep R - seems to be same issue discussed in TC yesterday.

Raju - may want to post the general solution that you use.

Fundamental need? Does this mean using WF Conditional Connector will only start when meeting one of two variables? The reply is gray to me. Please help me out here

BruceHulse
6-Contributor
(To:hootman)

The Conditional Connector will only produce a single result value. However, there is nothing to stop you from using a more complex value and then using the link's ability to fire on more than one condition to let you create what I think you want.

Say you have three possible routes - A, B and C. Create a composite result in the connector that appends which routes you want to follow together, so you have one of seven possible values - A, B, C, AB, AC, BC, and ABC. Use these values as the result of the Conditional.

Then on the link to the A task, fire A, AB, AC, and ABC.

On the link to the B task, fire on B, AB, BC, and ABC.

On the link to the C task, file on C, AC, BC, and ABC.

Obviously, the more possible routes, the higher the number of permutations you'd have to cover, but it does let you run one or more routes concurrently.

However, for getting the task to finish correctly, you need a Threshold connector set to the number of possible routes (3 in this case). Since the Threshold connector doesn't seem to programmatically get the number of routes to see before firing, you also need to set up expression robots that will run when each one of the tasks is not supposed to run. Put a simple expression like int i=0; in them - it looks like they might hang with no expression present at all.

Create a Do Not Run A, Do Not Run B, Do Not Run C expression robots and link them in.

On the link to Do Not Run A, fire on B, C, and BC (whenever A won't be fired).

On the link to Do Not Run B, fire on A, C, and AC (whenever B won't be fired).

On the link to Do Not Run C, fire on A, B, and AB (whenever C won't be fired).

So when you run this and set the routing value to A, A and Do Not Run B and Do Not Run C will all run.

If you set the routing value to AB, A, B and Do Not Run C will all run.

I've attached the export file for a sample workflow that does this. It was built at R10 M020.

Hope it helps you solve your problem.

Top Tags