Operations Specifics
This section describes the specifics about the operations defined by the standard.
Some remarks are common to all operations because they concern the message header:
- The ResponseRequired tag is ignored. To every message there will always be a response because all the OSM operations return values that should be analyzed by the client.
- The ResponseLang tag is ignored. The only supported language is English.
CreateProcess Instance
This operation is used to invoke service and subscriber management (SSM) operations. The process to be executed and the associated arguments are passed via the ContextData tag, as specified in ContextData and ResultData Tags. Some tags are not supported:
If the client wishes to provide such tags, there is no problem, but they are currently not used.
A response is provided to return a value for the OSM operation. If some of the errors specified in Results and the Exception Codes occur, an exception is returned, otherwise a regular response message.
The ObserverKey tag is marked as optional in the standard, but it should always be present in the request message. It is always used to report the completion of the process, even when a transaction does not trigger a workflow, thus returning immediately. The standard also says that the interoperability model of a nested subprocess is used. At this moment, every transaction exists by itself; that is, once it is finished, it cannot be reversed. Thus, these operations cannot be used as subprocesses.
GetProcess InstanceData
The standard specifies a set of properties of a process instance that can be retrieved, but not all of them are supported. A request message can specify any of the allowed values for the ResultDataSet tag; the unsupported ones will be returned as empty tags.
Some of the tags in the response message have special meanings:
- ValidStates—Returns the states specified in 5.3 regardless of the current state of the process instance.
- ResultData—Always returns an empty tag.
- Priority—Always returns the default value of 3. Priorities are not supported.
- LastModified—Returns the creation date because this information is no longer available after the process is closed.
ChangeProcess InstanceState
This message is used in two cases to provoke the:
- Abortion of a process—The target state in the request message is closed.abnormalCompleted.terminated.
- Execution of the transaction—The target state is open.running.
The response message will then reflect that the state was changed to the specified target. Any other target states implicate in an exception of type WF_INVALID_STATE_TRANSITION being thrown.
Process InstanceState Changed
This operation is used to report to the client (as specified by the ObserverKey tag in creation time) that the process has been completed, normally or not. The states reported are the closed ones, as specified in Process States. An empty response should be sent to acknowledge that the message was received and understood. The ResponseRequired tag always contains Yes as value. The return value of the OSM transaction is embedded in the ResultData tag in the case of a closed.completed state change.