> 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/connecteurs-generiques.md).

# Connecteurs Génériques

Efalia Process est livré avec un ensemble de **connecteurs Java génériques** couvrant les besoins les plus courants : génération de documents, manipulation de fichiers PDF, gestion des acteurs, intégration LDAP, numérotation automatique, et plus encore.

{% hint style="info" %}
**Configuration dans le Designer**

Pour savoir comment attacher un connecteur à une opération dans le Designer, consultez [Paramétrage des Connecteurs](/documentations/efalia-process/administration/administration-technique/parametrage-connecteurs.md).
{% endhint %}

***

## Tableau de Référence

### Connecteurs Standard

| Connecteur                                                            | Description                                                       |
| --------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [`ActorsOuMembers`](#actorsouomembers)                                | Récupère les acteurs d'une ou plusieurs unités organisationnelles |
| [`ActorsUnitHierarchy`](#actorsunithierarchy)                         | Retourne les unités d'un intervalle hiérarchique                  |
| [`AddReadersFromUo`](#addreadersfromuosameunitactorsasreaders)        | Ajoute les membres d'une UO comme lecteurs                        |
| [`ApiRest`](#apirest)                                                 | Effectue une requête HTTP vers un service REST                    |
| [`AutoNumbering`](#autonumbering)                                     | Génère un identifiant auto-incrémenté                             |
| [`CopyFieldsToChildren`](#copyfieldstofamille)                        | Copie des champs du document père vers ses fils                   |
| [`CopyFieldsToDescendants`](#copyfieldstofamille)                     | Copie des champs vers tous les descendants                        |
| [`CopyFieldsToFather`](#copyfieldstofamille)                          | Copie des champs du fils vers le père                             |
| [`DocxMergeConnector`](#docxmergeconnector)                           | Génère un fichier DOCX depuis un formulaire Process               |
| [`DocxToPdfConnector`](#docxtopdfconnector)                           | Convertit des fichiers DOCX en PDF                                |
| [`MergePdfFiles`](#mergepdffiles)                                     | Fusionne plusieurs PDF en un seul                                 |
| [`PdfMergeConnector`](#pdfmergeconnector)                             | Génère un PDF depuis un formulaire Process                        |
| [`FicheCirculationConnector`](#fichecirculationconnector)             | Génère une fiche de circulation PDF                               |
| [`LaunchOperationOnChildren`](#launchoperationonchildren)             | Déclenche des opérations sur les documents fils                   |
| [`LdapConnector`](#ldapconnector)                                     | Récupère des informations depuis l'annuaire LDAP                  |
| [`SameUnitActorsAsReaders`](#addreadersfromuosameunitactorsasreaders) | Ajoute les acteurs de l'unité courante comme lecteurs             |
| [`ScriptConnector`](#scriptconnector)                                 | Exécute un script Groovy                                          |
| [`SearchUserAttributesConnector`](#searchuserattributesconnector)     | Recherche des attributs utilisateurs dans l'annuaire              |

### Connecteurs d'Événements (Notifications)

| Connecteur                                        | Description                                                     |
| ------------------------------------------------- | --------------------------------------------------------------- |
| [`VelocityMailConnector`](#velocitymailconnector) | Personnalise les notifications email via des templates Velocity |
| [`GroovyMailConnector`](#groovymailconnector)     | Modifie les notifications via scripts Groovy                    |
| [`HTMLMailConnector`](#htmlmailconnector)         | Convertit les notifications texte en HTML                       |
| [`MailConnectorSaveMail`](#mailconnectorsavemail) | Enregistre les emails de notification sur disque                |

***

## Référence Détaillée

### ActorsOuMembers

**Classe :** `com.clog.workey.connectors.ActorsOuMembers`

Retourne dans un champ multivalué les acteurs appartenant aux unités organisationnelles et/ou jouant les rôles spécifiés.

**Règles de combinaison :**

* Si les deux paramètres sont renseignés → intersection (acteurs dans les UOs ET avec les rôles)
* Si un paramètre est vide → il est ignoré
* Si les deux sont vides → tous les acteurs de la base

**Entrées :**

1. DN des unités organisationnelles (multivalué, peut être vide)
2. Noms internes des rôles (multivalué, peut être vide)
3. *(Optionnel)* Propriété LDAP pour le nom à afficher
4. *(Optionnel)* `1` si le résultat alimente un domaine de valeur

**Sortie :** DN des acteurs correspondants (ou couples DN/valeur LDAP si domaine de valeur)

***

### ActorsUnitHierarchy

**Classe :** `com.clog.workey.connectors.ActorsUnitHierarchy`

Retourne les unités situées dans un intervalle hiérarchique donné par rapport à l'unité d'un acteur.

**Entrées :**

1. ID de l'acteur (entier monovalué) — `userId()` pour l'acteur courant
2. Niveau supérieur de l'intervalle (ex : `3`)
3. Niveau inférieur de l'intervalle (ex : `1`)
4. *(Optionnel)* Propriété LDAP du nom à afficher

**Sortie :** Liste des noms internes des unités dans l'intervalle

**Exemple :** Avec niveaux `3` et `1`, retourne toutes les unités du niveau +1 au niveau +3 au-dessus de l'unité de l'acteur.

***

### AddReadersFromUo / SameUnitActorsAsReaders

**`AddReadersFromUo`** (`com.clog.workey.connectors.AddReadersFromUo`) — Ajoute les membres d'une UO spécifiée comme lecteurs du document courant.

* **Entrée :** DN de l'unité organisationnelle (monovalué)

**`SameUnitActorsAsReaders`** (`com.clog.workey.connectors.SameUnitActorsAsReaders`) — Ajoute automatiquement tous les acteurs de l'unité de l'acteur **courant** comme lecteurs.

* **Entrée :** Aucune

***

### ApiRest

**Classe :** `com.clog.workey.connectors.ApiRest`

Effectue une requête HTTP vers un service REST externe. Ce connecteur fait l'objet d'une [documentation dédiée](/documentations/efalia-process/vue-ensemble-api/connecteur-api-rest.md).

***

### AutoNumbering

**Classe :** `com.clog.workey.connectors.AutoNumbering`

Génère un identifiant auto-incrémenté depuis une table de base de données.

**Configuration de la table (MySQL) :**

```sql
CREATE TABLE INCREMENT (
  ID        INT(11) NOT NULL,
  KEY_VALUE TEXT
);
```

**Paramètres système configurables dans `catalina.properties` :**

| Propriété                                               | Description                                        | Valeur par défaut  |
| ------------------------------------------------------- | -------------------------------------------------- | ------------------ |
| `com.clog.workey.connectors.AutoNumbering.datasource`   | Nom de la datasource                               | `workey-incrmt-ds` |
| `com.clog.workey.connectors.AutoNumbering.tableName`    | Nom de la table                                    | `INCREMENT`        |
| `com.clog.workey.connectors.AutoNumbering.idField`      | Colonne de l'ID                                    | `ID`               |
| `com.clog.workey.connectors.AutoNumbering.keyField`     | Colonne de la clé                                  | `KEY_VALUE`        |
| `com.clog.workey.connectors.AutoNumbering.incrementAll` | Ancien comportement (toutes les clés incrémentées) | `false`            |

**Entrée :** Clé à utiliser *(optionnel — pour avoir des compteurs distincts par clé)* **Sortie :** Nouvelle valeur incrémentée

{% hint style="info" %}
Depuis la version 6.11.3, les IDs par clé sont distincts. Sans clé, `NULL` est utilisé. Pour retrouver l'ancien comportement, définissez `AutoNumbering.incrementAll=true`.
{% endhint %}

***

### CopyFieldsToFamille

Trois connecteurs pour la propagation de valeurs entre documents d'une hiérarchie père/fils :

| Connecteur                | Classe                                               | Direction               | Entrée                                          |
| ------------------------- | ---------------------------------------------------- | ----------------------- | ----------------------------------------------- |
| `CopyFieldsToChildren`    | `com.clog.workey.connectors.CopyFieldsToChildren`    | Père → Fils directs     | Liste des noms internes des champs (multivalué) |
| `CopyFieldsToDescendants` | `com.clog.workey.connectors.CopyFieldsToDescendants` | Père → Tous descendants | Liste des noms internes des champs (multivalué) |
| `CopyFieldsToFather`      | `com.clog.workey.connectors.CopyFieldsToFather`      | Fils → Père             | Liste des noms internes des champs (multivalué) |

{% hint style="warning" %}
Les champs doivent porter le **même nom interne** dans le document père et dans le document fils.
{% endhint %}

***

### DocxMergeConnector

**Classe :** `com.clog.workey.connectors.DocxMergeConnector`

Génère un fichier DOCX depuis un formulaire Efalia Process en fusionnant les valeurs des champs dans un modèle Word (.docx).

**Configuration via JSON (depuis Process 6.10.7) :**

```json
{
  "templateDir": "../workey/docx/templates",
  "mergeDir": "../workey/docx/merge",
  "output": "docx",
  "attachmentFilename": "document_genere.docx",
  "hasAttachment": "true"
}
```

**Entrées :**

1. Nom du fichier modèle (ex : `template.docx`)
2. JSON de configuration *(optionnel depuis 6.10.7)*

**Sortie :** Champ pièce jointe contenant le DOCX généré *(optionnel)*

**Dans le modèle Word :** Les champs Process sont référencés avec la syntaxe `${NomChamp}`. Pour les champs multivalués : `${join(", ", fields["Couleurs"])}`.

***

### DocxToPdfConnector

**Classe :** `com.clog.workey.connectors.DocxToPdfConnector`

Convertit un ou plusieurs fichiers DOCX (contenus dans des champs pièces jointes) au format PDF.

**Entrée :** Champs pièces jointes contenant les fichiers DOCX (monovalué ou multivalué) **Sortie :** UUIDs des pièces jointes converties en PDF

***

### MergePdfFiles

**Classe :** `com.clog.workey.connectors.MergePdfFiles`

Fusionne plusieurs fichiers PDF en un seul.

**Entrées :**

1. *(Optionnel)* Configuration JSON (voir ci-dessous)
2. Autant de champs pièce jointe PDF que nécessaire (mono ou multivalués)

**Configuration JSON :**

```json
{
  "prependFiles": ["uuid_pj_entete"],
  "appendFiles": ["uuid_pj_pied"],
  "sortOrder": "asc",
  "mergeMode": "all"
}
```

**Sortie :** Pièce jointe contenant le PDF fusionné

***

### PdfMergeConnector

**Classe :** `com.clog.workey.connectors.PdfMergeConnector`

Génère un fichier PDF depuis le formulaire Efalia Process (rendu du formulaire en PDF).

Consultez [Paramétrage des Connecteurs](/documentations/efalia-process/administration/administration-technique/parametrage-connecteurs.md) pour les détails de configuration.

***

### FicheCirculationConnector

**Classe :** `com.clog.workey.connectors.FicheCirculationConnector`

Génère une fiche de circulation au format PDF récapitulant l'historique du document Process (étapes, acteurs, dates).

***

### LaunchOperationOnChildren

**Classe :** `com.clog.workey.connectors.LaunchOperationOnChildren`

Déclenche une opération modélisée sur les documents fils d'un document père.

**Entrées :**

1. Nom interne du type de document fils
2. Nom interne de l'opération à déclencher
3. *(Optionnel)* Filtre sur l'état des documents fils

***

### LdapConnector

**Classe :** `com.clog.workey.connectors.LdapConnector`

Récupère des informations directement depuis l'annuaire LDAP/Active Directory configuré dans Process.

Consultez [Paramétrage des Connecteurs](/documentations/efalia-process/administration/administration-technique/parametrage-connecteurs.md) pour les détails de configuration et les paramètres de mapping.

***

### ScriptConnector

**Classe :** `com.clog.workey.connectors.ScriptConnector`

Exécute un script **Groovy** au sein d'une opération. Permet d'implémenter une logique métier complexe non couverte par les connecteurs standard.

**Variables disponibles dans le script :**

| Variable   | Type             | Description                              |
| ---------- | ---------------- | ---------------------------------------- |
| `params`   | `List<String>`   | Paramètres d'entrée du connecteur        |
| `document` | `WorkeyDocument` | Document Process courant                 |
| `api`      | `WorkeyApi`      | API Efalia Process                       |
| `logger`   | `Logger`         | Logger Log4j                             |
| `result`   | `List<String>`   | Liste des valeurs de sortie à renseigner |

**Exemple minimal :**

```groovy
// Récupérer le premier paramètre d'entrée
String valeur = params[0]

// Modifier un champ du document
document.setFieldValue("mon_champ", valeur.toUpperCase())

// Retourner une valeur en sortie
result[0] = "Traitement effectué"
```

***

### SearchUserAttributesConnector

**Classe :** `com.clog.workey.connectors.SearchUserAttributesConnector`

Recherche et retourne des informations depuis l'annuaire utilisateurs Efalia Process (attributs LDAP ou propriétés du compte).

***

## Connecteurs d'Événements

Les connecteurs d'événements se configurent sur le **déclencheur** `preNotification` d'une opération. Ils interceptent les emails de notification avant leur envoi.

### VelocityMailConnector

**Classe :** `com.clog.workey.connectors.VelocityMailConnector`

Permet de personnaliser entièrement les emails de notification via des templates **Apache Velocity** (`.vml`).

**Emplacement des templates :** `$WORKEY_DATA/velocity-templates/mail/` **Convention de nommage :** `{NomProcessus}-{NomTypeDocument}-{NomEtat}.vml`

Les templates ont accès aux variables du document Process et à la liste des destinataires.

### GroovyMailConnector

**Classe :** `com.clog.workey.connectors.GroovyMailConnector`

Modifie les notifications (destinataires, sujet, corps) via un script Groovy, offrant une flexibilité maximale.

### HTMLMailConnector

**Classe :** `com.clog.workey.connectors.HTMLMailConnector`

Convertit le type de contenu des emails de notification de `text/plain` à `text/html`, permettant l'utilisation de balises HTML dans les messages.

### MailConnectorSaveMail

**Classe :** `com.clog.workey.connectors.MailConnectorSaveMail`

Enregistre les emails de notification sur le disque du serveur (utile pour débogage ou archivage).

***

Pour aller plus loin :

* [Paramétrage des Connecteurs (guide Designer)](/documentations/efalia-process/administration/administration-technique/parametrage-connecteurs.md)
* [Connecteur API REST](/documentations/efalia-process/vue-ensemble-api/connecteur-api-rest.md)
* [Connecteurs Efalia Doc](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteurs-efalia-doc.md)
* [Contrat Privé](/documentations/efalia-process/vue-ensemble/contrat-prive.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/connecteurs-generiques.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.
