Envoyer des messages AS2
Une tâche qui envoie un message AS2 vers un partenaire éloigné est semblable à tout autre tâche FlowForce Server. Elle peut notamment prendre des paramètres, contenir des étapes d’exécution variées, être déclenchée comme tâche planifiée ou sur demande, etc. Cet exemple vous montre comment créer une simple AS2 tâche qui envoie un fichier AS2 à un fichier EDIFACT.
Prérequis
•Un serveur AS2 doit être disponible et configuré pour accepter des messages AS2 provenant des clients HTTP (dans ce cas, FlowForce Server).
•Les détails du partenaire éloigné doivent être ajoutés dans FlowForce Server, voir Configurer les partenaires AS2. Au minimum, pour un test de connectivité de base, vous pourriez définir un partenaire sans certificats (s'il accepte des connexions non chiffrées et non signées). Dans ce cas, il vous suffit de connaître l'URL du partenaire, le nom AS2 du partenaire, et le nom AS2 de votre institution pour pouvoir communiquer avec ce partenaire.
Créer la tâche
Créer une nouvelle tâche FlowForce Server de la manière standard (cliquer sur Créer | Créer tâche dans un conteneur, voir aussi Créer des tâches). Ensuite, ajoutez une étape d'exécution qui appelle la fonction /system/as2/send. Pour chercher rapidement cette fonction, cliquer dans le dialogue Exécuter fonction, et commencer à saisir le nom de la fonction, par exemple :
Une fois avoir ajouté la fonction à la tâche, sa structure est chargée dans la page, et les champs pour tous les paramètres requis deviennent disponibles. Pour s'assurer que la transmission AS2 est définie correctement, définir les paramètres comme suit :
•Partenaire - Ce champ doit être une référence à un objet de partenaire configuré plus tôt, voir Configurer les partenaires AS2. Cliquer dans le champ pour chercher l'objet du partenaire.
•Message - Ce champ doit contenir une expression FlowForce qui ouvre le stream que vous souhaitez inclure dans le message. Par exemple, pour envoyer un fichier EDIFACT trouvé sous C:\as2\orders.edi, avec un en-tête application/EDIFACT de type Contenu, saisir l'expression suivante :
stream-open("c:\as2\orders.edi", "application/EDIFACT")
Pour plus d'information concernant les expressions dans FlowForce, voir Expressions FlowForce. Le fichier source (que ce soit EDI ou XML) pourrait aussi être un fichier généré avec MapForce (par exemple, par une étape d’exécution précédente qui exécute un mappage déployé précédemment sur FlowForce Server), voirS2 Integration with MapForce and MapForce Server.
•Message ID - Ce champ doit fournir la valeur pour le champ en-tête Message-ID comme string. Pour générer cette valeur, appeler la fonction d'expression new-message-id, comme indiqué ci-dessous.
•Abandonner sur erreur - une tâche peut consister en plusieurs étapes d'exécution, pas seulement celle qui envoie le message AS2. Par exemple, vous pouvez décider de définir d'autres étapes d'exécution après l'étape actuelle, afin de traiter la MDN retournée par le partenaire. Définir ce paramètre sur TRUE (activé) pour abandonner toute exécution de tâche ultérieure si l'étape d'exécution actuelle échoue. Si le paramètre Abandonner sur erreur est TRUE (activé) et que l'étape d'exécution actuelle échoue, toute étape d'exécution suivante ne sera plus exécutée et l'ensemble de la tâche sera abandonné, voir aussi Traitement des étapes par séquence.
L'image ci-dessous illustre une étape d'exécution modèle référant à un partenaire "APOLLO" et fournit un fichier EDIFACT dans le corps du message à l'aide d'une expression FlowForce Server expression :
Comme indiqué ci-dessus, une tâche FlowForce peut être configurée pour être exécutée à la demande, ou en tant que tâche programmée. Pour des informations sur les déclencheurs de tâche variés qui peuvent être configurés, voir Gérer des déclencheurs. Dans cet exemple, nous allons configurer la tâche AS2 pour être exécutée sur demande depuis le navigateur en tant que service Web, comme indiqué ci-dessous. Observer le nom du service Web, il s'agit de "sendAS2" dans cet exemple, mais le nom peut être différent, selon les besoins. Pour plus d’informations, voir Exposer des tâches en tant que Services Web.
Enfin, avant de tenter d'enregistrer la tâche, saisir les identifiants vers le compte du système d'exploitation dans lequel FlowForce Server doit être exécuté (veuillez noter qu'il ne s'agit pas des mêmes identifiants que ceux que vous utilisez pour se connecter à FlowForce Server). Dans cet exemple, les identifiants sont saisis directement dans la tâche ; néanmoins, il est également possible de les stocker séparément en tant qu'entrée d'identifiant, et les sélectionner (référer à) tout simplement depuis l'intérieur des tâches, voir aussi identifiants.
Vous pouvez maintenant enregistrer la tâche en cliquant la touche Enregistrer en bas de la page.
FlowForce Server effectue des contrôles d'intégrité de données qui vous éviteront d'enregistrer la tâche si elle n'est pas configurée correctement. Il arrive souvent que des erreurs sont provoquées par des expressions incorrectes fournies en tant que valeurs de paramètre, voir Gérer les types de données en étapes. Si vous êtes novice à FlowForce Server, veuillez consulter les sections La langue d'expression FlowForce et les Exemples de Configuration de tâche. |
Note : | si vous devez créer des tâches multiples similaires, soyez conscients que les tâches FlowForce peuvent être facilement dupliquées, vous économisant à la fois du temps, voir Dupliquer les tâches. |
Exécuter la tâche
Puisque cette tâche a été exposée en tant que service Web, vous pouvez l'exécuter en saisissant l'URL de service Web dans la barre d'adresse du navigateur. L'URL du service Web est composé de l'URL sous laquelle le service FlowForce Server est exécuté (par exemple, http://localhost:4646/), plus la partie service/sendAS2, où sendAS2 est le nom du service Web que nous avons donné précédemment. L'URL finale est donc : http://localhost:4646/service/sendAS2. Si vous avez configuré le service FlowForce Server pour être exécuté sur un hôte et un port différents, ajustez cet URL conformément, voir Définir les paramètres Réseau. L'image ci-dessous illustre le résultat d'une exécution réussie telle qu'elle pourrait apparaître dans le navigateur :
Les résultats de l’exécution de la tâche peuvent également être visionnés par le biais d’un journal de FlowForce Server, voir Afficher le journal de la tâche.
Traiter le résultat de tâche AS2
Vous avez vu ci-dessus comment créer une tâche simple qui consiste en une seule étape d'exécution qui appelle la fonction /system/as2/send. Néanmoins, dans un scénario réel, il est probable que votre tâche FlowForce Server nécessitera plus d'étapes.
Chose importante, le type de retour de la fonction /system/as2/send est un objet AS2 MDN. Pour pouvoir extraire une information utile de la part de cet objet, il doit ensuite être traité au moyen des fonction d'expression FlowForce. Par exemple, pour obtenir l'ID de message du message AS2 original, vous pouvez ajouter une étape d'exécution comme celle illustrée ci-dessous :
Dans la tâche ci-dessus, la deuxième étape obtient l'ID de message AS2 en tant que string, en prenant le résultat de la première étape (déclaré en tant que output1) en tant que paramètre. Pour y parvenir, il appelle la fonction /system/compute qui est la manière habituelle dans FlowForce pour calculer une expression. L'expression applique la fonction d'expression as2-message-id au résultat de la première étape d'exécution (output1).
Veuillez noter que FlowForce Server comprend d'autres fonctions d'expression qui peuvent s'avérer pratiques dans des circonstances variées. Par exemple, pour déterminer si l'appel AS2 a réussi, vous pouvez appeler la fonction as2-success, comme montré ci-dessus. De même, pour obtenir le statut HTTP de l'appel AS2, vous pouvez appeler la fonction d'expression as2-http-status. Toutes les fonctions d'expression disponibles sont listées dans le chapitre Fonctions d'expression. Celles applicables à AS2 et MIME sont listées dans les chapitres Fonctions d'expression AS2 et Fonctions d'expression MIME, respectivement.
Une règle importante dans le travail avec les expressions FlowForce est de payer l'attention au type de données de retour de chaque fonction. Le type de données doit être compatible sur toutes les fonctions et étapes d'appel ; sinon, la tâche ne peut pas être enregistrée en raison des erreurs de validation. Il est donc fortement recommandé de posséder une compréhension de base des expressions FlowForce avant de les utiliser, voir Expressions FlowForce.