> ## 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.

# 关联

> Correlates a message to the process engine to either trigger a message start event or an intermediate message 
catching event. Internally this maps to the engine's message correlation builder methods
`MessageCorrelationBuilder#correlateWithResult()` and `MessageCorrelationBuilder#correlateAllWithResult()`.
For more information about the correlation behavior, see the [Message Events](https://docs.camunda.org/manual/7.22/bpmn20/events/message-events/)
section of the [BPMN 2.0 Implementation Reference](https://docs.camunda.org/manual/7.22/reference/bpmn20/).



## OpenAPI

````yaml POST /message
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:
  /message:
    post:
      tags:
        - Message
      summary: Correlate
      description: >-
        Correlates a message to the process engine to either trigger a message
        start event or an intermediate message 

        catching event. Internally this maps to the engine's message correlation
        builder methods

        `MessageCorrelationBuilder#correlateWithResult()` and
        `MessageCorrelationBuilder#correlateAllWithResult()`.

        For more information about the correlation behavior, see the [Message
        Events](https://docs.camunda.org/manual/7.22/bpmn20/events/message-events/)

        section of the [BPMN 2.0 Implementation
        Reference](https://docs.camunda.org/manual/7.22/reference/bpmn20/).
      operationId: deliverMessage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CorrelationMessageDto'
            examples:
              example-1:
                summary: POST /message
                description: Correlate without result
                value:
                  messageName: aMessage
                  businessKey: aBusinessKey
                  correlationKeys:
                    aVariable:
                      value: aValue
                      type: String
                  processVariables:
                    aVariable:
                      value: aNewValue
                      type: String
                      valueInfo:
                        transient: true
                    anotherVariable:
                      value: true
                      type: Boolean
              example-2:
                summary: POST /message
                description: Correlate with result
                value:
                  messageName: aMessage
                  businessKey: aBusinessKey
                  correlationKeys:
                    aVariable:
                      value: aValue
                      type: String
                  processVariables:
                    aVariable:
                      value: aNewValue
                      type: String
                      valueInfo:
                        transient: true
                    anotherVariable:
                      value: true
                      type: Boolean
                  resultEnabled: true
              example-3:
                summary: POST /message
                description: Correlate with result and variables
                value:
                  messageName: aMessage
                  businessKey: aBusinessKey
                  correlationKeys:
                    aVariable:
                      value: aValue
                      type: String
                  processVariables:
                    aVariable:
                      value: aNewValue
                      type: String
                      valueInfo:
                        transient: true
                    anotherVariable:
                      value: true
                      type: Boolean
                  resultEnabled: true
                  variablesInResultEnabled: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MessageCorrelationResultWithVariableDto'
              examples:
                example-1:
                  summary: Status 200 Response.
                  description: >-
                    The Response content of a status 200. The property
                    `variablesInResultEnabled` in the request body was `false`
                    (Default).
                  value:
                    - resultType: ProcessDefinition
                      execution: null
                      processInstance:
                        links: []
                        id: aProcInstId
                        definitionId: aProcDefId
                        businessKey: aKey
                        caseInstanceId: aCaseInstId
                        ended: false
                        suspended: false
                        tenantId: aTenantId
                example-2:
                  summary: Status 200 Response.
                  description: >-
                    The Response content of a status 200. The property
                    `variablesInResultEnabled` in the request body was `true`.
                  value:
                    - resultType: Execution
                      execution:
                        id: anExecutionId
                        processInstanceId: aProcInstId
                        ended: false
                        tenantId: aTenantId
                      processInstance: null
                      variables:
                        aVariable:
                          value: aNewValue
                          type: String
                          valueInfo:
                            transient: true
                        anotherVariable:
                          value: true
                          type: Boolean
          description: >-
            Request successful. The property `resultEnabled` in the request body
            was `true`.

            The `variables` property is only returned, if the property
            variablesInResultEnable`

            was set to `true` in the request.
        '204':
          description: >-
            Request successful. The property `resultEnabled` in the request body
            was `false` (Default).
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionDto'
          description: >-
            Returned if:

            * no `messageName` was supplied

            * both `tenantId` and `withoutTenantId` are supplied

            * the message has not been correlated to exactly one entity
            (execution or process definition)

            * the variable value or type is invalid, for example if the value
            could not be parsed to an Integer value or the passed variable type
            is not supported.


            See the
            [Introduction](https://docs.camunda.org/manual/7.22/reference/rest/overview/#error-handling)
            for the error response format.
components:
  schemas:
    CorrelationMessageDto:
      type: object
      properties:
        messageName:
          type: string
          nullable: true
          description: The name of the message to deliver.
        businessKey:
          type: string
          nullable: true
          description: >-
            Used for correlation of process instances that wait for incoming
            messages.

            Will only correlate to executions that belong to a process instance
            with the provided business key.
        tenantId:
          type: string
          nullable: true
          description: >-
            Used to correlate the message for a tenant with the given id.

            Will only correlate to executions and process definitions which
            belong to the tenant.

            Must not be supplied in conjunction with a `withoutTenantId`.
        withoutTenantId:
          type: boolean
          nullable: true
          default: false
          description: >-
            A Boolean value that indicates whether the message should only be
            correlated to executions

            and process definitions which belong to no tenant or not. Value may
            only be `true`, as `false`

            is the default behavior.

            Must not be supplied in conjunction with a `tenantId`.
        processInstanceId:
          type: string
          nullable: true
          description: >-
            Used to correlate the message to the process instance with the given
            id.
        correlationKeys:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            Used for correlation of process instances that wait for incoming
            messages.

            Has to be a JSON object containing key-value pairs that are matched
            against process instance variables

            during correlation. Each key is a variable name and each value a
            JSON variable value object with the

            following properties.
        localCorrelationKeys:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            Local variables used for correlation of executions (process
            instances) that wait for incoming messages.

            Has to be a JSON object containing key-value pairs that are matched
            against local variables during correlation.

            Each key is a variable name and each value a JSON variable value
            object with the following properties.
        processVariables:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            A map of variables that is injected into the triggered execution or
            process instance after the message

            has been delivered. Each key is a variable name and each value a
            JSON variable value object with

            the following properties.
        processVariablesLocal:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            A map of local variables that is injected into the execution waiting
            on the message.

            Each key is a variable name and each value a JSON variable value
            object

            with the following properties.
        processVariablesToTriggeredScope:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            A map of variables that is injected into the new scope triggered by
            message correlation.

            Each key is a variable name and each value a JSON variable value
            object

            with the following properties.
        all:
          type: boolean
          nullable: true
          default: false
          description: >-
            A Boolean value that indicates whether the message should be
            correlated to exactly one entity or multiple entities.

            If the value is set to `false`, the message will be correlated to
            exactly one entity (execution or process definition).

            If the value is set to `true`, the message will be correlated to
            multiple executions and a process definition that

            can be instantiated by this message in one go.
        resultEnabled:
          type: boolean
          nullable: true
          default: false
          description: >-
            A Boolean value that indicates whether the result of the correlation
            should be returned or not.

            If this property is set to `true`, there will be returned a list of
            message correlation result objects. Depending on the

            all property, there will be either one ore more returned results in
            the list.


            The default value is `false`, which means no result will be
            returned.
        variablesInResultEnabled:
          type: boolean
          nullable: true
          default: false
          description: >-
            A Boolean value that indicates whether the result of the correlation
            should contain process variables or not.

            The parameter resultEnabled should be set to `true` in order to use
            this it.


            The default value is `false`, which means the variables will not be
            returned.
    MessageCorrelationResultWithVariableDto:
      type: object
      description: >-
        The `processInstance` property only has a value if the resultType is set
        to `ProcessDefinition`.

        The processInstance with the properties as described in the

        [get single
        instance](https://docs.camunda.org/manual/7.22/reference/rest/process-instance/get/)
        method.


        The `execution` property only has a value if the resultType is set to
        `Execution`.

        The execution with the properties as described in the

        [get single
        execution](https://docs.camunda.org/manual/7.22/reference/rest/execution/get/)
        method.
      properties:
        resultType:
          type: string
          nullable: true
          enum:
            - Execution
            - ProcessDefinition
          description: >-
            Indicates if the message was correlated to a message start event or
            an 

            intermediate message catching event. In the first case, the
            resultType is 

            `ProcessDefinition` and otherwise `Execution`.
        processInstance:
          $ref: '#/components/schemas/ProcessInstanceDto'
        execution:
          $ref: '#/components/schemas/ExecutionDto'
        variables:
          type: object
          nullable: true
          additionalProperties:
            $ref: '#/components/schemas/VariableValueDto'
          description: >-
            This property is returned if the `variablesInResultEnabled` is set
            to `true`.

            Contains a list of the process variables. 
    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).
    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)
    ProcessInstanceDto:
      allOf:
        - type: object
          properties:
            id:
              type: string
              nullable: true
              description: The id of the process instance.
            definitionId:
              type: string
              nullable: true
              description: >-
                The id of the process definition that this process instance
                belongs to.
            businessKey:
              type: string
              nullable: true
              description: The business key of the process instance.
            caseInstanceId:
              type: string
              nullable: true
              description: >-
                The id of the case instance associated with the process
                instance.
            ended:
              type: boolean
              nullable: true
              deprecated: true
              description: >-
                A flag indicating whether the process instance has ended or not.
                Deprecated: will always be false!
            suspended:
              type: boolean
              nullable: true
              description: >-
                A flag indicating whether the process instance is suspended or
                not.
            tenantId:
              type: string
              nullable: true
              description: The tenant id of the process instance.
        - $ref: '#/components/schemas/LinkableDto'
    ExecutionDto:
      type: object
      properties:
        id:
          type: string
          nullable: true
          description: The id of the Execution.
        processInstanceId:
          type: string
          nullable: true
          description: >-
            The id of the root of the execution tree representing the process
            instance.
        ended:
          type: boolean
          nullable: true
          description: Indicates if the execution is ended.
        tenantId:
          type: string
          nullable: true
          description: |-
            The id of the tenant this execution belongs to. Can be `null`
            if the execution belongs to no single tenant.
    AnyValue:
      description: |-
        Can be any value - string, number, boolean, array or object.
         **Note**: Not every endpoint supports every type.
    LinkableDto:
      type: object
      properties:
        links:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AtomLink'
          description: >-
            The links associated to this resource, with `method`, `href` and
            `rel`.
    AtomLink:
      type: object
      properties:
        rel:
          type: string
          nullable: true
          description: The relation of the link to the object that belongs to.
        href:
          type: string
          nullable: true
          description: The url of the link.
        method:
          type: string
          nullable: true
          description: The http method.
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````