> 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/administration/administration-technique/module-archivage.md).

# Module d'Archivage

Le **module d'archivage** extrait automatiquement de la base Efalia Process les documents arrivés en fin de vie et les stocke dans des **bases d'archives dédiées**. Il permet de maintenir les performances de la base principale tout en conservant l'accès aux documents historiques.

{% hint style="info" %}
💡 Le module d'archivage est disponible à partir de la version **Efalia Process 6.11.3**. Son activation est subordonnée au fichier de **licence serveur**.
{% endhint %}

***

## Principe de Fonctionnement

Le module se compose de deux éléments principaux :

{% tabs %}
{% tab title="Agent d" %}
**Tâche automatique planifiée**

L'agent d'archivage :

1. Identifie les documents **éligibles à l'archivage** dans la base principale
2. Crée la base d'archive si elle n'existe pas encore
3. **Transfère** les documents et leurs pièces jointes vers la base d'archive
4. **Supprime** les documents de la base principale Efalia Process

Il s'exécute selon un planning configurable et s'arrête si le timeout est dépassé.
{% endtab %}

{% tab title="Application de Consultation" %}
**Interface de recherche des archives**

Interface web permettant aux utilisateurs habilités de :

* Rechercher des documents archivés
* Consulter le détail d'un document archivé
* Naviguer dans l'historique des processus clôturés

L'accès respecte les **droits des acteurs** définis dans Efalia Process.
{% endtab %}
{% endtabs %}

### Éligibilité d'un Document à l'Archivage

Un document est éligible à l'archivage s'il satisfait **simultanément** ces deux conditions :

1. Il est dans un **état final** (aucune opération applicable)
2. Il est dans cet état depuis une durée **≥ délai d'archivage** configuré pour son processus

***

## Prérequis

* **Licence** : Le module doit être activé dans le fichier de licence du serveur Efalia Process
* **Formulation d'archivage** : Chaque type de document du processus doit disposer d'un **formulaire d'archivage** défini dans le Designer HTML

{% hint style="danger" %}
⚠️ **Point critique**

Si un type de document n'a **pas de formulaire d'archivage**, le traitement de l'agent d'archivage sera **interrompu** pour ce processus. Aucun document de ce processus ne sera archivé.

De plus, seules les **données exposées par le formulaire d'archivage** seront conservées. Toutes les autres données seront **définitivement perdues**.
{% endhint %}

***

## Configuration dans le Designer HTML

### Définir un Formulaire d'Archivage

{% stepper %}
{% step %}

#### Sélectionner le type de document

Dans le Designer HTML, sélectionnez le **document** pour lequel vous souhaitez définir un formulaire d'archivage.
{% endstep %}

{% step %}

#### Créer ou modifier un formulaire

