org.enhydra.shark.api.client.wfmodel
Interface WfProcess

All Superinterfaces:
BaseBusinessObject, java.io.Serializable, WfExecutionObject

public interface WfProcess
extends WfExecutionObject

OMG definition: A WfProcess is the performer of a workflow request. All workflow objects that perform work implement this interface. This interface allows work to proceed asynchronously while being monitored and controlled. The WfProcess interface specializes WfExecutionObject interface by adding an operation to start the execution of the process, an operation to obtain the result produced by the process and relationships with WfRequester and WfActivity.

We extended OMG's interface by duplicating methods, and adding additional parameter that represents transaction. If you use methods without SharkTransaction parameter, the transaction will be implicitly created, and if you use it with SharkTransaction parameter you must obey to some rules explained in HowTo documentation.


Method Summary
 WfActivityIterator get_activities_in_state(java.lang.String state)
          This operation is used to get an iterator over WfActivity objects that are in a certain state.
 WfActivityIterator get_iterator_step()
          Zero or more WfActivities are associated with a WfProcess.
 WfActivity[] get_sequence_step(int max_number)
          Zero or more WfActivities are associated with a WfProcess.
 int how_many_step()
          Zero or more WfActivities are associated with a WfProcess.
 boolean is_member_of_step(WfActivity member)
          Zero or more WfActivities are associated with a WfProcess.
 WfProcessMgr manager()
          A process is associated with one WfProcessMgr; the association is established when the WfProcess is generated and cannot be modified.
 WfRequester requester()
          A WfProcess is created (using a WfProcessMgr) by a user or automated resource and associated with a WfRequester.
 java.util.Map result()
          The result produced by the WfProcess.
 void set_requester(WfRequester new_value)
          A WfProcess is created (using a WfProcessMgr) by a user or automated resource and associated with a WfRequester.
 void start()
          This operation is used to initiate enactment of a WfProcess.
 
Methods inherited from interface org.enhydra.shark.api.client.wfmodel.WfExecutionObject
abort, change_state, description, get_iterator_history, get_sequence_history, how_closed, how_many_history, is_member_of_history, key, last_state_time, name, priority, process_context, resume, set_description, set_name, set_priority, set_process_context, state, suspend, terminate, valid_states, while_open, why_not_running, workflow_state
 

Method Detail

requester

public WfRequester requester()
                      throws java.lang.Exception
A WfProcess is created (using a WfProcessMgr) by a user or automated resource and associated with a WfRequester. The WfRequester may be a WfActivity or an adapter for external clients. WfProcess always has one WfRequester; an implementation of the WfM Facility may allow for re-assignment of the WfRequester associated with a WfProcess.

A WfProcess will inform its WfRequester about status changes such as modification of its state and its context using the requesters receive_event operation.

The following operation returns the requester.

Throws:
java.lang.Exception

set_requester

public void set_requester(WfRequester new_value)
                   throws java.lang.Exception,
                          CannotChangeRequester
A WfProcess is created (using a WfProcessMgr) by a user or automated resource and associated with a WfRequester. The WfRequester may be a WfActivity or an adapter for external clients. WfProcess always has one WfRequester; an implementation of the WfM Facility may allow for re-assignment of the WfRequester associated with a WfProcess.

A WfProcess will inform its WfRequester about status changes such as modification of its state and its context using the requesters receive_event operation.

The following operations changes the process requester.

Throws:
java.lang.Exception
CannotChangeRequester

how_many_step

public int how_many_step()
                  throws java.lang.Exception
Zero or more WfActivities are associated with a WfProcess. The association is established when an activity is created as part of the enactment of the WfProcess.

The following operation provide the information about the number of active WfActivity items currently associated with a WfProcess.

Throws:
java.lang.Exception

get_iterator_step

public WfActivityIterator get_iterator_step()
                                     throws java.lang.Exception
Zero or more WfActivities are associated with a WfProcess. The association is established when an activity is created as part of the enactment of the WfProcess.

The following operation returns iterator for qurying associated activities based on some criteria.

Throws:
java.lang.Exception

get_sequence_step

public WfActivity[] get_sequence_step(int max_number)
                               throws java.lang.Exception
Zero or more WfActivities are associated with a WfProcess. The association is established when an activity is created as part of the enactment of the WfProcess.

The following operation returns max_number of WfActivity objects associated with an WfProcess (no matter in which state they are). If max_number is less or eaqual to zero, or it is greater than the number of existing activities, all associated WfActivity objects will be returned.

Throws:
java.lang.Exception

is_member_of_step

public boolean is_member_of_step(WfActivity member)
                          throws java.lang.Exception
Zero or more WfActivities are associated with a WfProcess. The association is established when an activity is created as part of the enactment of the WfProcess.

The following operation returns true if given activity is associated with WfProcess.

Throws:
java.lang.Exception

manager

public WfProcessMgr manager()
                     throws java.lang.Exception
A process is associated with one WfProcessMgr; the association is established when the WfProcess is generated and cannot be modified. The following operation returns the WfProcessMgr associated with the WfProcess.

Throws:
java.lang.Exception

result

public java.util.Map result()
                     throws java.lang.Exception,
                            ResultNotAvailable
The result produced by the WfProcess. In general the result is undefined until the process completes, but some processes may produce intermediate results. A ResultNotAvailable exception is raised when the result cannot be obtained yet.

Throws:
java.lang.Exception
ResultNotAvailable

start

public void start()
           throws java.lang.Exception,
                  CannotStart,
                  AlreadyRunning
This operation is used to initiate enactment of a WfProcess. The state of the process is changed from open.not_running.not_started to open.running.

Throws:
CannotStart - raised when the process cannot be started (e.g., because it is not properly initialized).
AlreadyRunning - raised when the process has already been started.
java.lang.Exception

get_activities_in_state

public WfActivityIterator get_activities_in_state(java.lang.String state)
                                           throws java.lang.Exception,
                                                  InvalidState
This operation is used to get an iterator over WfActivity objects that are in a certain state. The state is an input parameter. In case an invalid state has been specified, the exception InvalidState is raised.

Throws:
java.lang.Exception
InvalidState