> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteurs-efalia-doc.md).

# Connecteurs Efalia Doc

Les **connecteurs Efalia Doc** permettent d'interagir avec la GED Efalia Doc depuis les opérations d'un workflow Process. Ils s'exécutent côté serveur lors du déclenchement d'une opération et utilisent l'API Efalia Doc.

{% hint style="warning" %}
⚠️ **Version requise**

Ces connecteurs requièrent **Efalia Process 6.33+** et **Efalia Doc canari 34+**. Le Plan de Classement doit être synchronisé et les éléments doivent disposer d'IDs externes.

Pour les versions antérieures, consultez [Connecteurs Multigest 9 (hérités)](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteur-multigest.md).
{% endhint %}

***

## Configuration Préalable

Avant d'utiliser les connecteurs, assurez-vous que :

1. L'intégration est configurée (voir [Mise en Œuvre](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre.md))
2. Le Plan de Classement est synchronisé
3. Les éléments utilisés ont des IDs externes définis

***

## Principe des Mappages JSON

Tous les connecteurs Efalia Doc utilisent un **objet JSON de configuration** passé en entrée. Ce JSON définit les correspondances entre les champs Process et les métadonnées Efalia Doc.

**Règles de référencement dans les JSONs :**

* `"attribut_workey"` → nom interne d'un champ du formulaire Process (la valeur du champ sera utilisée)
* `"external_id_..."` → ID externe d'un élément du Plan de Classement Efalia Doc
* Pour concaténer plusieurs champs Process dans une seule métadonnée texte Doc, séparez-les par `;` : `"champ1;champ2": "external_id_meta"`

***

## Agent d'Import depuis une Bannette

**Classe Java :** `com.clog.workey.mgx.agents.ImportMGXAgent`

Cet **agent planifié** scrute une bannette Efalia Doc et crée automatiquement un document Process pour chaque document trouvé.

**Fonctionnement :**

1. L'agent consulte la bannette configurée dans `mgx.bannette.in`
2. Pour chaque document trouvé, un workflow est instancié
3. Le fichier du document Doc est poussé dans le champ pièce jointe Process (`field.attachment`)
4. L'UUID du document Doc est stocké dans le champ Process (`field.uuid`)
5. Le document Doc est déplacé vers la bannette `mgx.bannette.out`

La configuration se fait dans `catalina.properties` — voir [Mise en Œuvre](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre.md).

***

## Connecteurs de Dossier

### DirectoryCreateConnector

**Classe :** `com.clog.workey.mgx.connectors.DirectoryCreateConnector`

Crée un dossier dans une armoire Efalia Doc en utilisant un gabarit et en renseignant ses métadonnées.

**Entrée :** Un champ texte contenant le JSON de configuration **Sortie :** UUID du dossier créé

```json
{
    "gabarit": "id_externe_gabarit_dossier",
    "mapping": {
        "Champ_Process_1": "id_externe_metadata_dossier_1",
        "Champ_Process_2": "id_externe_metadata_dossier_2",
        "Champ1;Champ2": "id_externe_metadata_concatenee"
    },
    "impersonate": false
}
```

***

### DirectoryMetadataUpdaterConnector

**Classe :** `com.clog.workey.mgx.connectors.DirectoryMetadataUpdaterConnector`

Modifie les métadonnées d'un dossier Efalia Doc existant (identifié par son UUID).

**Entrées :**

1. Champ Process contenant l'UUID GED du dossier à modifier
2. Champ texte contenant le JSON de configuration

```json
{
    "mapping": {
        "Champ_Process_1": "id_externe_metadata_dossier_1",
        "Champ_Process_2": "id_externe_metadata_dossier_2"
    },
    "impersonate": false
}
```

{% hint style="info" %}
💡 Seules les métadonnées à modifier sont nécessaires dans le mapping — inutile d'inclure toutes les métadonnées disponibles.
{% endhint %}

***

### DirectorySearchOrCreateConnector

**Classe :** `com.clog.workey.mgx.connectors.DirectorySearchOrCreateConnector`

Recherche un dossier selon les métadonnées fournies. S'il n'existe pas, le crée. Retourne dans tous les cas l'UUID du dossier.

**Entrée :** Un champ texte contenant le JSON de configuration **Sortie :** UUID du dossier existant ou créé

