Aller au contenu

Connecteur Efalia Process / Efalia Doc

Il y a pour l'instant deux méthodes de lancement d'un processus impliquant un document dans Doc :

  • Soit directement depuis Process, avec la sélection d'un document de Doc via le picker de Process.
  • Soit depuis un document dans Doc, via un lien hypertext qui redirige vers Process avec le document déjà préselectionné.

1 - Sélection des processus autorisés depuis Doc

Lors de la navigation dans Doc, un utilisateur peut lancer certains processus à partir de documents de certains gabarits. C'est Process qui est la source de vérité de ces informations et qui les expose. C'est donc Doc qui va consommer les APIs de Process pour permettre au bons utilisateurs, d'exécuter les bons processus sur les documents des bons gabarits, selon les droits de l'utilisateur dans Process.

sequenceDiagram
    participant Efalia Doc
    participant Efalia Process
      Efalia Doc->>Efalia Process: GET /workey/api/mgx/mapping + [identifiant utilisateur]
      Efalia Process-->>Efalia Doc: Liste des processus autorisés par gabarit de document

En terme d'utilisation, cette API sera certainement appelée par Doc lors de l'autentification de l'utilisateur et le resultat sera conservé par l'application tant qu'il reste connecté.

2 - Lancement du processus depuis Doc

Lors du lancement d'un processus depuis Doc, c'est en réalité une redirection de Doc vers Process qui est effectuée, permettant de transmettre à Process l'UUID du document concerné ainsi que l'id du processus sélectionné par l'utilisateur.

sequenceDiagram
    participant Efalia Doc
    participant Efalia Process
      Efalia Doc->>Efalia Process: REDIRECT TO workey/app/dièse/external-launch?origin=mgx&action=create-doc + [UUID document + ID processus]

3 - Exécution d'un processus dans Process

Quelque soit la méthode choisie (directement depuis Process ou redirection depuis Doc), c'est toujours Process qui exécute le processus de la même manière en connaissant le document Doc concerné :

sequenceDiagram
    participant Efalia Process
    participant Efalia Doc
      Note right of Efalia Process: Attachement d'un processus au document dans Doc
      Efalia Process->>Efalia Doc: POST /api/documents/{UUID}/processus + [ID du processus dans body] + [Clé API + identifiant utilisateur partagé dans l'auth de l'API]
      Note right of Efalia Process: Verrouillage du document (optionnel)
      Efalia Process->>Efalia Doc: POST /api/documents/{UUID}/verrouillage + [Clé API + identifiant utilisateur partagé dans l'auth de l'API]
      Note right of Efalia Process: Modification du document pendant le processus (optionnel)
      Efalia Process->>Efalia Doc: Traitement du document via l'API de Doc : mise à jour du binaire, changement des metadonnées, etc.
      Note right of Efalia Process: Déverrouillage du document (optionnel)
      Efalia Process->>Efalia Doc: DELETE /api/documents/{UUID}/verrouillage + [Clé API + identifiant utilisateur partagé dans l'auth de l'API]
      Note right of Efalia Process: Détachement du processus du document dans Doc et récupération de l'historique.
      Efalia Process->>Efalia Doc: DELETE /api/documents/{UUID}/processus + [ID du processus et historique dans body] + [Clé API + identifiant utilisateur partagé dans l'auth de l'API]

Il est à noter qu'aucun appel API n'est fait de Doc vers Process lors de l'exécution d'un processus.

Documentation des APIs

Une documentation plus précise des liens est aussi présente dans le projet Workey : https://github.com/Efalia/workey/blob/feat/integration-suite/docs/internal/doc.process.md