Envoyer des messages AS2

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Intégration AS2  >

Envoyer des messages AS2

Une tâche qui envoie un message AS2 vers un partenaire éloigné est semblable à tout autre tâche FlowForce Server. En particulier, elle peut prendre des paramètres, contenir plusieurs étapes d'exécution, être déclenchée en tant que tâche programmée ou sur demande, etc. Cet exemple vous montre comment créer une simple tâche AS2 qui envoie un fichier EDIFACT vers un serveur AS2.

 

Conditions préalables

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 Créer | Créer tâche dans un conteneur, voir aussi Créer des tâches). Ensuite, ajouter une étape d'exécution qui appelle la fonction builtin_function/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 :

ff_as2_create_job_1

 

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'informations concernant les expressions dans FlowForce, voir Le langage d'expression FlowForce. Le fichier source (qu'il s'agisse de EDI ou de XML) peut 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 qui a été déployé précédemment sur FlowForce Server), voir Intégration AS2 avec MapForce et MapForce Server.

 

ID Message - Ce champ doit fournir la valeur pour le champ d'en-tête Message-ID, en tant que 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:

ff_as2_create_job_2

 

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 plus d'informations concernant les différents déclencheurs de tâche pouvant être configurés, voir Gérer les 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.

ff_as2_create_job_3

 

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 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 Comment fonctionnent les identifiants.

ff_as2_create_job_4

 

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 souhaitez créer plusieurs tâches qui sont très semblables, sachez que les tâches FlowForce peuvent être aisément dupliquées, ce qui vous aidera à économiser 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 configurez le service FlowForce Server pour qu'il soit exécuté sur un hôte et un port différents, assurez-vous d'ajuster cette URL en fonction, voir Définir les paramètres de 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 :

ff_as2_create_job_5

 

Les résultats d'exécution de la tâche peut aussi être consultés par le biais du journal FlowForce Server, voir Consulter le journal de 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 builtin_function/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 builtin_function/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 :

ff_as2_create_job_6

 

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 builtin_function/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éhensions de base des expressions FlowForce avant de les utiliser, voir Le langage d'expression FlowForce.


© 2019 Altova GmbH