.. _admin-templates: Modèles de règles ================= Concepts -------- Dans le cas le plus simple, un **flux** correspond à un transfert. Si le flux doit transiter via des serveurs de rebond, il est alors composé de plusieurs transferts. Prenons l'exemple du flux suivant : .. uml:: left to right direction title flux et transferts (A) --> (B) (B) --> (C) (C) --> (D) (B) --> (E) (E) --> (F) (F) --> (G) Ce flux gère le transfert des fichiers du partenaire ``A`` aux partenaires ``D`` et ``G``. Ce flux est composé de 6 **transferts** (numérotés ci dessous) répartis sur deux **routes** : .. uml:: left to right direction title Numérotation des transferts au sein d'un flux (A) --> (B): 1 (B) --> (C): 2 (C) --> (D): 4 (B) --> (E): 3 (E) --> (F): 5 (F) --> (G): 6 note right of (D) : Route 1 note right of (G) : Route 2 Cette numérotation se retrouve dans le contexte d'évaluation des modèles sous le nom ``flow_index``. Une deuxième numérotation est disponible dans le contexte d'évaluation: c'est l'indice du transfert dans la route. il se retrouve sous le nom ``route_index`` et correspond à l'ordre des transferts *au sein d'une route* : .. uml:: left to right direction title Numérotation des transferts au sein d'une route (A) --> (B): 1 (B) --> (C): 2 (C) --> (D): 3 (B) --> (E): 2 (E) --> (F): 3 (F) --> (G): 4 note right of (D) : Route 1 note right of (G) : Route 2 Chaque transfert correspond à une **règle de transfert** de Waarp R66. Cette règle est définie à partir d'un **modèle de flux**. L'écran de gestion des modèles de flux permet de consulter la liste des templates utilisé pour les flux ainsi que de les modifier. .. figure:: ../../_static/img/templates-list.png :align: center Liste des templates Structure du template ~~~~~~~~~~~~~~~~~~~~~ Un modèle de flux est une liste de règles de transfert : .. code-block:: yaml rules: [ Règle 1 Règle 2 ... règle N ] Définition des règles ~~~~~~~~~~~~~~~~~~~~~ Les règles sont composées d'un nom (``name``), d'un mode, d'une série de tâches (les traitements pré-transfert, post-transfert et en cas d'erreur), Ainsi que d'une condition d'exécution (``when``). Les chaines de traitement pré-transfert, post-transfert et en cas d'erreur peuvent être définies pour l'émetteur du fichier (``sender``) et le récepteur (``receiver``). .. code-block:: yaml name: "{{flow_name}}_{{flow_index}}" when: [condition] mode: send tasks: { sender: { pré: [ # Tâches exécutées par l'émetteur du fichier avant le transfert task ... ] post: [ # Tâches exécutées par l'émetteur du fichier après le transfert task ... ] error: [ # Tâches exécutées par l'émetteur du fichier en cas d'erreur task ...] } receiver: { pré: [ # Tâches exécutées par le récepteur du fichier avant le transfert task ... ] post: [ # Tâches exécutées par le récepteur du fichier après le transfert task ... ] error: [ # Tâches exécutées par le récepteur du fichier en cas d'erreur task ... ] } } Définition des tâches ~~~~~~~~~~~~~~~~~~~~~ Les tâches sont composées d'un type, d'arguments, différents pour chaque tâches (``path``), d'un délais (``delay``), et d'une condition d'exécution optionnelle (``when``). .. code-block:: yaml type: ZIP path: "#TRUEFULLPATH# #ARCHPATH#" delay: 1 when: route_index == last_index La saisie d'un template ----------------------- L'écran d'édition d'un template est découpé en 2 partie: La première décrit le template sous la forme d'une arborescence et permet d'accéder rapidement à une partie spécifique du template. La deuxieme permet de l'éditer. .. figure:: ../../_static/img/templates-edit.png :align: center Edition d'un template Ajout d'une règle ~~~~~~~~~~~~~~~~~ Pour ajouter une règle cliquer sur le bouton en face du label ``Règles`` et sélectioner ``Ajouter une règle``. .. figure:: ../../_static/img/templates-add-rule.png :align: center Ajout d'une règle Suppression d'une règle ~~~~~~~~~~~~~~~~~~~~~~~ Pour supprimer une règle cliquer sur le bouton en face du label de la règle à supprimer et selectioner ``Supprimer la règle``. .. figure:: ../../_static/img/templates-delete-rule.png :align: center Ajout d'une règle Ajout d'une tâche ~~~~~~~~~~~~~~~~~ Pour ajouter une tâche cliquer sur le bouton en face d'un des labels ``pre``, ``post`` ou ``error`` et sélectioner ``Ajouter une tâche``. .. figure:: ../../_static/img/templates-add-task.png :align: center Ajout d'une tâche Suppression d'une tâche ~~~~~~~~~~~~~~~~~~~~~~~ Pour supprimer une tâche cliquer sur le bouton en face du label de la tâche à supprimer et sélectioner ``Supprimer la tâche``. .. figure:: ../../_static/img/templates-delete-rule.png :align: center Ajout d'une règle