Altova FlowForce Server 2024 Advanced Edition

Valider un XML avec le logging d'erreur

Accueil Préc Haut Suivant

Cet exemple vous montre comment créer une tâche qui valide un fichier XML par rapport à un schéma. Si la tâche échoue, pour une raison quelconque, les détails d'erreur seront conservés dans un fichier de journal. Pour la validation, nous allons utiliser la fonction valxml-withxsd de RaptorXML Server exécutée sous la gestion de FlowForce Server. Veuillez noter que, en ce qui concerne la partie erreur de logging, la technique illustrée dans cet exemple ne dépend pas de RaptorXML Server et peut s'appliquer à 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é.

 

Conditions préalables

Licences nécessaires : FlowForce Server, RaptorXML (ou RaptorXML+XBRL) Server

Les services FlowForce Web Server et FlowForce Server doivent écoutés l'adresse de réseau et le port configurés.

Votre compte utilisateur de FolwForce Server a les autorisations vers l'un des conteneurs (par défaut, le conteneur /public utilisé dans cet exemple est accessible uniquement aux utilisateurs authentifiés).

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 de 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\RaptorXMLServer2024\examples\NanonullOrg.xml.

 

Sur un Windows 64-bit exécutant un RaptorXML Server 32-bit, le chemin sera C:\Program Files (x86)\Altova\RaptorXMLServer2024\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.Connectez-vous sur votre interface d'administration Web de FlowForce Server et ouvrez le conteneur /public/Examples. Le conteneur public/Examples devrait déjà exister si vous avez suivi les exemples précédents ; autrement, créez-le en utilisant la commande Créer | Créer Conteneur.

2.Cliquer sur Créer tâche. Ensuite, entrez un nom, et optionnellement, une description de la tâche que vous créez. Cet exemple utilise "ValidateXML" comme nom de tâche.

fs_valxml_example_01

3.Sous "Paramètres d'entrée de tâche", cliquez sur la touche add, puis créez un nouveau paramètre de type "string en tant que fichier", par exemple :

fs_valxml_example_02

4.Sous "Exécuter avec le handling erreur/succès", cliquez sur la touche add, puis choisir nouvelle étape handling erreur/succès.

 

fs_valxml_example_03

5.Sous la condition "Exécuter avec handling erreur/succès", cliquez sur la touche add et choisir d'ajouter une nouvelle étape d'exécution, avec les paramètres suivants :

 

Exécuter la fonction

Naviguer pour la fonction /RaptorXML/valxml-withxsd.

Paramètres

à côté du paramètre du Fichier XML, cliquez sur ff-setTo 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 add et choisir d'ajouter une nouvelle étape d'exécution, avec les paramètres suivants :

 

Exécuter la fonction

Naviguer pour la fonction /system/compute

Paramètres

Définissez la valeur d'expression à :

 

as-file(stdout(failed-step()))

 

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 add pour ajouter une nouvelle étape d'exécution après l'étape précédente, avec les paramètres suivants :

 

Exécuter la fonction

Naviguer pour la fonction /system/filesystem/copy.

Paramètres

À côté du paramètre Source, cliquez sur ff-setTo 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éfinissez le paramètre Répertoire de travail à

C:\FlowForceExamples\ValidateXml.

 

La branche "En cas d'erreur" de la tâche devrait désormais avoir l'aspect suivant :

ex-raptor-01-05.

8.Sous "Service", sélectionnez la case à cocher Rendre cette tâche disponible via HTTP, et saisissez ValidateXmlService en tant que nom de service.

9.Sous "Identifiants", choisir une entrée d'identifiant existante ou spécifier un identifiant local. Pour tout détail, voir Identifiants.

10.Cliquer sur Enregistrer.

 

1.

 

Exécuter la tâche

Pour exécuter la tâche, procédez comme suit :

 

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/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 le 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 fs_ic_call_ws 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é.

fs_valxml_example_05

Saisissez un chemin de fichier XML dans le boîtier de texte (par exemple, C:\Program Files\Altova\RaptorXMLServer2024\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.

© 2017-2023 Altova GmbH