Valider XML avec le logging d'erreur
Cet exemple vous montre comment créer une tâche qui valide un fichier XML par rapport au schéma. Si la tâche échoue pour une raison ou une autre, les détails d’erreur seront écrits dans un fichier log. Pour la validation, nous allons utiliser la fonction valxml-withxsd de RaptorXML Server exécutée sous la gestion de FlowForce Server. Notez que, pour la partie logging d’erreur, la technique illustrée dans cet exemple ne dépend pas de RaptorXML Server et peut être appliquée à d’autres types de tâches.
Note : | les fonctions de RaptorXML Server deviennent disponibles dans FlowForce Server après l'installation de RaptorXML Server. |
Dans cet exemple en particulier, la tâche sera définie en tant que service Web, de manière à ce que vous puissiez le déclencher sur demande, en accédant à une URL depuis le navigateur. Néanmoins, si nécessaire, vous pouvez aussi ajouter un déclencheur minuteur (ou un déclencheur système de fichier) à la tâche, semblable à ce qui a été montré dans d'autres exemples. Vous pouvez même ajouter à la même tâche une combinaison de déclencheur et de service Web. Ainsi, la tâche sera exécutée non seulement telle que définie par les règles du déclencheur, mais aussi sur demande, lorsque le service Web est appelé.
Prérequis
•Licences requises : FlowForce Server, RaptorXML (or RaptorXML+XBRL) Server
•Les services FlowForce Web Server et FlowForce Server doivent écouter les adresse réseau et port configurés.
•Votre compte d'utilisateur FlowForce Server comporte des permissions vers un des conteneurs (par défaut, le conteneur /public est accessible à tout utilisateur authentifié).
•La tâche créée dans cet exemple génère un fichier de journal à chaque fois qu'il est exécuté. C'est pourquoi, sur le système d'exploitation sur lequel FlowForce Server est exécuté, vous devez posséder les droits pour créer les fichiers dans certains répertoires (cet exemple utilise le répertoireC:\FlowForceExamples\ValidateXml).
Fichiers démo utilisés
Le fichier XML validé dans cet exemple est disponible dans le dossier d'installation RaptorXML Server, sous le chemin suivant : C:\Program Files\Altova\RaptorXMLServer2025\examples\NanonullOrg.xml.
Sur un Windows 64-bit exécutant un RaptorXML Server 32-bit, le chemin sera C:\Program Files (x86)\Altova\RaptorXMLServer2025\examples\NanonullOrg.xml, sauf si vous avez installé RaptorXML Server dans un dossier différent.
Vous pouvez également utiliser tout autre fichier XML pour la validation.
Créer la tâche
1.Se connecter dans l’interface d'administration Web FlowForce Server et ouvrir le conteneur /public/Examples. Le conteneur public/Examples devrait déjà exister si vous avez bien suivi les exemples précédents, sinon, le créer en utilisant la commande Créer | Créer conteneur.
2.Cliquez sur Créer la tâche. Ensuite, saisir un nom et en option une description pour la tâche que vous créez. Cet exemple utilise "ValidateXML" comme nom de tâche.
3.Sous "Paramètres d'entrée de tâche", cliquez sur la touche , puis créez un nouveau paramètre de type "string en tant que fichier", par exemple :
4.Sous "Exécuter avec le handling erreur/succès", cliquez sur la touche , puis choisir nouvelle étape handling erreur/succès.
5.Sous la condition "Exécuter avec handling erreur/succès", cliquez sur la touche et choisir d'ajouter une nouvelle étape d'exécution, avec les paramètres suivants :
Exécuter fonction | Naviguer pour la fonction /RaptorXML/valxml-withxsd. |
Paramètres | À côté du paramètre du Fichier XML, cliquez sur et sélectionnez le paramètre d'entrée de tâche inputFile déclaré plus tôt. |
6.Sous la condition "En cas d'erreur", cliquez sur la touche et choisir d'ajouter une nouvelle étape d'exécution, avec les paramètres suivants :
Exécuter fonction | Chercher la fonction /system/compute. | |
Paramètres | Définissez la valeur d'expression à :
Les parties entre accolades représentent deux expressions FlowForce. Cette expression reçoit la sortie, la convertit en stream, puis l'écrit dans un fichier sur le disque :
•La fonction failed-step retourne le result de l'échec de l'étape. Il s'agit d'un type abstrait de FlowForce qui, afin de devenir plus utile, doit être fourni en tant qu'argument aux fonctions exitcode, stderr , ou error-message, voir ci-dessous. •La fonction stdout reçoit la sortie standard depuis le result, en tant que stream, en partant du fait qu'il y a une sortie standard. •La fonction as-file crée un fichier depuis le stream. Le chemin sera spécifié dans une étape ultérieure. | |
Attribuer ce résultat d'étape à | Saisir une valeur qui identifiera de manière unique le résultat de cette tâche, par exemple, MyResult. Ce faisant, vous déclarez la valeur en tant que variable afin de pouvoir l'utiliser dans une étape ultérieure. |
7.Cliquez sur la touche pour ajouter une nouvelle étape d'exécution après l'étape précédente, avec les paramètres suivants :
Exécuter fonction | Chercher la fonction /system/filesystem/copy |
Paramètres | À côté du paramètre Source, cliquez sur et sélectionnez la variable MyResult déclarée plus tôt.
À côté du paramètre Cible, tapez le chemin où le journal sera enregistré (dans cet exemple, le chemin est C:\FlowForceExamples\ValidateXml\error.log).
Sélectionnez la case à cocher à côté du paramètre Overwrite. Le fichier de journal est généré chaque fois que la tâche est exécutée, assurant de cette manière que la tâche n'échoue pas quand le fichier de journal existe déjà.
Définir le paramètre Répertoire de travail à C:\FlowForceExamples\ ValidateXML. |
La branche « On Error » de la tâche devrait avoir l’air de ceci :
8.Sous "Service", cliquer pour cocher la case Rendre cette tâche disponible via HTTP, et saisir ValidateXmlService en tant que nom du service.
9.Sous "Identifiants", choisissez un enregistrement d’identifiant existant ou spécifiez un identifiant local. Pour plus de détails, voir Identifiants.
10.Cliquez sur Enregistrer.
Exécuter la tâche
Pour exécuter la tâche, suivez l’une des étapes 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 ».
•Saisir http://127.0.0.1:4646/service/ValidateXmlService 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 a été configurée pour accueillir un paramètre en tant qu'entrée, le navigateur affiche un formulaire dans lequel vous pouvez entrer un chemin vers le fichier XML qui doit être validé.
Saisissez un chemin de fichier XML dans le boîtier de texte (par exemple, C:\Program Files\Altova\RaptorXMLServer2025\examples\NanonullOrg.xml), et cliquez sur Soumettre.
Si la tâche est exécutée avec succès (à savoir, si elle retourne le code de sortie 0), le navigateur affiche la sortie standard de la tâche, par exemple :
file:///C:/Program%20Files/Altova/RaptorXMLServer/examples/NanonullOrg.xml: runtime="16ms" result="OK"
Si la tâche retourne un code de sortie autre que 0 (par exemple, en raison d'un chemin incorrect, des erreurs de validation, etc.), le navigateur affiche un message "Exécution de service échouée" et la sortie est écrite vers le fichier C:\FlowForceExamples\ValidateXml\error.log. Dans le cas où le fichier de journal n'a pas été généré, vérifiez le journal de tâche pour identifier l'erreur. Il se pourrait que, par exemple, la fonction /system/filesystem/copy a échoué car vous n'avez pas de permission d'écrire vers le chemin cible.