# ApprovalStageDefinitionType (Complex Type)

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

One "level" (or stage) in the approval process.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
number | property int | [0,1] | Number of this approval stage.
name | property string | [0,1] |
displayName | property string | [0,1] |
description | property string | [0,1] |
approverRef | reference ObjectReferenceType | [0,-1] | Instruction to approve something, by a user (if this points to a User object) or by someone from a group of users (if this points to a Org object; representing all users that belong to that organization).
approverRelation | property QName | [0,-1] | What relation(s) to use when determining approvers? E.
approverExpression | property ExpressionType | [0,-1] | Dynamically specifies approver(s).
evaluationStrategy | property LevelEvaluationStrategyType | [0,1] | Must all approvers at this stage approve the thing (allMustApprove), or first decision is taken as authoritative (firstDecides)?
outcomeIfNoApprovers | property ApprovalLevelOutcomeType | [0,1] | What is the outcome (of this stage) if there are no approvers? E.
groupExpansion | property GroupExpansionType | [0,1] | How should be "groups" (orgs, roles) expanded? Default is "byClaimingWorkItem", i.
formRef | reference ObjectReferenceType | [0,1] | Form to be displayed e.
additionalInformation | property ExpressionType | [0,1] | Additional information for approver.
automaticallyCompleted | property ExpressionType | [0,1] | Expression specifying that this stage should be automatically processed (approved, rejected, skipped).
duration | property duration | [0,1] | Duration of work items created at this stage.
timedActions | container WorkItemTimedActionsType | [0,-1] | What actions are to be applied to work items when given timer(s) occur.

- ### Items

  - #### number

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Number of this approval stage. These should go from 1 to N.

  - #### name

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### displayName

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### description

    Flags: RAM,runtime

    Multiplicity: [0,1]

  - #### approverRef

    Flags: RAM

    Multiplicity: [0,-1]

    Instruction to approve something, by a user (if this points to a User object) or by someone from a group of users (if this points to a Org object; representing all users that belong to that organization).

  - #### approverRelation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    What relation(s) to use when determining approvers? E.g. "approver", "owner", "securityApprover", and so on.

  - #### approverExpression

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Dynamically specifies approver(s). If specified, the expression(s) are evaluated and the result is used as a set of approvers (UserType, OrgType, RoleType, or any combination of them). May be used with approverRef element(s).

  - #### evaluationStrategy

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    Must all approvers at this stage approve the thing (allMustApprove), or first decision is taken as authoritative (firstDecides)?

  - #### outcomeIfNoApprovers

    Flags: RAM,runtime,AVals:3

    Multiplicity: [0,1]

    What is the outcome (of this stage) if there are no approvers? E.g. there are no users that have been assigned a role as an approver; or a user has no managers, etc.

  - #### groupExpansion

    Flags: RAM,runtime,AVals:2

    Multiplicity: [0,1]

    How should be "groups" (orgs, roles) expanded? Default is "byClaimingWorkItem", i.e. they are not expanded at all - their members can claim corresponding work items.

  - #### formRef

    Flags: RAM

    Multiplicity: [0,1]

    Form to be displayed e.g. to present or request additional information. EXPERIMENTAL

  - #### additionalInformation

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Additional information for approver. Will be displayed when work item will be worked on.

  - #### automaticallyCompleted

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Expression specifying that this stage should be automatically processed (approved, rejected, skipped). If the expression returns null, standard processing by human actors is carried out.

  - #### duration

    Flags: RAM,runtime

    Multiplicity: [0,1]

    Duration of work items created at this stage. TODO other time units, like business days?

  - #### timedActions

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    What actions are to be applied to work items when given timer(s) occur. EXPERIMENTAL