```json
{
    "gabarit": "id_externe_gabarit_dossier",
    "mapping": {
        "Champ_Process_1": "id_externe_metadata_dossier_1",
        "Champ_Process_2": "id_externe_metadata_dossier_2"
    },
    "impersonate": false
}
```

Ce connecteur est souvent utilisé comme **sous-étape** dans d'autres connecteurs pour s'assurer de l'existence d'un dossier de destination.

***

## Connecteurs de Document

### DocumentCreateAndClassifyConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentCreateAndClassifyConnector`

Dépose un ou plusieurs fichiers Process dans une armoire Efalia Doc avec leurs métadonnées.

**Entrées :**

1. Champ Process (pièce jointe, potentiellement multi-valué) contenant les UUIDs des fichiers à déposer
2. Champ texte contenant le JSON de configuration

**Sorties :**

1. Liste des UUIDs des documents créés en GED
2. UUID du dossier GED utilisé

**Cas 1 — Dépôt simple avec métadonnées communes :**

```json
{
    "gabarit": "id_externe_gabarit_document",
    "mapping": {
        "Champ_Titre": "id_externe_meta_titre",
        "Champ_Date": "id_externe_meta_date"
    },
    "impersonate": false
}
```

**Cas 2 — Dépôt dans un dossier existant (UUID connu) :**

```json
{
    "gabarit": "id_externe_gabarit_document",
    "mapping": {
        "Champ_Titre": "id_externe_meta_titre"
    },
    "dossier": {
        "uuid": "Champ_UUID_Dossier"
    },
    "impersonate": false
}
```

**Cas 3 — Dépôt dans un dossier existant ou à créer (recherche par gabarit + métadonnées) :**

```json
{
    "gabarit": "id_externe_gabarit_document",
    "mapping": {
        "Champ_Titre": "id_externe_meta_titre"
    },
    "dossier": {
        "gabarit": "id_externe_gabarit_dossier",
        "mapping": {
            "Champ_Client": "id_externe_meta_client_dossier"
        }
    },
    "impersonate": false
}
```

**Cas 4 — Dépôt de plusieurs fichiers avec métadonnées individuelles (tableau dynamique) :**

```json
{
    "gabarit": "id_externe_gabarit_document",
    "document": "colonne_uuid_tableau_dynamique",
    "mapping": {
        "colonne_titre_tableau": "id_externe_meta_titre",
        "Champ_Commun": "id_externe_meta_commune"
    },
    "impersonate": false
}
```

***

### DocumentClassifyConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentClassifyConnector`

Classe dans une armoire un ou plusieurs documents présents dans une bannette Efalia Doc.

**Entrées :**

1. Champ Process (potentiellement multi-valué) contenant les UUIDs GED des documents en bannette
2. Champ texte contenant le JSON de configuration

```json
{
    "gabarit": "id_externe_gabarit_document",
    "mapping": {
        "Champ_Process_1": "id_externe_meta_doc_1"
    },
    "dossier": {
        "gabarit": "id_externe_gabarit_dossier",
        "mapping": {
            "Champ_Client": "id_externe_meta_dossier"
        }
    },
    "impersonate": false
}
```

***

### DocumentChildsCreateAndClassifyConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentChildsCreateAndClassifyConnector`

Dépose en GED les documents contenus dans les documents fils d'un processus parent. À modéliser sur le document **père** après resynchronisation avec les fils.

**Entrées (sur le document père) :**

1. Type de document enfant à traiter
2. Liste des états des documents enfants concernés (multi-valué)
3. Configuration JSON

```json
{
    "document": "Champ_PJ_Fils",
    "gabarit": "id_externe_gabarit_document_ged",
    "mapping": {
        "Champ_Fils_1": "id_externe_meta_doc_1",
        "Champ_Pere_2": "id_externe_meta_doc_2"
    },
    "dossier": {
        "gabarit": "id_externe_gabarit_dossier",
        "mapping": {
            "Champ_Pere_Client": "id_externe_meta_dossier"
        }
    },
    "impersonate": false
}
```

**Sorties :**

1. Liste des UUIDs des documents créés en GED
2. UUID du dossier GED utilisé

***

### DocumentImportContentToAttachmentConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentImportContentToAttachmentConnector`

Télécharge un document depuis Efalia Doc pour le stocker comme pièce jointe dans Process (permettant ainsi de le modifier dans le workflow).

**Entrées :**

