> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eorion.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 执行迁移计划

> Executes a migration plan synchronously for multiple process instances. To execute
a migration plan asynchronously, use the
[Execute Migration Plan Async(Batch)](https://docs.camunda.org/manual/7.22/reference/rest/migration/execute-migration-async/)
method.

For more information about the difference between synchronous and asynchronous
execution of a migration plan, please refer to the related section of
[the user guide](https://docs.camunda.org/manual/7.22/user-guide/process-engine/process-instance-migration/#executing-a-migration-plan).



## OpenAPI

````yaml POST /migration/execute
openapi: 3.0.2
info:
  title: ORION Platform REST API
  description: OpenApi Spec for ORION Camunda Platform REST API.
  version: 7.22.6-ee
  license:
    name: Apache License 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: http://{host}:{port}/{contextPath}
    description: The API server for the default process engine
    variables:
      host:
        default: localhost
      port:
        default: '8080'
      contextPath:
        default: engine-rest
  - url: http://{host}:{port}/{contextPath}/engine/{engineName}
    description: The API server for a named process engine
    variables:
      host:
        default: localhost
      port:
        default: '8080'
      contextPath:
        default: engine-rest
      engineName:
        default: default
  - url: '{url}'
    description: The API server with a custom url
    variables:
      url:
        default: ''
security:
  - basicAuth: []
tags:
  - name: Authorization
  - name: Batch
  - name: Condition
  - name: Decision Definition
  - name: Decision Requirements Definition
  - name: Deployment
  - name: Engine
  - name: Event Subscription
  - name: Execution
  - name: External Task
  - name: Filter
  - name: Group
  - name: Historic Activity Instance
  - name: Historic Batch
  - name: Historic Decision Definition
  - name: Historic Decision Instance
  - name: Historic Decision Requirements Definition
  - name: Historic Detail
  - name: Historic External Task Log
  - name: Historic Identity Link Log
  - name: Historic Incident
  - name: Historic Job Log
  - name: Historic Process Definition
  - name: Historic Process Instance
  - name: Historic Task Instance
  - name: Historic User Operation Log
  - name: Historic Variable Instance
  - name: History Cleanup
  - name: Identity
  - name: Incident
  - name: Job
  - name: Job Definition
  - name: Message
  - name: Metrics
  - name: Migration
  - name: Modification
  - name: Process Definition
  - name: Process Instance
  - name: Signal
  - name: Schema Log
  - name: Task
  - name: Task Attachment
  - name: Task Comment
  - name: Task Identity Link
  - name: Task Local Variable
  - name: Task Variable
  - name: Telemetry
  - name: Tenant
  - name: User
  - name: Variable Instance
  - name: Version
externalDocs:
  description: Find out more about ORION Rest API
  url: https://docs.eorion.com
paths:
  /migration/execute:
    post:
      tags:
        - Migration
      summary: Execute Migration Plan
      description: >-
        Executes a migration plan synchronously for multiple process instances.
        To execute

        a migration plan asynchronously, use the

        [Execute Migration Plan
        Async(Batch)](https://docs.camunda.org/manual/7.22/reference/rest/migration/execute-migration-async/)

        method.


        For more information about the difference between synchronous and
        asynchronous

        execution of a migration plan, please refer to the related section of

        [the user
        guide](https://docs.camunda.org/manual/7.22/user-guide/process-engine/process-instance-migration/#executing-a-migration-plan).
      operationId: executeMigrationPlan
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MigrationExecutionDto'
            examples:
              example-1:
                summary: POST `/migration/execute`
                value:
                  migrationPlan:
                    sourceProcessDefinitionId: aProcessDefinitionId1
                    targetProcessDefinitionId: aProcessDefinitionId2
                    instructions:
                      - sourceActivityIds:
                          - aUserTask
                        targetActivityIds:
                          - aUserTask
                      - sourceActivityIds:
                          - anEvent
                        targetActivityIds:
                          - anotherEvent
                        updateEventTrigger: true
                    variables:
                      foo:
                        type: Object
                        value: '[5,9]'
                        valueInfo:
                          objectTypeName: java.util.ArrayList
                          serializationDataFormat: application/json
                  processInstanceIds:
                    - aProcessInstance
                    - anotherProcessInstance
                  processInstanceQuery:
                    processDefinitionId: aProcessDefinitionId1
                  skipCustomListeners: true
      responses:
        '204':
          description: Request successful. This method returns no content.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionDto'
          description: >-
            The request is not valid if one or more of the following statements
            apply:


            * The provided migration plan is not valid, so an exception of type

            `MigrationPlanValidationException` is returned.

            * The provided migration plan is not valid for a specific process

            instance it is applied to, so an exception of type

            `MigratingProcessInstanceValidationException` is returned.

            * In case additional parameters of the request are unexpected, an

            exception of type `InvalidRequestException` is returned.


            See the

            [Introduction](https://docs.camunda.org/manual/7.22/reference/rest/overview/#error-handling)

            for the error response format.
components:
  schemas:
    MigrationExecutionDto:
      type: object
      properties:
        migrationPlan:
          $ref: '#/components/schemas/MigrationPlanDto'
        processInstanceIds:
          type: array
          nullable: true
          items:
            type: string
          description: A list of process instance ids to migrate.
        processInstanceQuery:
          $ref: '#/components/schemas/ProcessInstanceQueryDto'
        skipCustomListeners:
          type: boolean
          nullable: true
          description: >-
            A boolean value to control whether execution listeners should be
            invoked during

            migration.
        skipIoMappings:
          type: boolean
          nullable: true
          description: >-
            A boolean value to control whether input/output mappings should be
            executed during

            migration.
    ExceptionDto:
      title: ExceptionDto
      type: object
      properties:
        type:
          type: string
          nullable: true
          description: An exception class indicating the occurred error.
        message:
          type: string
          nullable: true
          description: A detailed message of the error.
        code:
          type: number
          description: >-
            The code allows your client application to identify the error in an
            automated fashion.

            You can look up the meaning of all built-in codes and learn how to
            add custom codes

            in the [User
            Guide](https://docs.camunda.org/manual/7.22/user-guide/process-engine/error-handling/#exception-codes).
    MigrationPlanDto:
      type: object
      properties:
        sourceProcessDefinitionId:
          type: string
          nullable: true
          description: The id of the source process definition for the migration.
        targetProcessDefinitionId:
          type: string
          nullable: true
          description: The id of the target process definition for the migration.
        instructions:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/MigrationInstructionDto'
          description: >-
            A list of migration instructions which map equal activities. Each

            migration instruction is a JSON object with the following
            properties:
        variables:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            A map of variables which will be set into the process instances'
            scope.

            Each key is a variable name and each value a JSON variable value
            object.
    ProcessInstanceQueryDto:
      type: object
      description: A process instance query which defines a group of process instances
      properties:
        deploymentId:
          type: string
          nullable: true
          description: Filter by the deployment the id belongs to.
        processDefinitionId:
          type: string
          nullable: true
          description: Filter by the process definition the instances run on.
        processDefinitionKey:
          type: string
          nullable: true
          description: Filter by the key of the process definition the instances run on.
        processDefinitionKeyIn:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Filter by a list of process definition keys.

            A process instance must have one of the given process definition
            keys. Must be a JSON array of Strings.
        processDefinitionKeyNotIn:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Exclude instances by a list of process definition keys.

            A process instance must not have one of the given process definition
            keys. Must be a JSON array of Strings.
        businessKey:
          type: string
          nullable: true
          description: Filter by process instance business key.
        businessKeyLike:
          type: string
          nullable: true
          description: >-
            Filter by process instance business key that the parameter is a
            substring of.
        caseInstanceId:
          type: string
          nullable: true
          description: Filter by case instance id.
        superProcessInstance:
          type: string
          nullable: true
          description: >-
            Restrict query to all process instances that are sub process
            instances of the given process instance.

            Takes a process instance id.
        subProcessInstance:
          type: string
          nullable: true
          description: >-
            Restrict query to all process instances that have the given process
            instance as a sub process instance.

            Takes a process instance id.
        superCaseInstance:
          type: string
          nullable: true
          description: >-
            Restrict query to all process instances that are sub process
            instances of the given case instance.

            Takes a case instance id.
        subCaseInstance:
          type: string
          nullable: true
          description: >-
            Restrict query to all process instances that have the given case
            instance as a sub case instance.

            Takes a case instance id.
        active:
          type: boolean
          nullable: true
          description: >-
            Only include active process instances. Value may only be true, as
            false is the default behavior.
        suspended:
          type: boolean
          nullable: true
          description: >-
            Only include suspended process instances. Value may only be true, as
            false is the default behavior.
        processInstanceIds:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Filter by a list of process instance ids. Must be a JSON array of
            Strings.
        withIncident:
          type: boolean
          nullable: true
          description: >-
            Filter by presence of incidents. Selects only process instances that
            have an incident.
        incidentId:
          type: string
          nullable: true
          description: Filter by the incident id.
        incidentType:
          type: string
          nullable: true
          description: >-
            Filter by the incident type. See the User Guide for a list of
            incident types.
        incidentMessage:
          type: string
          nullable: true
          description: Filter by the incident message. Exact match.
        incidentMessageLike:
          type: string
          nullable: true
          description: Filter by the incident message that the parameter is a substring of.
        tenantIdIn:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Filter by a list of tenant ids. A process instance must have one of
            the given tenant ids.

            Must be a JSON array of Strings.
        withoutTenantId:
          type: boolean
          nullable: true
          description: |-
            Only include process instances which belong to no tenant.
            Value may only be true, as false is the default behavior.
        processDefinitionWithoutTenantId:
          type: boolean
          nullable: true
          description: >-
            Only include process instances which process definition has no
            tenant id.
        activityIdIn:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Filter by a list of activity ids.

            A process instance must currently wait in a leaf activity with one
            of the given activity ids.
        rootProcessInstances:
          type: boolean
          nullable: true
          description: >-
            Restrict the query to all process instances that are top level
            process instances.
        leafProcessInstances:
          type: boolean
          nullable: true
          description: >-
            Restrict the query to all process instances that are leaf instances.
            (i.e. don't have any sub instances)
        variables:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/VariableQueryParameterDto'
          description: >-
            A JSON array to only include process instances that have variables
            with certain values.

            The array consists of objects with the three properties `name`,
            `operator` and `value`.

            `name` (String) is the variable name,

            `operator` (String) is the comparison operator to be used and
            `value` the variable value.

            The `value` may be String, Number or Boolean.


            Valid operator values are: `eq` - equal to; `neq` - not equal to;
            `gt` - greater than;

            `gteq` - greater than or equal to; `lt` - lower than; `lteq` - lower
            than or equal to; `like`.
        variableNamesIgnoreCase:
          type: boolean
          nullable: true
          description: |-
            Match all variable names in this query case-insensitively.
            If set to true variableName and variablename are treated as equal.
        variableValuesIgnoreCase:
          type: boolean
          nullable: true
          description: |-
            Match all variable values in this query case-insensitively.
            If set to true variableValue and variablevalue are treated as equal.
        orQueries:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ProcessInstanceQueryDto'
          description: >-
            A JSON array of nested process instance queries with OR semantics.

            A process instance matches a nested query if it fulfills at least
            one of the query's predicates.

            With multiple nested queries, a process instance must fulfill at
            least one predicate of each query (Conjunctive Normal Form).

            All process instance query properties can be used except for:
            `sorting`

            See the [User
            guide](https://docs.camunda.org/manual/7.22/user-guide/process-engine/process-engine-api/#or-queries)
            for more information about OR queries.
        sorting:
          type: array
          nullable: true
          description: Apply sorting of the result
          items:
            type: object
            properties:
              sortBy:
                type: string
                nullable: true
                enum:
                  - instanceId
                  - definitionId
                  - definitionKey
                  - businessKey
                  - tenantId
                description: |-
                  Sort the results lexicographically by a given criterion.
                  Must be used in conjunction with the sortOrder parameter.
              sortOrder:
                type: string
                nullable: true
                enum:
                  - asc
                  - desc
                description: >-
                  Sort the results in a given order. Values may be `asc` for
                  ascending order or `desc` for

                  descending order. Must be used in conjunction with the sortBy
                  parameter.
    MigrationInstructionDto:
      type: object
      properties:
        sourceActivityIds:
          type: array
          nullable: true
          items:
            type: string
          description: The activity ids from the source process definition being mapped.
        targetActivityIds:
          type: array
          nullable: true
          items:
            type: string
          description: The activity ids from the target process definition being mapped.
        updateEventTrigger:
          type: boolean
          nullable: true
          description: >-
            Configuration flag whether event triggers defined are going to be
            updated during migration.
    VariableValueDto:
      type: object
      properties:
        value:
          $ref: '#/components/schemas/AnyValue'
        type:
          type: string
          nullable: true
          description: The value type of the variable.
        valueInfo:
          type: object
          additionalProperties: true
          description: >-
            A JSON object containing additional, value-type-dependent
            properties.

            For serialized variables of type Object, the following properties
            can be provided:


            * `objectTypeName`: A string representation of the object's type
            name.

            * `serializationDataFormat`: The serialization format used to store
            the variable.


            For serialized variables of type File, the following properties can
            be provided:


            * `filename`: The name of the file. This is not the variable name
            but the name that will be used when downloading the file again.

            * `mimetype`: The MIME type of the file that is being uploaded.

            * `encoding`: The encoding of the file that is being uploaded.


            The following property can be provided for all value types:


            * `transient`: Indicates whether the variable should be transient or

            not. See
            [documentation](https://docs.camunda.org/manual/7.22/user-guide/process-engine/variables#transient-variables)
            for more informations.

            (Not applicable for `decision-definition`, `
            /process-instance/variables-async`, and `/migration/executeAsync`
            endpoints)
    VariableQueryParameterDto:
      allOf:
        - type: object
          properties:
            name:
              type: string
              nullable: true
              description: Variable name
        - $ref: '#/components/schemas/ConditionQueryParameterDto'
    AnyValue:
      description: |-
        Can be any value - string, number, boolean, array or object.
         **Note**: Not every endpoint supports every type.
    ConditionQueryParameterDto:
      type: object
      properties:
        operator:
          type: string
          nullable: true
          enum:
            - eq
            - neq
            - gt
            - gteq
            - lt
            - lteq
            - like
            - notLike
          description: >-
            Comparison operator to be used. `notLike` is not supported by all
            endpoints.
        value:
          $ref: '#/components/schemas/AnyValue'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````