Exposer une tâche en tant que service Web
Cet exemple illustre comment créer une tâche FlowForce Server exposée en tant que service Web. La tâche exécute un mappage conçu avec Altova MapForce. Le mappage recherche des données depuis une base de données SQLite et extrait uniquement les enregistrements qui correspondent à une valeur fournie comme paramètre lorsque le service Web est appelé. Vous allez apprendre comment déployer le mappage existant de MapForce à FlowForce Server et le transformer en service Web. Une fois avoir terminé cet exemple, vous devrez pouvoir invoquer le service Web depuis un navigateur.
Prérequis
•Licences requises : MapForce édition Enterprise ou Professional, MapForce Server ou MapForce Server Advanced Edition, FlowForce Server
•Les services FlowForce Web Server et FlowForce Server doivent écouter les adresse réseau et port configurés.
•Vous disposez d’un compte utilisateur FlowForce Server avec des permissions vers un des conteneurs (par défaut, le conteneur /public est accessible à tout utilisateur authentifié).
•La tâche de mappage créée dans cet exemple écrit un fichier XML vers un répertoire local. Pour cette raison, le système d’exploitation sur lequel FlowForce Server est exécuté, un répertoire accessible en écriture doit exister où la sortie de la tâche sera créée. Cet exemple utilise C:\FlowForceExamples\GetPersonRecords.
•La tâche utilisée dans cet exemple lit les données depuis une base de données SQLite et ne requiert pas l’installation de tout pilote de base de données. Toutefois, si vous voulez utiliser une base de données différente, alors les pilotes de base de données doivent être installés non seulement sur l’ordinateur où le mappage est désigné mais aussi sur le serveur où la tâche est exécutée. Par exemple, dans le cas des bases de données de Microsoft Access, le Microsoft Access Runtime (https://www.microsoft.com/en-us/download/details.aspx?id=50040) doit être installé sur l’appareil où FlowForce Server est exécuté.
Fichiers de démo utilisés
Cet exemple utilise les fichiers suivants, disponibles sous le chemin suivant de l'ordinateur sur lequel MapForce est installé : ..\Documents\Altova\MapForce2025\MapForceExamples.
•FilterDatabaseRecords.mfd (le design fichier de mappage MapForce)
•Nanonull.sqlite (la base de données SQLite de laquelle le mappage lit les données).
Ce que fait le mappage
Le mappage discuté dans cet exemple est appelé FilterDatabaseRecords.mfd et est disponible dans le dossier du "Tutoriel" de MapForce (..\Documents\Altova\MapForce2025\MapForceExamples\Tutorial).
Tel qu’illustré ci-dessus, le composant source est une base de données qui stocke les enregistrements de l’utilisateur. Le composant cible est un fichier XML. La connexion de utilisateurs à ligne crée une ligne pour chaque enregistrement de base de données extraite de la source. Le mappage contient également un paramètre d’entrée à fournir lors de l’exécution. Double-cliquez sur la barre de titre du paramètre d’entrée pour afficher ses propriétés :
Le mappage contient également un composant SQL-WHERE placé entre la source et la cible. L’objectif du composant SQL-WHERE est de transférer au composant cible uniquement les enregistrements de la base de données qui correspondent à la condition last_name LIKE :sqlparam. Ceci est également configuré depuis les propriétés du composant :
Sur le mappage, la valeur de :sqlparam est obtenue par la concaténation de l’entrée avec le caractère %. Pour cette raison, si l’appelant fournit le paramètre d’entrée "m » lors de l’exécution, alors le mappage extraira les enregistrements dont le nom de famille commence par "m".
Pour plus d’information sur la conception des mappages tel que celui discuté dans l’exemple, consultez la documentation de (https://www.altova.com/fr/documentation).
Préparer le mappage pour déploiement sur FlowForce Server
Dans les instructions ci-dessous, le terme "appareil source" se réfère à l'ordinateur sur lequel MapForce est installé et le terme "appareil cible" se réfère à l'ordinateur sur lequel FlowForce Server est installé (ceci peut être ou ne pas être nécessairement le même ordinateur).
Avant de vouloir déployer le mappage sur l’appareil cible, poursuivez les étapes suit :
1.Veillez à ce que le service "FlowForce Web Server" est configuré sur écoute pour les requêtes client HTTP(S), voir Définir les paramètres de réseau. Par exemple, si FlowForce Server est installé sur le même ordinateur et est configuré avec les paramètres par défaut, alors vous devriez l’accéder en tapant http:/localhost:8082 dans votre navigateur. Si FlowForce Server est exécuté sur un autre ordinateur, veillez à ce que les connexions entrantes vers l’adresse et le port spécifiés ne soient pas bloquées par le pare-feu.
2.Veillez à ce que le service "FlowForce Server" soit aussi configuré pour écouter les requêtes client HTTP(S). Ce service gère les requêtes des tâches exposées comme services Web, voir aussi Fonctionnement. Pour cette raison, afin que le service Web soit accessible aux clients HTTP en dehors de l’hôte local, le service "FlowForce Server" doit être configuré pour écouter soit sur toutes les interfaces, soit sur une adresse spécifique autre que celle de l’hôte local. Vous pouvez vérifier si ce service est configuré correctement en accédant à l'URL suivante provenant du navigateur : http(s)://<host or IP address><port>/service/ . Lorsque vous êtes invité à saisir un mot de passe, fournissez le mot de passe à votre compte utilisateur FlowForce Server. Toutes les tâches sont exposées comme services Web (si applicable) et devraient apparaître comme liens directement dans la fenêtre du navigateur.
3.Vérifiez que le mappage est configuré pour utiliser des chemins relatifs au lieu des chemins absolus, comme suit :
a)Ouvrir le mappage FilterDatabaseRecords.mfd dans MapForce, cliquer avec la touche de droite sur la zone de mappage, et choisir Paramètres de mappage depuis le menu contextuel.
b)Si applicable, effacez la case Rendre les chemins absolus dans le code généré.
Note : | la case à cocher Assurez la convention de chemin Windows ... n’est pas applicable dans le cas de mappages désignés dans le langage BUILT-IN, tel que celui-ci. Il est pertinent uniquement lorsque le langage de mappage est soit XSLT ou XQuery. |
c)Enregistrer le mappage.
Les bases de données basées sur fichier, telles que Microsoft Access ou SQLite ne sont pas déployées vers l’appareil cible ensemble avec le mappage. C'est pourquoi, la base de données SQLite doit être copiée manuellement depuis l'appareil source vers l'appareil cible. Copier le fichier de base de données Nanonull.sqlite depuis le répertoire ..\Documents\Altova\MapForce2025\MapForceExamples dans l'appareil source vers un répertoire vide sur l'appareil cible. Dans cet exemple, le répertoire cible est C:\FlowForceExamples\GetPersonRecords. Prenez note de ce chemin car il sera référencé ultérieurement depuis la tâche FlowForce.
Le mappage est maintenant prêt à être déployé vers FlowForce Server. Pour plus d’information sur les mappages de déploiement, qui incluent les connexions de base de données, voir Préparer les fichiers pour l’exécution du serveur.
Déployer le mappage
Pour déployer le mappage sur FlowForce Server :
1.Dans le menu Fichier, cliquez Déployer sur FlowForce Server. Si vous déployez le mappage sur FlowForce Server sur un autre appareil, modifiez l’adresse de serveur et le port depuis "localhost:8082" sur ceux configurés depuis FlowForce Server paramètres de réseau.
2.Dans un soucis d’homogénéité avec tous les autres exemples, vous allons déployer le mappage vers le conteneur /public/Examples. Cliquer sur Chercher et modifier le chemin du conteneur vers /public/Examples. Le conteneur /public/Examples doit déjà exister si vous avez suivi les exemples précédents ; autrement, vous pouvez le créer en cliquant sur Créer un conteneur.
3.Cocher la case Ouvrir le nouveau navigateur pour créer une nouvelle tâche.
4.Cliquez sur OK.
Pour une référence aux paramètres de déploiement, consultez Déployer des mappages dans FlowForce Server.
Créer la tâche FlowForce
Pour l’instant, vous avez déployé le mappage sur FlowForce Server et avez ouvert la page de configuration dans votre navigateur (à condition que vous ayez choisi la case à cocher Ouvrir le navigateur web pour créer une nouvelle tâche dans la boîte de dialogue ci-dessus). Autrement, connectez-vous à l'interface d'administration de FlowForce Server Web, ouvrez la fonction de mappage précédemment déployé (il devrait se trouver dans le conteneur /public/Examples), puis cliquez sur Créer tâche.
Pour configurer la tâche :
1.Sous « Paramètres de tâche d’entrée », créez un nouveau paramètre d’entrée de type string. Cette valeur sera fournie par les appelants du service Web lorsqu’ils appellent une tâche. Appelons-la "LookupValue".
2.Configurer l’étape d’exécution comme suit :
•Définir la valeur du paramètre de l’entrée au paramètre d’entrée créé à l’étape précédente.
•Définir le répertoire de travail à C:\FlowForceExamples\GetPersonRecords. Notez que ce répertoire doit déjà exister dans le système de fichier et il doit déjà contenir la base de données Nanonull.sqlite si vous avez suivi les étapes précédentes.
3.Pour transformer la tâche en un service Web, cochez la case Rendre cette tâche disponible via HTTP... et saisissez le nom du service Web, par exemple :
Notez le nom de service ; vous en aurez besoin pour appeler le service Web.
4.Sous « Identifiants », choisissez un enregistrement d'identifiant existant ou spécifiez un identifiant local Identifiants.
Note : | il s’agit des identifiants de votre compte utilisateur sur le système d’exploitation et non ceux utilisés pour accéder à l’interface Administration Web de FlowForce Server. Le compte utilisateur doit pouvoir accéder le fichier de base de données Nanonull.sqlite depuis le répertoire de travail ; autrement, la tâche échouera d’exécuter avec succès. |
5.Cliquez sur Enregistrer.
Appeler le service Web
À cette étape, vous avez complété la configuration de tâche. Étant donné que cette tâche est exposée en tant que service Web, vous pouvez l’exécuter d’une des manières suivantes :
•Se rendre sur Accueil, puis cliquer sur Afficher tous les déclencheurs et les services actifs. Ensuite, cliquer sur l’URL de la tâche affichée dans la colonne "Info ».
•Saisissez http://127.0.0.1:4646/service/GetPersonRecordsService dans la barre d’adresse du navigateur. Noter que cette URL fonctionne uniquement si le service FlowForce Server écoute l’adresse d’hôte par défaut et le nom de port. Si vous avez défini d’autres paramètres d’hôte et de port dans la Page de Configuration, modifier l’adresse.
•Si vous définissez Ile champ optionnel Nom d’hôte du FlowForce Server depuis la Page de configuration, vous pouvez exécuter l'appel de service Web directement depuis la page de configuration de la tâche, en cliquant sur la touche adjacente à la case à cocher Rendre cette tâche disponible via HTTP. Sinon la touche ne sera pas affichée.
Lorsque vous êtes invité à accéder au service Web, fournissez les mêmes identifiants que vous utilisez pour vous connecter à FlowForce Server.
Vous ne fournirez vos identifiants d’utilisateur FlowForce Server pour l’authentification HTTP qu’à des fins de test. Pour la production, il est recommandé de créer un nouvel utilisateur FlowForce, d’accorder la permission Service - Utiliser à cet utilisateur dans le conteneur dans lequel la tâche est située, puis d’accéder au service Web avec le compte d’utilisateur correspondant. Pour désactiver l'authentification HTTP et rendre le service Web public, accorder la permission Service - Utiliser à l’utilisateur Anonymous, voir Comment fonctionnent les permissions. |
Puisque la tâche prend des paramètres, vous serez invité à fournir une valeur de paramètre quand vous accédez le service Web depuis le navigateur.
Si vous saisissez un chemin de répertoire valide comme M, par exemple, la tâche interrogera la base de données et renverra uniquement les lignes où le nom de famille de la personne commence par « M », par exemple :
Sur échec de la tâche, une erreur "Échec d'exécution de Service" s'affiche dans le navigateur. Si vous voyez une erreur, vérifiez le journal de la tâche pour de plus amples informations.