1. Champ Process contenant l'UUID GED du fichier à récupérer
2. Nom de fichier souhaité avec extension *(optionnel)*
3. JSON de configuration *(optionnel, pour `impersonate`)*

**Sortie :** UUID de la pièce jointe créée dans Process

***

### DocumentMetadataUpdaterConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentMetadataUpdaterConnector`

Modifie les métadonnées d'un document Efalia Doc existant.

**Entrées :**

1. Champ Process contenant l'UUID GED du document
2. JSON de configuration

```json
{
    "mapping": {
        "Champ_Process_1": "id_externe_meta_doc_1",
        "Champ_Process_2": "id_externe_meta_doc_2"
    },
    "impersonate": false
}
```

***

### DocumentUpdateBinaryConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentUpdateBinaryConnector`

Met à jour le contenu binaire d'un ou plusieurs documents GED à partir des pièces jointes Process.

**Entrées :**

1. Champ contenant les UUIDs GED des fichiers à remplacer
2. Champ pièce jointe Process contenant les nouvelles versions
3. JSON de configuration *(optionnel)*

{% hint style="warning" %}
⚠️ Le nombre d'éléments dans les deux premiers champs doit être identique, sinon le connecteur ne s'exécute pas.
{% endhint %}

***

### DocumentMoveConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentMoveConnector`

Déplace des documents d'une bannette source vers une bannette de destination dans Efalia Doc.

**Entrées :**

1. Champ Process contenant l'UUID GED de la bannette source
2. Champ Process contenant l'UUID GED de la bannette de destination
3. JSON de configuration *(optionnel)*

***

### DocumentReclassifyConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentReclassifyConnector`

Reclasse un document vers un autre dossier de destination dans Efalia Doc.

**Entrées :**

1. UUID GED du document à reclasser
2. UUID GED du dossier de destination
3. JSON de configuration *(optionnel)*

***

### DocumentLinkConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentLinkConnector`

Attache une liste de documents Efalia Doc à l'instance de workflow courante.

**Entrée :** Champ Process contenant les UUIDs GED des documents à attacher

***

### DocumentUnlinkConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentUnlinkConnector`

Détache des documents Efalia Doc précédemment attachés à un workflow.

**Entrée :** Champ contenant les UUIDs GED des documents à détacher

***

### DocumentLockConnector / DocumentUnlockConnector

**Classe :** `com.clog.workey.mgx.connectors.DocumentLockConnector` / `DocumentUnlockConnector`

Verrouillent / déverrouillent des documents dans Efalia Doc pour en contrôler l'accès pendant le traitement.

***

## Tableau Récapitulatif

| Connecteur                                   | Action                           | Sortie       |
| -------------------------------------------- | -------------------------------- | ------------ |
| `DirectoryCreateConnector`                   | Créer un dossier                 | UUID dossier |
| `DirectoryMetadataUpdaterConnector`          | Modifier métadonnées dossier     | —            |
| `DirectorySearchOrCreateConnector`           | Chercher ou créer un dossier     | UUID dossier |
| `DocumentCreateAndClassifyConnector`         | Déposer fichiers en armoire      | UUIDs docs   |
| `DocumentClassifyConnector`                  | Classer depuis bannette          | UUID dossier |
| `DocumentChildsCreateAndClassifyConnector`   | Déposer fichiers des fils        | UUIDs docs   |
| `DocumentImportContentToAttachmentConnector` | Télécharger doc GED → PJ Process | UUID PJ      |
| `DocumentMetadataUpdaterConnector`           | Modifier métadonnées document    | —            |
| `DocumentUpdateBinaryConnector`              | Mettre à jour contenu fichier    | —            |
| `DocumentMoveConnector`                      | Déplacer entre bannettes         | —            |
| `DocumentReclassifyConnector`                | Reclasser vers un dossier        | UUID doc     |
| `DocumentLinkConnector`                      | Attacher docs au workflow        | —            |
| `DocumentUnlinkConnector`                    | Détacher docs du workflow        | —            |
| `DocumentLockConnector`                      | Verrouiller documents            | —            |
| `DocumentUnlockConnector`                    | Déverrouiller documents          | —            |

***

Pour aller plus loin :

* [Configuration Avancée (impersonate, propriété Clé d'API)](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/configuration-avancee.md)
* [Mise en Œuvre](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre.md)
* [Dépannage](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/troubleshooting.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteurs-efalia-doc.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
