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

# Connectors

With the dependency [camunda-connect](https://github.com/camunda/camunda-bpm-platform/tree/7.24.0/connect), the process engine supports simple
connectors. Currently the following connector implementations exist:

<table class="table">
  <tr> <th>Connector</th> <th>ID</th> </tr>
  <tr> <td>REST HTTP</td> <td>http-connector</td> </tr>
  <tr> <td>SOAP HTTP</td> <td>soap-http-connector</td> </tr>
</table>

It is also possible to implement your own custom connector in camunda. For more information about extending connectors please visit the [Connector reference](/reference/connect/extending-connect).

## Configure ASEE Flow Connect

As ASEE Flow Connect is available only partially when using the process engine (check the list below). With a pre-built distribution, ASEE Flow Connect is already preconfigured.

The following `connect` artifacts exist:

* `camunda-connect-core`: a jar that contains only the core Connect classes. The artifact already is available as dependency to the process engine. In addition to `camunda-connect-core`, single connector implementations like `camunda-connect-http-client` and `camunda-connect-soap-http-client` exist. These dependencies should be used when the default connectors have to be reconfigured or when custom connector implementations are used.
* `camunda-connect-connectors-all`: a single jar without dependencies that contains the HTTP and SOAP connectors.
* `camunda-engine-plugin-connect`: a process engine plugin to add Connect to ASEE Flow.

## Maven Coordinates

<Info>
  Please import the [ASEE Flow BOM](/get-started/apache-maven) to ensure correct versions for every ASEE Flow project.
</Info>

### camunda-connect-core

`camunda-connect-core` contains the core classes of Connect. Additionally, the HTTP and SOAP connectors can be added with the dependencies `camunda-connect-http-client` and `camunda-connect-soap-http-client`. These artifacts will transitively pull in their dependencies, like Apache HTTP client. For integration with the engine, the artifact `camunda-engine-plugin-connect` is needed. Given that the BOM is imported, the Maven coordinates are as follows:

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.connect</groupId>
  <artifactId>aseeflow-connect-core</artifactId>
</dependency>
```

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.connect</groupId>
  <artifactId>aseeflow-connect-http-client</artifactId>
</dependency>
```

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.connect</groupId>
  <artifactId>aseeflow-connect-soap-http-client</artifactId>
</dependency>
```

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.bpm</groupId>
  <artifactId>aseeflow-engine-plugin-connect</artifactId>
</dependency>
```

### camunda-connect-connectors-all

This artifact contains the HTTP and SOAP connectors as well as their dependencies. To avoid conflicts with other versions of these dependencies, the dependencies are relocated to different packages. `camunda-connect-connectors-all` has the following Maven coordinates:

```xml theme={null}
<dependency>
  <groupId>org.aseeflow.connect</groupId>
  <artifactId>aseeflow-connect-connectors-all</artifactId>
</dependency>
```

### Configure the Process Engine Plugin

`camunda-engine-plugin-connect` contains a class called `org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin` that can be registered with a process engine using the [plugin mechanism](/user-guide/process-engine/process-engine-plugins). For example, a `bpm-platform.xml` file with the plugin enabled would look as follows:

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.camunda.org/schema/1.0/BpmPlatform"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.org/schema/1.0/BpmPlatform ">
  ...
  <process-engine name="default">
    ...
    <plugins>
      <plugin>
        <class>org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin</class>
      </plugin>
    </plugins>
    ...
  </process-engine>
</bpm-platform>
```

<Info>
  When using a pre-built distribution of ASEE Flow, the plugin is already pre-configured.
</Info>

## Use Connectors

To use a connector, you have to add the ASEE Flow extension element [connector](/reference/bpmn20/custom-extensions/extension-elements#connector). The connector is configured by a unique [connectorId](/reference/bpmn20/custom-extensions/extension-elements#connectorid), which specifies the used connector implementation. The ids of the currently supported connectors can be found at the beginning of this section. Additionally, an [input/output mapping](/user-guide/process-engine/variables#inputoutput-variable-mapping) is used to configure the connector. The required input parameters and the available output parameters depend on the connector implementation. Additional input parameters can also be provided to be used within the connector.

As an example, a shortened configuration of the ASEE Flow SOAP connector implementation is shown. A complete [example](https://github.com/camunda/camunda-bpm-examples/tree/master/servicetask/soap-service) can be found in the [Camunda examples repository](https://github.com/camunda/camunda-bpm-examples) on GitHub.

```xml theme={null}
<serviceTask id="soapRequest" name="Simple SOAP Request">
  <extensionElements>
    <camunda:connector>
      <camunda:connectorId>soap-http-connector</camunda:connectorId>
      <camunda:inputOutput>
        <camunda:inputParameter name="url">
          http://example.com/webservice
        </camunda:inputParameter>
        <camunda:inputParameter name="payload">
          <![CDATA[
            <soap:Envelope ...>
              ... // the request envelope
            </soap:Envelope>
          ]]>
        </camunda:inputParameter>
        <camunda:outputParameter name="result">
          <![CDATA[
            ... // process response body
          ]]>
        </camunda:outputParameter>
      </camunda:inputOutput>
    </camunda:connector>
  </extensionElements>
</serviceTask>
```

A full [example](https://github.com/camunda/camunda-bpm-examples/tree/master/servicetask/rest-service) of the REST connector can also be found in the [Camunda examples repository](https://github.com/camunda/camunda-bpm-examples) on GitHub.
