> 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/agents-multigest-v2.md).

# Agents Multigest v2

{% hint style="info" %}
**Contexte**

Les connecteurs et agents Multigest v2 constituent une alternative aux [Connecteurs Efalia Doc](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteurs-efalia-doc.md) pour les installations utilisant Multigest comme GED. Ils se configurent directement dans le Designer, sans fichier JSON global, chaque connecteur étant autonome avec ses propres paramètres.
{% endhint %}

***

## Principe de Fonctionnement

### Résolution des valeurs dans les JSON dynamiques

Dans les paramètres JSON fournis aux connecteurs, les valeurs sont résolues selon la règle suivante :

* Si la valeur correspond au **nom interne d'un champ** du formulaire Process, la valeur de ce champ est utilisée
* Pour passer une **valeur littérale** (non liée à un champ), préfixez-la du caractère `#`

**Exemple :**

```json
{
  "NOM": "champ_nom_client",
  "STATUT": "#Validé"
}
```

→ `NOM` recevra la valeur du champ Process `champ_nom_client` → `STATUT` recevra la valeur littérale `Validé`

### Gestion de l'utilisateur

Chaque connecteur accepte un paramètre **user** (login de l'utilisateur Multigest). Si ce paramètre est vide ou non renseigné, le connecteur utilisera l'utilisateur configuré dans l'administration embarquée (compte de service ou utilisateur connecté).

***

## Connecteurs de Dossier

### GedDossierCreate

**Classe :** `com.clog.workey.mg.connectors.v2.GedDossierCreate`

Crée un dossier dans une armoire Multigest.

**Paramètres en entrée :**

| Paramètre    | Obligatoire | Description                                                              |
| ------------ | ----------- | ------------------------------------------------------------------------ |
| `armoire`    | ✅           | Nom physique de l'armoire                                                |
| `user`       | ✅           | Login de l'utilisateur Multigest                                         |
| `properties` | ✅           | JSON dynamique des propriétés du dossier                                 |
| `force`      | ⬜           | Force la création si dossier existant (`true`/`false`, défaut : `false`) |

```json
{
  "UUID": "champ_uuid_dossier",
  "NOM_CLIENT": "champ_nom",
  "REFERENCE": "#REF-2024"
}
```

**Sortie :** `folderId` — identifiant du dossier créé

***

### GedDossierUpdate

**Classe :** `com.clog.workey.mg.connectors.v2.GedDossierUpdate`

Modifie les métadonnées d'un dossier existant dans une armoire.

**Paramètres en entrée :**

| Paramètre    | Obligatoire | Description                                            |
| ------------ | ----------- | ------------------------------------------------------ |
| `armoire`    | ✅           | Nom physique de l'armoire                              |
| `user`       | ✅           | Login de l'utilisateur Multigest                       |
| `query`      | ✅           | JSON de ciblage du dossier (propriété identificatrice) |
| `properties` | ✅           | JSON dynamique des métadonnées à modifier              |

```json
// query — pour cibler le dossier
{
  "UUID": "champ_uuid_dossier"
}

// properties — métadonnées à mettre à jour
{
  "NOM": "champ_nom",
  "PRENOM": "champ_prenom",
  "STATUT": "#Traité"
}
```

**Sortie :** `retCode` — code retour du traitement

***

### GedDossierExist

**Classe :** `com.clog.workey.mg.connectors.v2.GedDossierExist`

Teste l'existence d'un dossier dans une armoire Multigest.

**Paramètres en entrée :**

| Paramètre | Obligatoire | Description                      |
| --------- | ----------- | -------------------------------- |
| `armoire` | ✅           | Nom physique de l'armoire        |
| `user`    | ✅           | Login de l'utilisateur Multigest |
| `query`   | ✅           | JSON de ciblage du dossier       |

```json
{
  "UUID": "champ_uuid_dossier"
}
```

**Sortie :** `retCode` — identifiant du dossier si existant, code d'erreur sinon

***

## Connecteurs de Document

### GedImporterDocument

**Classe :** `com.clog.workey.mg.connectors.v2.GedImporterDocument`

Crée un contenu (document) dans un dossier Multigest.

**Paramètres en entrée :**

| Paramètre    | Obligatoire | Description                                                 |
| ------------ | ----------- | ----------------------------------------------------------- |
| `armoire`    | ✅           | Nom physique de l'armoire                                   |
| `user`       | ✅           | Login de l'utilisateur Multigest                            |
| `query`      | ✅           | JSON de ciblage du dossier cible                            |
| `attachment` | ✅           | Composant Pièce Jointe Process contenant le fichier à créer |
| `sd`         | ✅           | Dossier cible dans le plan de classement                    |
| `ssd`        | ✅           | Sous-dossier cible dans le plan de classement               |
| `nomFile`    | ✅           | Nom du document dans le plan de classement                  |

```json
// query — pour cibler le dossier
{
  "UUID": "champ_uuid_dossier"
}
```

**Sortie :** `idDoc` — identifiant du document créé

***

### GedDocumentMdatasUpdate

**Classe :** `com.clog.workey.mg.connectors.v2.GedDocumentMdatasUpdate`

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

**Paramètres en entrée :**

| Paramètre | Obligatoire | Description                               |
| --------- | ----------- | ----------------------------------------- |
| `armoire` | ✅           | Nom physique de l'armoire                 |
| `user`    | ✅           | Login de l'utilisateur Multigest          |
| `idDoc`   | ✅           | Identifiant du document Multigest         |
| `mapping` | ✅           | JSON dynamique des métadonnées à modifier |

```json
{
  "NOM": "champ_nom",
  "PRENOM": "champ_prenom",
  "DATE_VALIDATION": "champ_date_val"
}
```

**Sortie :** `retCode` — `1` si succès, code erreur sinon

***

### GedDocumentDownload

**Classe :** `com.clog.workey.mg.connectors.v2.GedDocumentDownload`

Télécharge un document Multigest vers un composant Pièce Jointe Process.

**Paramètres en entrée :**

| Paramètre | Obligatoire | Description                                     |
| --------- | ----------- | ----------------------------------------------- |
| `armoire` | ✅           | Nom physique de l'armoire                       |
| `user`    | ✅           | Login de l'utilisateur Multigest                |
| `idDoc`   | ✅           | Identifiant du document Multigest à télécharger |

**Sortie :** `attachment` — composant Pièce Jointe contenant le document récupéré

***

### GedDocumentStreamUpdate

**Classe :** `com.clog.workey.mg.connectors.v2.GedDocumentStreamUpdate`

Met à jour le contenu binaire d'un document Multigest depuis un composant Pièce Jointe Process.

**Paramètres en entrée :**

| Paramètre    | Obligatoire | Description                                                 |
| ------------ | ----------- | ----------------------------------------------------------- |
| `user`       | ✅           | Login de l'utilisateur Multigest                            |
| `idDoc`      | ✅           | Identifiant du document Multigest à mettre à jour           |
| `attachment` | ✅           | Composant Pièce Jointe Process contenant le nouveau fichier |

**Sortie :** `retCode` — `1` si succès, code erreur sinon

***

## Agent Planifié : CreateFolderFromInboxes

**Classe :** `com.clog.workey.mg.agents.v2.CreateFolderFromInboxes`

Cet **agent planifié** scrute une ou plusieurs bannettes Multigest, crée un dossier GED pour chaque document trouvé, puis instancie un processus Efalia Process associé.

**Fonctionnement :**

1. L'agent consulte les bannettes configurées dans `inboxIds`
2. Pour chaque document trouvé dans une bannette :
   * Un dossier Multigest est créé dans l'armoire cible
   * Le fichier est classé selon le chemin `classifying`
   * Un document Efalia Process est créé via l'API
   * L'ID du dossier Multigest est stocké dans le champ `workeyFieldNameTarget`

### Paramètres de l'agent

| Paramètre               | Description                                                                     |
| ----------------------- | ------------------------------------------------------------------------------- |
| `inboxIds`              | IDs des bannettes à scanner, séparés par `\|` (ex : `1\|47\|7`)                 |
| `folderKeyName`         | Nom de la propriété Multigest utilisée pour identifier le dossier (ex : `UUID`) |
| `armoire`               | Nom physique de l'armoire cible                                                 |
| `classifying`           | Chemin cible dans le plan de classement (ex : `Annexes/Archives/Document`)      |
| `workeyApiUrl`          | URL de l'API Efalia Process (ex : `http://workey/api`)                          |
| `workeyProcessDNames`   | Noms internes du processus cible (format : `Processus/TypeDocument/Role`)       |
| `workeyDocumentState`   | État initial du document créé dans Process                                      |
| `workeyFieldNameTarget` | Nom interne du composant MG Folder cible dans le formulaire                     |
| `workeyApiLogin`        | Login utilisé pour créer le document via l'API Process                          |
| `workeyApiPassword`     | Mot de passe de l'utilisateur API Process                                       |
| `mapping`               | JSON des métadonnées Multigest à valoriser (valeurs littérales uniquement)      |
| `user`                  | Utilisateur Multigest utilisé pour les opérations GED                           |

### Exemple de mapping

```json
{
  "STATUT": "#En cours",
  "SOURCE": "#Import automatique"
}
```

{% hint style="warning" %}
**Configuration de l'agent**

L'agent `CreateFolderFromInboxes` se configure dans la console d'administration d'Efalia Process, section **Agents planifiés**. Définissez la fréquence d'exécution selon le volume de documents attendus (ex : toutes les 5 minutes pour un volume élevé).
{% endhint %}

***

## Tableau Récapitulatif

| Connecteur / Agent        | Action                               | Entrée principale            | Sortie             |
| ------------------------- | ------------------------------------ | ---------------------------- | ------------------ |
| `GedDossierCreate`        | Créer un dossier                     | armoire + properties         | folderId           |
| `GedDossierUpdate`        | Modifier métadonnées dossier         | armoire + query + properties | retCode            |
| `GedDossierExist`         | Tester existence dossier             | armoire + query              | retCode / folderId |
| `GedImporterDocument`     | Créer un document dans un dossier    | armoire + query + attachment | idDoc              |
| `GedDocumentMdatasUpdate` | Modifier métadonnées document        | armoire + idDoc + mapping    | retCode            |
| `GedDocumentDownload`     | Télécharger document → PJ Process    | armoire + idDoc              | attachment         |
| `GedDocumentStreamUpdate` | Mettre à jour contenu document       | idDoc + attachment           | retCode            |
| `CreateFolderFromInboxes` | Import bannette → dossier + workflow | Configuration agent          | —                  |

***

Pour aller plus loin :

* [Connecteurs Efalia Doc (nouvelle génération)](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteurs-efalia-doc.md)
* [Connecteurs Multigest 9 (hérités)](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre/connecteur-multigest.md)
* [Mise en Œuvre](/documentations/efalia-process/vue-ensemble/mise-en-oeuvre.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/agents-multigest-v2.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.
