Author |
Message
|
MaheshPN |
Posted: Thu Oct 14, 2004 7:46 am Post subject: Join problem |
|
|
 Master
Joined: 21 May 2003 Posts: 245 Location: Charlotte, NC
|
Hi Guys,
I have a situation where, activity A will start the Activity B and/or Activity C depending on the value. Activity D should start when one of them completes. When both the activities B and C are in the ready state and activity C finishes first, is there any way we can start the activity D?
Right now, it will not start until both the activities (B & C) finish.
Let me know your thoughts.
Thanks,
-Mahesh |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 7:53 am Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
For Activity D , put condition
Code: |
"Atleast one incoming connector true" |
_________________ CHF  |
|
Back to top |
|
 |
MaheshPN |
Posted: Thu Oct 14, 2004 8:28 am Post subject: |
|
|
 Master
Joined: 21 May 2003 Posts: 245 Location: Charlotte, NC
|
Well,
Thats what I thought. Thats the default setting. Thats not helping out .
Thanks,
-Mahesh |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 8:54 am Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
Well, Now I understand what you are trying to do.
You want to start D even before B finishes (C already finished). _________________ CHF  |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 9:10 am Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
It is my opinion that, by Workflow design itself, if you have control connectors to D from B and C, you cannot achieve what you are trying to do.
I am thinking of a turnaround solution for this. This may not work for you.
You have 4 activities A, B, C, D. Put control connectors from A to B, A to C, and A to D. DO NOT add any transition condition from A to D. DO NOT put control connectors from B to D and also from C to D.
In runtime, as soon as A finishes Workitems will be created for D and depending on transition conditions for B and C also be created. Now you could start D anytime you want independent of the state of B and C. As soon as anyone of B or C finishes , issue a start on D.
This solution may be inefficient and may not work for you. This is my opinion only. _________________ CHF  |
|
Back to top |
|
 |
MaheshPN |
Posted: Thu Oct 14, 2004 11:02 am Post subject: |
|
|
 Master
Joined: 21 May 2003 Posts: 245 Location: Charlotte, NC
|
Thanks for your Idea. As you said, thats going to create the activity D as parallel activity. I want that to come in sequece after B and/or C.
May be I need to look for some other way of achieving it.
Thanks,
-Mahesh |
|
Back to top |
|
 |
vennela |
Posted: Thu Oct 14, 2004 11:47 am Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
There is no easy way to acheive what you are trying to do.
Code: |
/ ---- B----- \
A X2
\ --- C ----/
\
\ ------ X1 ----- D
|
X1 and X2 are UPES activities. X1 is synchronous. X2 is asynchronous.
There is no program assigned for X1
X2 should do the following.
Get the process Instance
Check if this particular process instance has already been served.
If NOT
GET the message from X1 for this process instance and reply
else
discard the message
fi |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 12:13 pm Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
vennela wrote: |
X2 should do the following.
|
I am missing something here. Even if X2 wants to do that job, UPES queue for X2 will get the message only after B and C finishes. _________________ CHF  |
|
Back to top |
|
 |
vennela |
Posted: Thu Oct 14, 2004 12:19 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Well I was on a conference call while posting this
You can change it to
Code: |
/ ---- B----- X2
A
\ --- C ---- X2
\
\ ------ X1 ----- D
|
[/code] |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 12:30 pm Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
Code: |
/ ---- B
A
\ --- C
\
\ ------ X1 ----- D
|
X1 should be synchronous.
X1 should do the following:
Get the current process instance.
Get the activity instances B and C.
Loop a query for states of Avtivity instances B and C until one of the states is in Finished.
Then reply back to WF. _________________ CHF  |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 12:31 pm Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
Well, Vennela I guess we two are working on this at the same time in the same way  _________________ CHF  |
|
Back to top |
|
 |
vennela |
Posted: Thu Oct 14, 2004 12:44 pm Post subject: |
|
|
 Jedi Knight
Joined: 11 Aug 2002 Posts: 4055 Location: Hyderabad, India
|
Quote: |
Loop a query for states of Avtivity instances B and C until one of the states is in Finished.
|
If B and C are not being worked on for 6 months then what happens. Your program will keep looping for 6 months??????? |
|
Back to top |
|
 |
CHF |
Posted: Thu Oct 14, 2004 12:55 pm Post subject: |
|
|
 Master
Joined: 16 Dec 2003 Posts: 297
|
I agree that your solution is the best approach. I was mentioning the solution, not the best solution  _________________ CHF  |
|
Back to top |
|
 |
jmac |
Posted: Fri Oct 15, 2004 5:31 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
MaheshPN wrote: |
Well,
Thats what I thought. Thats the default setting. Thats not helping out .
Thanks,
-Mahesh |
Just a point of information here.... A control connector is a 3 state object ith can be TRUE, FALSE, or UNEVALUATED. A control connector stays in an UNEVALUATED state until the source activity completes. Navigation TO an activity can never take place if any control connector is in an UNEVALUATED state.
I never tried Vennys solution, but it looks quite interesting. let me know if you have luck with this solution.
Thanks _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
|