|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
[Solved]Auto-suspend from a UPES / WMQI |
« View previous topic :: View next topic » |
Author |
Message
|
nwhi |
Posted: Thu Dec 19, 2002 6:28 am Post subject: [Solved]Auto-suspend from a UPES / WMQI |
|
|
Apprentice
Joined: 19 Dec 2002 Posts: 25 Location: UK
|
I'm just considering the best (easiest, most reliable, flexible) way to achieve an 'auto-suspend' function from within a process that consists of purely of UPES and NOOP activities.
To explain further, our architecture effectively only uses MQWF for backend application control - i.e. application based rather than people based WF. Any interfaces are exclusively via XML over MQ, using WMQI.
A new requirement is to suspend a process until a specific date/time, then continue processing.
One obvious option is to use an UPES activity that does nothing but which has an expiry duration 'from container' and have a previous WMQI activity work out the relative date/time. However, the use of an expiry time with a dummy activity rather than a true suspend has other implications (e.g. viewing the true status of a process, notification times, etc.)
Does anyone have any ideas of how to achieve the auto-suspend from WMQI?
For further thought is how to also achieve a 'Cancel process' request whilst it is suspended? Other products I have worked with allow you to modfiy the suspend date/time and specify a state to unsuspend into, when the date / time comes (if not immediately).
Any help is much appreciated.
[PS. Thanks for running the forum, John] _________________ Nick Whittle
IBM Certified Solutions Designer -
WebSphere MQ Workflow V3.4
MQSolutions (UK) Ltd |
|
Back to top |
|
 |
jmac |
Posted: Thu Dec 19, 2002 6:39 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Nick:
I am not sure if this fits for you, but assuming you are using V332, have a look at the XML message ProcessInstanceSuspend. This allows you to pass an XML message to MQWF that can optionally contain a Date/Time. Since this is a new facility, I have not tried this (the Date/Time option) but I can say that the Suspend works fine. Also, have a look at the ProcessInstanceTerminate message, this would allow you to kill the instance.
Quote: |
[PS. Thanks for running the forum, John] |
It's Brandon who is to be thanked. I really don't do anything other than mark problems solved. _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
nwhi |
Posted: Thu Dec 19, 2002 7:35 am Post subject: |
|
|
Apprentice
Joined: 19 Dec 2002 Posts: 25 Location: UK
|
Of course, I did check the manuals before posting the question. On re-examination I realise I was using the v3.3 manuals .... Have downloaded the new one.
Yes, ProcessInstanceSuspend is exactly what I want. Thanks!
ProcessInstanceRestart also looks interesting ... but back to the second question on main post:
Ideas for how to cancel the suspension in such a way as to route down a particular branch of the flow? It would also be nice to be able to modify the suspend date/time but we're considering using elements of the webclient to achieve maintenance of suspends.
I suppose ProcessInstanceTerminate might do the job, seeing as the only reason for taking a specific route was to record the cancellation and perhaps trigger an email to be sent. It would be nice to keep the email trigger from within the workflow. _________________ Nick Whittle
IBM Certified Solutions Designer -
WebSphere MQ Workflow V3.4
MQSolutions (UK) Ltd |
|
Back to top |
|
 |
jmac |
Posted: Thu Dec 19, 2002 7:50 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Quote: |
Ideas for how to cancel the suspension in such a way as to route down a particular branch of the flow? It would also be nice to be able to modify the suspend date/time but we're considering using elements of the webclient to achieve maintenance of suspends. |
Nick:
The problem here is that what is suspended is the ProcessInstance, but what you need to route is the Workitems. I am not certain you can do this. I would need to understand a lot more about your process. For instance, will it always be suspended at the same point? Or coud it be suspended anywhere?
Hopefully someone else will have some ideas for you... sorry _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
nwhi |
Posted: Thu Dec 19, 2002 11:52 am Post subject: |
|
|
Apprentice
Joined: 19 Dec 2002 Posts: 25 Location: UK
|
Ahhhh, I fell into the trap of thinking of a particular work item being suspended, but perhaps may be forgiven as it is the 'auto-suspend' activity that will be doing the actual suspend at a predefined point in the flow. Interestingly many people I teach also think of work items being suspended - I note the mistake being made at least once before in this forum. Maybe it's more natural for people to think of suspending things at set places in a process.
The flow in question can be thought of as a utility flow, designed to be used as a subflow within another main flow (where certain parts of the main flow should only occur on set date/times), or as precursor to a main flow (where the main flow is to perform a transaction at a future date/time).
Anyway, your answer is concise as ever John, and leads me to the conclusions that it is not possible to change any anything (i.e. container data) whilst a process is suspended, because there aren't any activites actually running. The process is, as it should be thought of, 'frozen'.
However, since the suspend will always be at a distinct point (contained within the utility subflow), I can add another post-suspend activity to check for a cancellation request by way of retrieving a value from a database table. What a shame the global data container isn't a two-way interface!.
All that is left is to arrange for the cancellation request to unsuspend the process. This should be possible as the request is manually generated and will almost certainly be from some sort of 'future dated transaction view/maintenance' web page. We're intending using components of the web client so I imagine we'll be able to set the 'cancellation request' value in a database table then unsuspend the process under-the-covers. Unless you can think of any easier way? _________________ Nick Whittle
IBM Certified Solutions Designer -
WebSphere MQ Workflow V3.4
MQSolutions (UK) Ltd |
|
Back to top |
|
 |
jmac |
Posted: Thu Dec 19, 2002 12:03 pm Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Nick:
A common problem, thinking that the workitem is suspended and not the Instance. Of course MQWF doesn't help here by having a workitem state of suspended!
Good Luck _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
sshaker |
Posted: Wed Jan 15, 2003 10:12 am Post subject: |
|
|
 Disciple
Joined: 20 Sep 2002 Posts: 185
|
hi
interesting discussion..
i'd like to add on the requirement of sending a mail.. we tried sending a mail once an activity is completed .. it works fine.. from a custom web client (jsp) .. it should be possible to do the same in other scenarios.. like cancellation..
regards
shaker _________________ shaker |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|