Previous | UML Classes | Table of Contents | UML Packages | Next |
•
CallAction (from BasicActions ) on page 254
CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation
of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action
is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes
and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the
operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling
behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action.
Upon receipt of the reply transmission, execution of the call operation action is complete.
No additional attributes
• operation: Operation [1] | The operation to be invoked by the action execution. |
Issue 8154 - add subsets constraint
• target: InputPin [1] | The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. {Subsets Action::input} |
[1] The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.
[2] The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be
equal.
[3] The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of
the operation.
[4] The type of the target pin must be the same as the type that owns the operation.
The inputs to the action determine the target object and additional actual arguments of the call.
[1] When all the prerequisites of the action execution are satisfied, information comprising the operation and the argument
pin values of the action execution is created and transmitted to the target object. The target objects may be local or remote.
The manner of transmitting the call, the amount of time required to transmit it, the order in which the transmissions reach
the various target objects, and the path for reaching the target objects are undefined.
[2] When a call arrives at a target object, it may invoke a behavior in the target object. The effect of receiving such call
is specified in Chapter 13, Common Behaviors. Such effects include executing activities and firing state machine transitions.
[3] If the call is synchronous, when the execution of the invoked behavior completes, its return results are transmitted back
as a reply to the calling action execution. The manner of transmitting the reply, the time required for transmission, the
representation of the reply transmission, and the transmission path are unspecified. If the execution of the invoked behavior
yields an exception, the exception is transmitted to the caller where it is reraised as an exception in the execution of the
calling action. Possible exception types may be specified by attaching them to the called Operation using the raisedException
association.
[4] If the call is asynchronous, the caller proceeds immediately and the execution of the call operation action is complete.
Any return or out values from the invoked operation are not passed back to the containing behavior. If the call is synchronous,
the caller is blocked from further execution until it receives a reply from the invoked behavior.
[5] When the reply transmission arrives at the invoking action execution, the return result values are placed on the result
pins of the call operation action, and the execution of the action is complete.
The mechanism for determining the method to be invoked as a result of a call operation is unspecified.
See
CallOperationAction (as specialized) on page 364
See
CallOperationAction (as specialized) on page 364
Calls an operation on a specified target object.
Same as UML 1.5.