ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [Solved]Suspending a Process

Post new topic  Reply to topic
 [Solved]Suspending a Process « View previous topic :: View next topic » 
Author Message
Andy
PostPosted: Wed May 14, 2003 3:36 am    Post subject: [Solved]Suspending a Process Reply with quote

Centurion

Joined: 14 May 2003
Posts: 122

Hi,

I am using Active X APIs for actvity implementation and want to suspend the curren process and it's parent process.

In BuildTime, I map Parent _PROCESS value to one of the Subprocess container member say sParentProc, this will give me parent process name in the subprocess.

I am inside the Subprocess now and the activity programming logic I follow is:

1.Get the current process name from container member _PROCESS
2.Get the Parent Process name from container member sParentProc
3. Create a Process Instance List using filter NAME LIKE <_PROCESS> OR NAME LIKE sParentProc
4. Loop through the list and use ProcessInstanceObject.Suspend method to suspend both process instances
5.Delete the Process Instance List

I need comments and suggetions on following:

(a)There should be better method to suspend process through program, in which there is no overhead of creating and deleting Process Instance List.
(b) Is there way to get the Work Item object from Activity Instance object?If yes then the curren process instance object can be set and suspend would be easier.(Activity Instance object dosnt have method to return current process)

Thanks
_________________
Andy


Last edited by Andy on Sun May 18, 2003 9:00 pm; edited 1 time in total
Back to top
View user's profile Send private message
jmac
PostPosted: Wed May 14, 2003 5:33 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Andy:

a) You dont need to store the parent name you can get this from the current instance there is a parentInstance() method. You can issue Suspend DEEP i.e suspend(true) on the Parent and that will also suspend any clhildren

b) you must have access to the workitem object already... Or else I don't understand your explanation... give me more details
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Ratan
PostPosted: Wed May 14, 2003 9:18 am    Post subject: Reply with quote

Grand Master

Joined: 18 Jul 2002
Posts: 1245

Quote:

a) You dont need to store the parent name you can get this from the current instance there is a parentInstance() method. You can issue Suspend DEEP i.e suspend(true) on the Parent and that will also suspend any clhildren


John,

Should the Control Autonomy not set for the child process to suspend if a Parent process in suspended? I think by default the child process ignore suspend request from a parent process.
_________________
-Ratan
Back to top
View user's profile Send private message Send e-mail
jmac
PostPosted: Wed May 14, 2003 9:41 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Ratan:

By default if you Suspend Deep the Parent it will suspend the Child (assuming it is currently running).

The whole issue of these autonomy checkboxes is rather confusing (at least to me, the doc is)
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Ratan
PostPosted: Wed May 14, 2003 9:47 am    Post subject: Reply with quote

Grand Master

Joined: 18 Jul 2002
Posts: 1245

John,

I get it now. I was confused with Supend and Suspend Deep.
_________________
-Ratan
Back to top
View user's profile Send private message Send e-mail
Andy
PostPosted: Wed May 14, 2003 8:35 pm    Post subject: Reply with quote

Centurion

Joined: 14 May 2003
Posts: 122

Quote:
b) you must have access to the workitem object already... Or else I don't understand your explanation... give me more details


John,
I dont have access to workitem object or I dont find a way to access it. But, I am able to get activity instance object using following Active X APIs:

1.strAIOid=MQWorkflowCtrl1.PersistentOidOfActivityInstance
(This returns me Oid string of current activity instance, but there is no API to get Oid of work item.)
2.Set objActivityInstance=MQWorkflowCtrl1.NewActivityInstance
(just setting new empty object)
3.lRC = objActivityInstance.PersistentObject(objExecusionService, strAIOid)
(It would return the actual activity instance object)

According to what I found so far in Active X APIs(Might be I missed something):
(a)Activity Instance object doesnt have any method which would return current workitem object or current process instance object.
(b)Only workitem object has method .ProcessInstance which returns current process instance

Thanks for telling me Suspend Deep option, it will definately help in coding. But still, I need to get current process instance object without creating any list .

Thanks

_________________
Andy
Back to top
View user's profile Send private message
jmac
PostPosted: Thu May 15, 2003 7:29 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

OK... My problem... you are working at an Activity Instance so you only have access to input and output containers. You would need to query (as you already know) to get what you need,
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Andy
PostPosted: Thu May 15, 2003 8:56 pm    Post subject: Reply with quote

Centurion

Joined: 14 May 2003
Posts: 122

Quote:
you are working at an Activity Instance


I am confused now.
I used to think that I am working at workitem which is created for users by MQWF. In other words, there is one Activity Instance and number of Work-Items objecs to be created depends on number of users who can access it. User first access the Work Item which in turn access Activity Instance.

Could you please tell the exact difference between these two?

Even if I am working on Activity Instance, should I have not access to the Process Intance. Why only work-Item should have method ProcessInstance()?

I find many methods for Work Item and Activity instance are similiar.

Thanks
_________________
Andy
Back to top
View user's profile Send private message
jmac
PostPosted: Fri May 16, 2003 7:36 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Andy:

To be 100% accurate you are working at an Activity Implementation which is being run based on a Workitem which was created from the ActivityInstance. When you are using the Fat client (or any time you are using the start() api) you will be working from an ActivityImplementation under a PEA.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » [Solved]Suspending a Process
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.