# OperationExecutionType (Complex Type)

### Namespace: http://midpoint.evolveum.com/xml/ns/public/common/common-3

Information about an operation executed on an object.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
recordType | property OperationExecutionRecordTypeType | [0,1] | Type of the operation execution record: either simple (recording modification or modifications of a given object) or complex (recording the whole process of e.
realOwner | container OperationExecutionRecordRealOwnerType | [0,1] | Information about operation execution record real owner.
timestamp | property dateTime | [0,1] | When was this information recorded.
operation | property ObjectDeltaOperationType | [0,-1] | The elementary modification operations that were part of the (complex or simple) operation execution and their results.
status | property OperationResultStatusType | [0,1] | Result status of the whole operation (complex or simple).
message | property string | [0,1] | Message connected to the reported result status.
initiatorRef | reference ObjectReferenceType | [0,1] | User that initiated the operation.
taskRef | reference ObjectReferenceType | [0,1] | The task that was used to initiate the operation (if any).
activityPath | property ActivityPathType | [0,1] | Path to the activity whose execution resulted in this record.
channel | property string | [0,1] | Channel through which the operation was initiated.
requestIdentifier | property string | [0,1] | Request identifier related to this (complex or simple) operation.

- ### Items

  - #### recordType

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Display order:

    Type of the operation execution record: either simple (recording modification or modifications of a given object) or complex (recording the whole process of e.g. reconciliation of a given object).

  - #### realOwner

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Information about operation execution record real owner. It is set only in the case that the record belongs to object other than its current holder. (The only reason for such redirection is that real owner has no repository object to attach the record to.)

  - #### timestamp

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    When was this information recorded. It is expected that it was when the operation finished (successfully or not).

  - #### operation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    The elementary modification operations that were part of the (complex or simple) operation execution and their results. However, the content would be reduced e.g. by deletion of modification items and operation result children. The level of reduction could be configurable in the future.

  - #### status

    Flags: RAM,runtime,AVals:8

    Multiplicity: [0,1]

    Display order:

    Result status of the whole operation (complex or simple).

  - #### message

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Message connected to the reported result status.

  - #### initiatorRef

    Flags: RAM

    Multiplicity: [0,1]

    Display order:

    User that initiated the operation. (TODO)

  - #### taskRef

    Flags: RAM

    Multiplicity: [0,1]

    Display order:

    The task that was used to initiate the operation (if any). Only the latest result(s) for a given non-zero task OID will be kept for any object.

  - #### activityPath

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Path to the activity whose execution resulted in this record. Necessary to distinguish between results of various activities within a task. Currently supported only for complex operations.

  - #### channel

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Channel through which the operation was initiated.

  - #### requestIdentifier

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Display order:

    Request identifier related to this (complex or simple) operation. Generally, each complex operation has its own request identifier, and it is used for all enclosed simple operations. However, there might be complex operations without request identifier (if model-level processing is not present).