Accédez aux **propriétés du document > Formulaires** et créez un formulaire dédié (ou désignez un formulaire existant comme formulaire d'archivage).
{% endstep %}

{% step %}

#### Cocher "Formulaire d'archivage"

Dans les propriétés du formulaire, cochez l'option **"Formulaire d'archivage"**.

📸 **CAPTURE : admin-tech-archivage-01-formulaire-archivage.png**

> Interface du Designer HTML avec les propriétés d'un formulaire et l'option "Formulaire d'archivage" cochée

{% hint style="info" %}
💡 Il ne peut y avoir qu'**un seul formulaire d'archivage** par type de document. Un même formulaire peut être désigné à la fois comme formulaire de lecture, d'écriture et d'archivage.
{% endhint %}
{% endstep %}
{% endstepper %}

### Limitations du Formulaire d'Archivage

En version 6.11.3, certains composants ne sont pas supportés dans les formulaires d'archivage :

{% hint style="warning" %}
**Composants non supportés dans la visualisation des archives :**

* Script JS
* Dossier MG et Documents MG

**Caractéristiques non prises en compte :**

* L'option "Vignette" des champs pièce jointe
* Le nombre de colonnes d'une table
  {% endhint %}

***

## Paramétrage de l'Archivage par Processus

{% stepper %}
{% step %}

#### Accéder à la configuration du processus

Depuis la **console d'administration** (`/workey/admin`), dans la section **Processus**, cliquez sur un processus déployé pour afficher ses détails.

📸 **CAPTURE : admin-tech-archivage-02-parametrage-processus.png**

> Console d'administration avec les détails d'un processus déployé et la section "Politique d'archivage"
> {% endstep %}

{% step %}

#### Configurer le délai d'archivage

Définissez le **délai d'archivage** en nombre de jours :

| Valeur                | Comportement                                                                       |
| --------------------- | ---------------------------------------------------------------------------------- |
| **≥ 0**               | Archivage activé — les documents dans un état final depuis X jours seront archivés |
| **= 0**               | Archivage immédiat dès que le document atteint un état final                       |
| **= -1 (ou négatif)** | Archivage **désactivé** pour ce processus                                          |

{% hint style="info" %}
💡 **Valeur par défaut** : 365 jours au premier déploiement. Cette valeur est conservée lors des déploiements de nouvelles versions du processus.
{% endhint %}
{% endstep %}

{% step %}

#### Définir la base d'archive cible

Saisissez le **nom de la base d'archive** dans laquelle seront stockés les documents archivés.

**Règles de nommage :**

* Ne pas utiliser de caractères spéciaux non autorisés pour les noms de répertoire
* Ne pas laisser vide
* Utiliser un nom unique par processus (éviter de partager une même base entre plusieurs processus)

{% hint style="danger" %}
⚠️ **Ne JAMAIS désigner la même base d'archive pour des processus différents.**

Il est **impossible de fusionner deux bases d'archives**. Un changement de nom de base en cours d'exploitation crée une nouvelle base distincte — les documents sont alors répartis sur deux bases non fusionnables.
{% endhint %}
{% endstep %}

{% step %}

#### Valider les paramètres

Cliquez sur **"Modifier l'archivage"** pour valider et appliquer les paramètres.

{% hint style="warning" %}
⚠️ Si plusieurs versions du processus ont des paramètres d'archivage différents, l'interface vous demandera de valider les paramètres actuels pour les appliquer à **toutes les versions**.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Créer et Configurer l'Agent d'Archivage

{% stepper %}
{% step %}

#### Accéder à la gestion des agents

Depuis la console d'administration, naviguez vers la section **Agents**.
{% endstep %}

{% step %}

#### Créer l'agent d'archivage

Dans la liste déroulante des types d'agent, sélectionnez **"Archiveur"** et cliquez sur **"Créer nouvel Agent"**.

📸 **CAPTURE : admin-tech-archivage-03-creation-agent.png**

> Interface de création d'agent avec le type "Archiveur" sélectionné

{% hint style="danger" %}
⚠️ **Ne créer qu'un seul agent d'archivage.**

Plusieurs agents d'archivage fonctionnant simultanément entreraient en conflit et pourraient corrompre les bases d'archives.
{% endhint %}
{% endstep %}

{% step %}

#### Configurer l'agent

| Paramètre               | Description                                                                                         |
| ----------------------- | --------------------------------------------------------------------------------------------------- |
| **Journalisation**      | Activez pour exposer les traitements dans l'historique de l'agent                                   |
| **Instances multiples** | Non autorisées — une seule instance à la fois                                                       |
| `archive.timeout`       | Durée maximale de traitement (en minutes). L'agent s'arrête si ce délai est dépassé avant de finir. |
| `archive.lang`          | Locale utilisée lors de l'ouverture des documents (ex : `fr`). Optionnel.                           |
| {% endstep %}           |                                                                                                     |

{% step %}

#### Planifier l'exécution

Définissez la **fréquence d'exécution** de l'agent (planification cron). Exemple recommandé : exécution nocturne quotidienne (ex : tous les jours à 2h du matin).

**Résultat :** L'agent s'exécutera automatiquement selon le planning défini, sans intervention manuelle.

{% hint style="info" %}
💡 L'agent utilise une identité système interne avec des privilèges équivalents au Workflow Manager. Aucune configuration supplémentaire de compte n'est nécessaire.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Structure d'une Base d'Archive

Les bases d'archives sont stockées dans le répertoire global des archives du serveur (`com.clog.workey.directory.archives`). Chaque base d'archive est un répertoire avec la structure suivante :

```
NOM_BASE_ARCHIVE/
├── documents/          ← Documents archivés (format XML)
│   ├── 0d/
│   │   └── 0c/
│   │       └── document_3773.xml
│   └── ...
│
├── attachments/        ← Pièces jointes
│   ├── b7/
│   │   └── 50/
│   │       └── [uuid]_nom_fichier_normalise.pdf
│   └── ...
│
├── index/              ← Index Lucene (recherche + droits d'accès)
├── locales/            ← Ressources de localisation
├── templates/          ← Modèles Velocity pour la visualisation
└── metadata.js         ← Métadonnées JSON de la base
```

### Points Importants sur l'Index Lucene

{% hint style="danger" %}
⚠️ **L'index Lucene des archives ne peut pas être recréé.**

Contrairement à la base principale Efalia Process, **il n'est pas possible de réindexer** une base d'archive. L'index contient les droits d'accès aux documents archivés. Une perte de l'index signifie une perte définitive d'accès aux archives.

**Sauvegardez régulièrement le répertoire `index/` de chaque base d'archive.**
{% endhint %}

***

## ⚠️ Limitations

{% hint style="warning" %}
**Limitation — Fusion de bases d'archives impossible**

Il n'est **pas possible de fusionner deux bases d'archives**. Planifiez soigneusement le nommage de vos bases d'archives avant la mise en production.
{% endhint %}

{% hint style="warning" %}
**Limitation — Un seul agent d'archivage**

Un seul agent d'archivage doit être défini sur un serveur Efalia Process. Ne créez jamais plusieurs agents d'archivage.
{% endhint %}

{% hint style="warning" %}
**Limitation — Disponibilité**

Le module d'archivage n'est disponible qu'à partir de la version **6.11.3**. Sur les versions antérieures, le mécanisme d'archivage est différent.
{% endhint %}

***

## Bonnes Pratiques

{% hint style="success" %}
**✅ À faire :**

* Définir un formulaire d'archivage pour **chaque type de document** avant le premier déploiement en production
* Utiliser des noms de bases d'archives **explicites** et **stables** (éviter les changements de noms)
* **Sauvegarder** régulièrement les répertoires `index/` de toutes les bases d'archives
* Planifier l'agent d'archivage pendant les heures creuses (nuit)
* Activer la **journalisation** de l'agent pour faciliter le diagnostic
* Définir un `archive.timeout` pour éviter des traitements trop longs
  {% endhint %}

{% hint style="danger" %}
**❌ À éviter :**

* Partager une même base d'archive pour plusieurs processus différents
* Créer plusieurs agents d'archivage
* Renommer une base d'archive en cours d'exploitation sans migration préalable
* Supprimer manuellement des fichiers dans une base d'archive
  {% endhint %}

***

## Questions Fréquentes

<details>

<summary>Comment accéder aux documents archivés ?</summary>

Les documents archivés sont accessibles via l'**application de consultation des archives**, accessible depuis le menu de navigation Efalia Process (icône "Serveur d'archives"). L'accès est conditionné par les droits de l'utilisateur définis dans Efalia Process.

</details>

<details>

<summary>Que se passe-t-il si le formulaire d'archivage d'un processus déjà en production est manquant ?</summary>

Si aucun formulaire d'archivage n'est défini pour un type de document, l'agent s'arrête pour ce processus sans archiver aucun document. Une erreur est journalisée.

Pour les processus déployés avant Efalia Process 6 (v.5), il est possible de désigner manuellement un formulaire d'archivage directement en base de données via une requête SQL. Consultez le support Efalia pour cette opération.

</details>

<details>

<summary>Peut-on restaurer un document archivé dans la base principale ?</summary>

Non. L'archivage est une opération **définitive**. Une fois un document archivé et supprimé de la base principale, il n'est accessible que via l'application de consultation des archives. Il n'existe pas de mécanisme de désarchivage natif.

</details>

<details>

<summary>Comment migrer les bases d'archives créées sous Efalia Process 5 (Workey v5) ?</summary>

Les bases d'archives créées sous Workey v5 utilisent Lucene 2.9.4, incompatible avec la version 4.8.1 utilisée par Efalia Process v6. Une migration en deux étapes est nécessaire via `org.apache.lucene.index.IndexUpgrader`. Contactez le support Efalia pour être accompagné dans cette migration.

</details>

***

Pour aller plus loin :

* [Agents Process](/documentations/efalia-process/administration/administration-technique/agents-process.md)
* [Procédure d'Installation](/documentations/efalia-process/administration/administration-technique/procedure-installation.md)
* [Remarques et Limitations](/documentations/efalia-process/administration/administration-technique/remarques-limitations.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/administration/administration-technique/module-archivage.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.
