.. _ref-task-sendmessage: SENDMESSAGE =========== .. versionadded:: 0.16.0 Le traitement ``SENDMESSAGE`` envoie un acquittement PeSIT (F.MESSAGE) à un partenaire distant. Il est utilisé pour les acquittements applicatifs de bout en bout dans les architectures *Store and Forward*. Cette tâche est **spécifique au protocole PeSIT**. Si elle est configurée sur une règle utilisée par un autre protocole, elle est silencieusement ignorée (pas d'erreur de transfert). Fonctionnement -------------- La tâche ouvre une connexion PeSIT dédiée vers le partenaire, envoie un F.MESSAGE contenant l'identifiant du transfert et un message texte, puis ferme la connexion. **Tous les paramètres sont optionnels.** Le partenaire et le compte sont résolus automatiquement depuis les infos de transfert lorsque le mécanisme de routage Store & Forward est configuré (voir ci-dessous). **La tâche peut être configurée systématiquement** en post-traitement de toutes les règles de réception PeSIT, sans risque : - Si l'émetteur a demandé un acquittement (via ``replyTo`` sur son partenaire, ou via PI 61/PI 62), la tâche envoie le F.MESSAGE automatiquement. - Si l'émetteur n'a pas demandé d'acquittement (aucune information de retour disponible), la tâche est **silencieusement ignorée** — le transfert se termine normalement sans erreur. - Si le protocole du transfert n'est pas PeSIT, la tâche est également ignorée. Il n'est donc **pas nécessaire d'ajouter une condition** à la tâche pour gérer ces cas : le comportement est automatique. Paramètres ---------- * **to** (*string*, optionnel) — Le nom du partenaire PeSIT distant vers lequel envoyer le message. Si omis, résolu depuis ``__replyPartner__`` dans les infos de transfert (positionné automatiquement via PI 99 ``REPLY=`` ou PI 61/PI 62). Supporte la substitution de variables. * **as** (*string*, optionnel) — Le login du compte distant à utiliser pour l'authentification. Si omis, résolu depuis ``__replyAccount__`` dans les infos de transfert, ou le premier compte disponible sur le partenaire. * **message** (*string*, optionnel) — Le contenu du F.MESSAGE. Si omis, un message ACK par défaut est généré (``ACK transfer ``). Supporte la substitution de variables (``#TRUEFILENAME#``, ``#TRANSFERID#``, etc.). Maximum 4096 caractères (PI 91). Exemples -------- **Acquittement automatique (zéro argument)** — le plus simple, recommandé lorsque ``replyTo`` est configuré sur le partenaire émetteur : .. code-block:: yaml post: - type: SENDMESSAGE **Acquittement avec message personnalisé** : .. code-block:: yaml post: - type: SENDMESSAGE args: message: "Fichier #TRUEFILENAME# recu avec succes" **Acquittement explicite (partenaire et compte spécifiés)** : .. code-block:: yaml post: - type: SENDMESSAGE args: to: "partenaire-emetteur" as: "mon-login" message: "ACK transfer #TRANSFERID#" .. note:: Si aucun partenaire n'est résolvable (pas de ``to`` explicite, pas de ``__replyPartner__`` dans les infos de transfert), la tâche est **silencieusement ignorée**. Cela signifie que l'émetteur n'a pas demandé d'acquittement. La tâche ``SENDMESSAGE`` peut donc être configurée systématiquement en post-traitement sans risque : elle ne s'exécute que quand un ACK a été demandé. Résolution du partenaire ------------------------ Lorsque le paramètre ``to`` n'est pas renseigné, la tâche résout le partenaire dans l'ordre suivant : 1. ``__replyPartner__`` dans les infos de transfert (positionné via PI 99 ``REPLY=`` ou manuellement) 2. Premier partenaire PeSIT correspondant au ``__customerID__`` (PI 61) 3. Premier partenaire PeSIT correspondant au ``__bankID__`` (PI 62) Lorsque le paramètre ``as`` n'est pas renseigné : 1. ``__replyAccount__`` dans les infos de transfert 2. Premier compte disponible sur le partenaire résolu Intégration Store & Forward ---------------------------- Pour une chaîne A → B → C avec acquittement automatique : 1. **Partenaire** : configurer ``replyTo`` dans la :ref:`configuration protocolaire ` de chaque partenaire 2. **Destinataire final (C)** : ajouter ``SENDMESSAGE`` en post-traitement 3. **Relais (B)** : activer ``relayMessages: true`` dans la configuration du serveur PeSIT Voir la section :ref:`ref-proto-pesit` pour le détail du mécanisme de routage et de relais automatique.