> 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/connecteurs/connecteurs-metiers/pcrm-rio.md).

# PCRM Rio

## Introduction

Le connecteur PCRM Rio pour Efalia Doc permet à l'application PCRM Rio d'interroger la GED Efalia Doc afin de connaître les documents publiables et/ou distribuables. Contrairement aux connecteurs Iodas ou Solis, il n'existe ici aucun flux d'écriture vers Efalia Doc : le connecteur expose uniquement des WebServices REST (retour JSON ou HTML) que PCRM Rio consulte pour obtenir le nombre, la liste ou le détail des documents correspondant à ses critères de recherche, ainsi que pour en télécharger le contenu.

Cette page s'adresse aux chefs de projet techniques en charge de l'installation du connecteur chez un client, et détaille le paramétrage, les WebServices exposés et les vérifications post-installation.

## Architecture du connecteur

Le connecteur est un module déployé sur la plateforme Efalia Utilities. Il expose 6 WebServices REST ainsi qu'un bouchon de test, consommés directement par PCRM Rio, et interroge en lecture seule l'API d'Efalia Doc pour construire ses réponses.

{% hint style="info" %}
Le connecteur ne réalise aucune écriture dans Efalia Doc : il s'agit d'un connecteur de consultation uniquement.
{% endhint %}

### Synthèse des flux techniques

| Flux                                                   | Source                                 | Destination                            | Protocole / port          | Contenu                                                       |
| ------------------------------------------------------ | -------------------------------------- | -------------------------------------- | ------------------------- | ------------------------------------------------------------- |
| Interrogation des documents publiables / distribuables | PCRM Rio                               | Connecteur PCRM Rio (Efalia Utilities) | REST, retour JSON ou HTML | Requêtes de recherche par date, avec pagination               |
| Lecture des données                                    | Connecteur PCRM Rio (Efalia Utilities) | Efalia Doc (API)                       | REST (JSON) / port 1202   | Interrogation des métadonnées et téléchargement des documents |

### WebServices exposés

Dans les URL ci-dessous, `<racine>` désigne l'URL racine du connecteur telle qu'installée chez le client (`mgdex` dans les exemples du document source).

| WebService                               | URL                                                                          | Paramètres                                                                                               | Description                                                                                      |
| ---------------------------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Liste des documents publiables           | `http://<racine>/publiables/{date}/{first}/{quantity}.{format}`              | `date` obligatoire (`AAAA-MM-JJ`) ; `first`, `quantity`, `format` facultatifs (défaut `0`, `50`, `json`) | Documents dont la métadonnée publiable correspond à la valeur configurée, créés après `date`.    |
| Nombre de documents publiables           | `http://<racine>/publiables/count/{date}.{format}`                           | `date` obligatoire, `format` facultatif                                                                  | Nombre de documents publiables disponibles.                                                      |
| Liste des documents distribuables        | `http://<racine>/distribuables/{date}/{first}/{quantity}.{format}`           | Identiques à la liste des documents publiables                                                           | Documents dont la métadonnée distribuable correspond à la valeur configurée, créés après `date`. |
| Nombre de documents distribuables        | `http://<racine>/distribuables/count/{date}.{format}`                        | `date` obligatoire, `format` facultatif                                                                  | Nombre de documents distribuables disponibles.                                                   |
| Détails d'un document                    | `http://<racine>/document/metadatas/{id}.{format}`                           | `id` obligatoire, `format` facultatif                                                                    | Métadonnées d'un document à partir de son identifiant unique.                                    |
| Téléchargement d'un document             | `http://<racine>/document/download/{id}.{format}`                            | `id` obligatoire ; `format` = `binary` (par défaut), `json` (contenu encodé en base64) ou `html`         | Fichier binaire stocké en GED.                                                                   |
| Marquage des documents non web (bouchon) | `http://<racine>/marquageDocsNonWeb/{nom}/{prenom}/{liste-des-ids}.{format}` | `nom`, `prenom`, `liste-des-ids` (identifiants séparés par `;`), `format`                                | Bouchon retournant une liste de documents fictifs, sans effet réel sur la GED.                   |

Une interface Web permet de visualiser les résultats de chaque WebService : il suffit de remplacer l'extension `.json` par `.html` dans l'URL appelée. Elle affiche notamment les armoires connectées, l'utilisateur, les identifiants externes des métadonnées et les valeurs recherchées.

<figure><img src="/files/Fpuoj3cnAPyaL9HiMXEn" alt="Interface web de test du connecteur PCRM Rio affichant la liste des documents publiables, avec le détail des armoires, utilisateur et paramètres de recherche utilisés"><figcaption><p>Interface de vérification du WebService « documents publiables »</p></figcaption></figure>

## Pré-requis techniques et plan de classement type

### Versions logicielles requises

Le document source ne précise pas de version minimale d'Efalia Doc ou d'Efalia Utilities pour ce connecteur ; il indique seulement que le connecteur est intégré au dépôt Efalia Utilities.

### Droits et accès nécessaires

* **Efalia Doc** : créer un utilisateur technique ayant accès exclusivement aux armoires sur lesquelles les recherches PCRM Rio doivent pointer.

### Plan de classement type

Le connecteur recherche, dans les armoires ciblées, des métadonnées identifiées par 8 identifiants externes. Ils doivent impérativement exister sur les gabarits de document concernés :

