Altova FlowForce Server 2024 Advanced Edition

Exécuter XSLT avec RaptorXML

Accueil Préc Haut Suivant

Cet exemple montre comment exécuter une transformation XSLT avec RaptorXML Server (ou RaptorXML+XBRL Server) exécuté sous le gestion de FlowForce Server. La tâche appellera la fonction xslt de RaptorXML Server. Lorsque vous configurez la tâche depuis la page de configuration de FlowForce Server, il y a deux manières de fournir les paramètres à la fonction xslt :

 

1.En tapant les paires key-value (nom et valeur du paramètre) dans les zones de texte.

2.En saisissant une expression FlowForce Server.

 

Les deux manières sont présentées plus en détail ci-dessous.

 

Prérequis

Licences requises : FlowForce Server, RaptorXML (or RaptorXML+XBRL) Server

Les services FlowForce Web Server et FlowForce Server doivent écouter adresse réseau et le 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 exécute une feuille de style XSLT qui traite un fichier d’entrée XML. Les deux fichiers doivent exister dans un répertoire sur le système d’exploitation où FlowForce Server est exécuté et vous devez avoir des droits de lecture et d’écriture de fichiers dans ce répertoire. Cet exemple utilise le répertoire C:\FlowForceExamples\RunXslt.

 

Fichiers de démonstration

La tâche illustrée ci-dessous exécutera une feuille de style XSLT appelée transformation.xslt qui prend un fichier comme entrée appelé books.xml et deux paramètres requis, notamment "year" et "genre". Le contenu exact des fichiers est affiché dans la liste de code ci-dessous. Pour utiliser ces fichiers dans la tâche, enregistrez les listes de code avec les noms de fichier indiqués sous le répertoire C:\FlowForceExamples\RunXslt.

 

La feuille de style XSLT a l’air comme suit :

 

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" exclude-result-prefixes="xs fn">
  <xsl:output method="xml" encoding="UTF-8" byte-order-mark="no" indent="yes"/>
  <xsl:param name="year" as="xs:string" required="yes"/>
  <xsl:param name="genre" as="xs:string" required="yes"/>
  <xsl:template match="/">
    <library>
        <xsl:attribute name="xsi:noNamespaceSchemaLocation" namespace="http://www.w3.org/2001/XMLSchema-instance" select="'library.xsd'"/>
        <last_updated>
          <xsl:sequence select="xs:string(fn:current-dateTime())"/>
        </last_updated>
        <xsl:for-each select="(./books/book)[(fn:string(year) &gt; \$year)]">
          <publication>
              <xsl:for-each select="@id">
                <id>
                    <xsl:sequence select="fn:string(.)"/>
                </id>
              </xsl:for-each>
              <author>
                <xsl:sequence select="fn:string(author)"/>
              </author>
              <title>
                <xsl:sequence select="fn:string(title)"/>
              </title>
              <genre>
                <xsl:sequence select="\$genre"/>
              </genre>
              <publish_year>
                <xsl:sequence select="xs:string(xs:integer(fn:string(year)))"/>
              </publish_year>
          </publication>
        </xsl:for-each>
    </library>
  </xsl:template>
</xsl:stylesheet>

transformation.xslt

Le fichier d’entrée XML a l’air comme suit :

 

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="books.xsd">
  <book id="1">
    <author>Mark Twain</author>
    <title>The Adventures of Tom Sawyer</title>
    <category>Fiction</category>
    <year>1876</year>
  </book>
  <book id="2">
    <author>Franz Kafka</author>
    <title>The Metamorphosis</title>
    <category>Fiction</category>
    <year>1912</year>
  </book>
  <book id="3">
    <author>Herman Melville</author>
    <title>Moby Dick</title>
    <category>Fiction</category>
    <year>1851</year>
  </book>
  <book id="4">
    <author>Miguel de Cervantes</author>
    <title>Don Quixote</title>
    <category>Fiction</category>
    <year>1605</year>
  </book>
</books>

books.xml

 

Créer la tâche

Vous pouvez créer des tâches de FlowForce Server pour exécuter une transformation XSLT comme suit :

 

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 "RunXslt" comme nom de tâche.

3.Cliquer sur nouvelle étape d’exécution.

4.À côté de la fonction Exécuter, parcourez pour la fonction /RaptorXML/xslt.

fs_xslt_example_02
Note :la fonction xslt existe directement sous le conteneur "RaptorXML" et également dans tout conteneur qui correspond à la publication spécifique de RaptorXML, par exemple, "2024". Pour plus d’informations concernant les différences entre les deux, voir Fonctions RaptorXML génériques par rapport à spécifiques aux releases.

 

5.Définir le paramètre Répertoire de travail à C:\FlowForceExamples\RunXslt.

6.Définir le paramètre Fichier XSLT à transformation.xslt. Ce fichier doit exister dans le répertoire de travail.

7.Définir le paramètre Entrée XSLT à books.xml. Ce fichier doit aussi exister dans le répertoire de travail.

8.Définir le paramètre Paramètres comme suit :

 

a. Cliquez sur la touche add à côté des Paramètres. Ceci élargit une sous-section au sein d’une page où vous pouvez ajouter chaque nom et valeur de paramètre individuellement.

 

fs_xslt_example_03

b. Cliquez sur la touche add pour chaque nouveau paramètre que vous devez ajouter. Pour exécuter XSLT dans cet exemple, vous allez devoir saisir les paramètres comme suit :

 

fs_xslt_example_04

 

Les paramètres XSLT sont fournis à la tâche comme paires key-value. Notez que le nom et la valeur de paramètre sont saisis dans des boîtes séparées. Aussi, la valeur de paramètre est indiquée entre guillemets.

 

9.Sous "Service", sélectionnez la case à cocher rendre cette tâche disponible via HTTP et saisissez RunXsltService comme nom du service.

10.Sous "Identifiants", choisissez un enregistrement d’identifiant existant ou spécifiez un identifiant local. Pour plus de détails, voir Identifiants.

11.Cliquez sur Enregistrer.

 

Ceci conclut la partie de configuration de la tâche.

 

Fournir les paramètres XSLT comme expression

Dans la configuration de tâche ci-dessus, vous avez fourni le paramètre à la fonction xslt en utilisant les zones de texte. Notez qu’il existe une deuxième manière de faire ceci, en saisissant une expression FlowForce Server dans la zone de texte Paramètres, par exemple :

fs_xslt_example_05

Pour utiliser cette deuxième approche, cliquez sur ff-setTo à côté de Paramètres et puis cliquez sur <Expression>. Assurez-vous de taper l’expression lentement afin d’éviter des erreurs de parsage. L’expression appelle la fonction d’expression list et crée une liste de deux paires key-value. Dans chaque paire key-value, la clé est le nom du paramètre et la valeur est la valeur du paramètre. De manière importante, les valeurs de paramètre sont ensuite mises entre guillemets simples.

 

Pour passer de nouveau à la mise en page de la zone de texte précédente, cliquez sur ff-setTo à côté des Paramètres, puis cliquez sur <Value>.

 

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 ».

Saisissez http://127.0.0.1:4646/service/RunXsltService 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.

 

Si la tâche est exécutée avec succès, le navigateur affiche la sortie de la tâche, par exemple :

fs_xslt_example_06

Si la tâche échoue, le navigateur affiche un message "Exécution de service a échoué". Dans ce cas, contrôlez FlowForce Server journal de tâche pour identifier l'erreur.

© 2017-2023 Altova GmbH