> For the complete documentation index, see [llms.txt](https://docs.hablla.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hablla.com/french/hablla/parametres/referentiel-rpo.md).

# Référentiel (RPO)

Bientôt

Le **Référentiel (RPO)** est une ressource de Hablla destinée au stockage et à la gestion de **classes et scripts en JavaScript** qui peuvent être utilisés dans les automatisations de votre workspace.

Son objectif principal est de permettre que des logiques plus complexes soient **centralisées et réutilisées**, évitant qu’une même implémentation doive être construite et maintenue individuellement dans différents flux.

{% hint style="warning" %}
Le **Le Référentiel (RPO) est une ressource avancée**, destinée principalement aux utilisateurs ayant des connaissances en **JavaScript, API, intégrations entre systèmes et développement**.

Si vous ne possédez pas de connaissances techniques dans ces domaines, nous recommandons que la création ou la modification de Classes et Scripts soit réalisée par une personne qualifiée.
{% endhint %}

### Quand utiliser le RPO ?

Le RPO est particulièrement utile lorsqu’une même logique doit être utilisée à différents endroits de votre opération.

Un exemple courant est celui des **intégrations avec des systèmes externes**.

Imaginez que différents flux doivent consulter ou envoyer des informations vers un même système. Il est possible de construire toute la logique nécessaire individuellement dans chaque flux. Cependant, à mesure que le nombre d’automatisations augmente, cette approche accroît également la complexité de maintenance.

Sans une logique centralisée, nous pourrions avoir un scénario comme :

```mermaid
flowchart LR
    A["Flux A"] --> D["Intégration"]
    B["Flux B"] --> E["Intégration"]
    C["Flux C"] --> F["Intégration"]
```

Dans ce scénario, si une règle de l’intégration est modifiée, il peut être nécessaire de mettre à jour individuellement chacun des flux qui possèdent cette implémentation.

En utilisant le RPO, certaines logiques peuvent être centralisées puis réutilisées par les automatisations qui en ont besoin :

```mermaid
flowchart LR
    A["Flux A"] --> RPO1["RPO"]
    B["Flux B"] --> RPO2["RPO"]
    C["Flux C"] --> RPO3["RPO"]

    RPO1 --> INT["Intégration"]
    RPO2 --> INT
    RPO3 --> INT
```

De cette façon, une partie de la logique peut être maintenue en un seul endroit et réutilisée dans différents processus.

Voici quelques scénarios dans lesquels le RPO peut être utilisé :

* Intégrations avec des systèmes externes ;
* Consultation et envoi d’informations via des API ;
* Traitement et transformation de données ;
* Réutilisation de règles ou de logiques entre différents flux ;
* Centralisation de fonctionnalités utilisées par différentes automatisations.

### Classes et Scripts

Dans le **Référentiel (RPO)**, vous trouverez deux zones principales : **Mes Classes** et **Mes Scripts**.

#### Classes

Les **Classes** permettent d’organiser des fonctionnalités qui pourront être réutilisées dans différentes automatisations.

Une Classe peut regrouper différentes actions liées à une même finalité. Dans une intégration avec un système externe, par exemple, une seule Classe pourrait regrouper des fonctionnalités chargées de consulter, créer ou mettre à jour des informations.

De cette façon, différents flux peuvent utiliser ces fonctionnalités sans avoir à reproduire toute l’implémentation individuellement.

#### Mes Scripts

La section **Mes Scripts** permet de stocker des codes JavaScript destinés à l’exécution de logiques ou d’actions spécifiques au sein des automatisations.

Alors que les Classes sont particulièrement utiles pour organiser et réutiliser des ensembles de fonctionnalités, les Scripts peuvent être utilisés pour stocker des implémentations plus ciblées sur une action donnée.

<table><thead><tr><th width="201.862060546875">Ressource</th><th>Quand utiliser</th></tr></thead><tbody><tr><td><strong>Classes</strong></td><td>Lorsqu’une logique ou un ensemble de fonctionnalités doit être organisé et réutilisé dans différentes automatisations.</td></tr><tr><td><strong>Scripts</strong></td><td>Lorsqu’il est nécessaire de stocker un code JavaScript destiné à une action ou à une logique spécifique.</td></tr></tbody></table>

{% hint style="danger" %}
**Faites attention lorsque vous modifiez des codes existants dans le RPO.**

Les Classes et Scripts peuvent être utilisés par différentes automatisations de votre workspace. Pour cette raison, une modification incorrecte d’un code partagé peut affecter **simultanément plusieurs flux et processus de votre opération**.

Si vous ne connaissez pas la finalité d’une Classe ou d’un Script existant, nous ne recommandons pas d’effectuer des modifications ou des tests directement dans ce code.
{% endhint %}

## Comment accéder au Référentiel (RPO)

### 1. Accédez aux paramètres du Workspace

Dans le **Studio Hablla**, cliquez sur l’icône de **engrenage**, située dans le coin supérieur droit de l’écran.

### 2. Accédez au Référentiel (RPO)

Dans le menu latéral gauche des paramètres, repérez et cliquez sur l’option **Référentiel (RPO)**.

<figure><img src="https://2835740493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrmxWrIrMauHcIrsuqfGq%2Fuploads%2F9FTgUYTnBlaNcKf6P4hg%2Frepositorio.png?alt=media&amp;token=e9034e71-d84c-401a-b5ed-444db1bffb65" alt=""><figcaption></figcaption></figure>

En accédant au référentiel, vous trouverez les deux zones disponibles :

* **Mes Classes :** présente les Classes enregistrées dans votre workspace ;
* **Mes Scripts :** présente les scripts JavaScript stockés dans le workspace.

## Créer une Classe dans le RPO (Avancé)

{% hint style="warning" %}
La création et l’édition de Classes nécessitent des connaissances en **JavaScript et développement logiciel**. Cette documentation présente le fonctionnement de la ressource et les règles nécessaires à l’utilisation des Classes dans le RPO, mais n’a pas pour objectif d’enseigner la programmation ou le développement en JavaScript.
{% endhint %}

### 1. Créez une nouvelle Classe

Dans la zone de **Mes Classes** du Référentiel (RPO), créez une nouvelle Classe en cliquant sur le bouton <kbd>**+ Nouvelle classe**</kbd> et indiquez un nom pour l’identifier.

Une fois que vous avez fini de saisir le nom de la Classe, le système ajoutera automatiquement le préfixe "<kbd>**W\_**</kbd>" au nom indiqué et transformera la première lettre en majuscule.

Par exemple, si vous indiquez : "**`test`**" Hablla définira le nom de la Classe comme : "**`W_Teste`**"

### 2. Utilisez dans le code le nom généré par Hablla

Le nom affiché par Hablla après la définition du nom de la Classe devra être pris en compte dans votre implémentation JavaScript.

Par exemple, si vous avez initialement indiqué : "**`test`**" et que Hablla a enregistré la Classe comme : "**`W_Teste`**"

La déclaration de la Classe dans le code devra utiliser ce même nom :

```javascript
class W_Teste {
    // ...
}
```

Par conséquent :

<table><thead><tr><th width="264.7586669921875">Étape</th><th>Nom</th></tr></thead><tbody><tr><td><strong>Nom indiqué lors de la création</strong></td><td><code>test</code></td></tr><tr><td><strong>Nom généré par Hablla</strong></td><td><code>W_Teste</code></td></tr><tr><td><strong>Nom déclaré dans le code</strong></td><td><code>W_Teste</code></td></tr></tbody></table>

#### Vidéo démonstrative de la façon de créer une classe.

<figure><img src="https://2835740493-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrmxWrIrMauHcIrsuqfGq%2Fuploads%2Fgt65gBaUaalYiZ0uiAGk%2F%5BDOCS%5D%20-%20Como%20criar%20uma%20Classe.gif?alt=media&amp;token=5b6d5236-69f9-4823-a908-02d3e62e0686" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Le **le nom déclaré dans le code doit correspondre au nom final affiché par Hablla**.

Le préfixe `W_` et la transformation de la première lettre en majuscule sont appliqués automatiquement par la plateforme lors de la définition du nom, mais doivent être présents dans la déclaration de la Classe dans le code.
{% endhint %}

### 3. Publiez la Classe

Après avoir terminé la création et vérifié le code de votre Classe, il est nécessaire **de la publier** pour qu’elle soit disponible à l’utilisation dans le workspace.

Pour cela, cliquez sur le bouton "<kbd>**Publier mes classes**</kbd>", situé dans le coin supérieur droit de la section Mes Classes.

En cliquant sur ce bouton, confirmez l’action en saisissant le mot de confirmation pour continuer, puis cliquez enfin sur "<kbd>**Confirmer**</kbd>" pour appliquer les modifications effectuées.

> **⚠️ Important**
>
> Chaque fois que vous effectuez une modification dans le code d’une Classe, il sera nécessaire **de la republier** pour que la nouvelle version soit disponible à l’utilisation.

### Les Classes peuvent utiliser d’autres Classes

Une Classe stockée dans le RPO peut également utiliser les fonctionnalités fournies par une autre Classe existante dans le même environnement. Cela permet de répartir les responsabilités et de réutiliser des fonctionnalités sans avoir à répéter la même implémentation.

Par exemple, une Classe chargée des paiements pourrait utiliser une autre Classe dédiée exclusivement à l’authentification auprès du système externe :

```mermaid
flowchart LR
    A["Flux"] --> B["Classe de paiements"]
    B --> C["Classe d’authentification"]
    C --> D["Système externe"]
```

Cette structure facilite la réutilisation des fonctionnalités, mais crée aussi une **dépendance entre les Classes**.

{% hint style="danger" %}
**Avant de modifier ou de supprimer une Classe, vérifiez si elle est utilisée par d’autres Classes et/ou par des flux d’automatisation du workspace.**

Une Classe peut servir de dépendance à d’autres implémentations. Par conséquent, une modification peut affecter d’autres codes et flux même si la Classe ne semble pas être utilisée directement.
{% endhint %}

## Bonnes pratiques lors de l’utilisation du RPO

S’agissant d’une ressource avancée et susceptible d’avoir un impact sur différentes automatisations, nous recommandons quelques précautions lors de son utilisation :

* Utilisez le RPO uniquement si vous possédez des connaissances techniques suffisantes pour comprendre le code qui est implémenté ou modifié ;
* Avant de modifier une Classe ou un Script existant, vérifiez où cette ressource est utilisée ;
* Évitez d’effectuer des tests directement sur des codes utilisés par des automatisations en production ;
* Utilisez des noms qui facilitent l’identification de la finalité des Classes et des Scripts ;
* Tenez compte des dépendances entre les Classes avant d’effectuer des modifications ou des suppressions ;
* Dans la mesure du possible, validez les modifications avant de les utiliser dans des processus critiques de l’opération.

{% hint style="info" %}
Si votre opération nécessite une implémentation dans le RPO et que votre équipe ne possède pas les connaissances techniques pour la développer, nous recommandons que la configuration soit réalisée par un **professionnel expérimenté en JavaScript, API et intégrations entre systèmes**.
{% endhint %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hablla.com/french/hablla/parametres/referentiel-rpo.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