| Clé de configuration | Identifiant externe attendu | Rôle                                       |
| -------------------- | --------------------------- | ------------------------------------------ |
| `indi`               | `INDI`                      | Métadonnée utilisée par le connecteur.     |
| `prinindi`           | `PRININDI`                  | Métadonnée utilisée par le connecteur.     |
| `publiable`          | `PUBL`                      | Métadonnée publiable (par défaut).         |
| `distribuable`       | `MODEDIFF`                  | Métadonnée distribuable (par défaut).      |
| `codeTypeDocumentAs` | `CODETYPEDOC`               | Code type de document.                     |
| `numeroProcedure`    | `PROC`                      | Numéro de procédure.                       |
| `pcrmTypeDestin`     | `NATU`                      | Type de destinataire côté PCRM Rio.        |
| `pcrmIdentiDestin`   | `IDDEST`                    | Identifiant du destinataire côté PCRM Rio. |

Les identifiants externes des métadonnées publiable et distribuable (`idExternePubliable`, `idExterneDistribuable`) peuvent chacun contenir plusieurs valeurs séparées par une virgule, par exemple si chaque gabarit de document possède un identifiant différent pour la même notion.

### Sécurité et flux réseau

* **Connecteur (Efalia Utilities) → Efalia Doc** : API REST JSON sur le port 1202 (HTTPS), via l'URL définie dans `apiURL`.
* **PCRM Rio → Connecteur** : appels REST HTTP(S) sur les WebServices listés ci-dessus ; le document source ne précise pas de port dédié pour ce flux.

## Installation du connecteur

{% stepper %}
{% step %}

## Préparation dans Efalia Doc

1. Créer un utilisateur technique ayant accès exclusivement aux armoires sur lesquelles les recherches PCRM Rio doivent pointer.
2. Vérifier que les 8 identifiants externes attendus (`INDI`, `PRININDI`, `PUBL`, `MODEDIFF`, `CODETYPEDOC`, `PROC`, `NATU`, `IDDEST`) existent bien sur les gabarits de document des armoires concernées.
   {% endstep %}

{% step %}

## Déploiement du code

Le connecteur est intégré au dépôt Efalia Utilities. Se reporter à la procédure d'installation d'une machine virtuelle Utilities.
{% endstep %}

{% step %}

## Paramétrage (config.php)

Après installation du code, un fichier `config-dist.php` est disponible à la racine du projet ; il contient la structure du fichier de configuration et est mis à jour à chaque livraison. Le copier et le renommer `config.php` : ce fichier, ignoré par les mises à jour, contient les valeurs réellement utilisées par le connecteur.

```php
return [
    "name" => "efaliaDocPcrm",
    "apiURL" => "https://connectorhub-doc.efalia.net:1202",
    "authenticationMode" => "login/password",
    "userLogin" => "xxxx",
    "userPassword" => "yyyy",
    "objectsIdentifier" => "externalId",
    "idExternePubliable" => "PUBL",
    "idExterneDistribuable" => "MODEDIFF",
    "valeurPubliable" => "C",
    "valeurDistribuable" => "W",
    "logs" => [
        "path" => "/logs",
        "journal" => 1,
        "debug" => false,
    ],
    "metadatas" => [
        "indi" => "INDI",
        "prinindi" => "PRININDI",
        "publiable" => "PUBL",
        "distribuable" => "MODEDIFF",
        "codeTypeDocumentAs" => "CODETYPEDOC",
        "numeroProcedure" => "PROC",
        "pcrmTypeDestin" => "NATU",
        "pcrmIdentiDestin" => "IDDEST",
    ],
];
```

* `apiURL` : lien d'accès à l'API Efalia Doc — à vérifier impérativement à chaque installation.
* `userLogin` / `userPassword` : identifiants du compte technique — à vérifier impérativement à chaque installation.
* `objectsIdentifier` : clé d'identification des objets, `externalId` par défaut ou `uuid`.
* `idExternePubliable` / `idExterneDistribuable` : identifiants externes des métadonnées publiables et distribuables à rechercher ; plusieurs valeurs possibles, séparées par une virgule.
* `valeurPubliable` / `valeurDistribuable` : valeurs qui qualifient un document de publiable ou distribuable (`C` et `W` par défaut).
* `logs.journal` : `0` désactivé, `1` erreurs seulement, `2` tous les appels ; `logs.debug` recommandé à `false` en production.
* `metadatas` : identifiants externes des 8 métadonnées qui doivent exister dans les armoires Efalia Doc concernées (voir tableau ci-dessus).
  {% endstep %}
  {% endstepper %}

## Vérifications post-installation

* Utilisateur technique créé, limité aux armoires concernées.
* Les 8 identifiants externes de métadonnées attendus sont bien présents sur les gabarits de document des armoires ciblées.
* Test des WebServices de comptage : `/publiables/count/{date}.json` et `/distribuables/count/{date}.json` renvoient des valeurs cohérentes avec le contenu de l'armoire.
* Test de récupération de la liste des documents publiables et distribuables, avec pagination (`first`/`quantity`).
* Test de lecture des métadonnées d'un document via son identifiant unique (`/document/metadatas/{id}`).
* Test de téléchargement d'un document, en formats `binary` et `json` (base64).
* Interface Web accessible (en remplaçant `.json` par `.html` dans l'URL d'un WebService) et affichant correctement les paramètres et résultats attendus.
* Niveau de logs vérifié (`journal`) et mode debug désactivé en production.

## Glossaire

| Terme                 | Définition                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------------ |
| GED                   | Gestion Électronique de Documents.                                                                     |
| Document publiable    | Document dont la métadonnée dédiée porte la valeur configurée (`C` par défaut).                        |
| Document distribuable | Document dont la métadonnée dédiée porte la valeur configurée (`W` par défaut).                        |
| Bouchon               | WebService de test simulant un comportement, sans effet réel sur la GED.                               |
| `externalId`          | Identifiant externe, mode d'identification des objets Efalia Doc utilisé par défaut par ce connecteur. |


---

# 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/connecteurs/connecteurs-metiers/pcrm-rio.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.
