Altova FlowForce Server 2024 

Ejecutar XSLT con RaptorXML

Inicio Anterior Inicio Siguiente

En este ejemplo explicamos cómo ejecutar una transformación XSLT con RaptorXML Server (o RaptorXML+XBRL Server) ejecutándose bajo el control de FlowForce Server. El trabajo llama a la función xslt de RaptorXML Server. Al configurar el trabajo en la página de configuración de FlowForce Server hay dos formas de pasar los parámetros a la función xslt:

 

1.Tecleando pares clave-valor (nombre del parámetro y valor) en cajas de texto.

2.Con una expresión de FlowForce Server.

 

Ambos procedimientos se explican con más detalle a continuación.

 

Requisitos

Licencias necesarias: FlowForce Server, RaptorXML (o RaptorXML+XBRL) Server

Los servicios FlowForce Web Server y FlowForce Server deben escuchar en la en la dirección de red y en el puerto configurados previamente.

Una cuenta de usuario de FlowForce Server con permisos para uno de los contenedores (en este ejemplo usamos el contenedor, /public, al que puede acceder cualquier usuario autenticado).

El trabajo de este ejemplo ejecuta una hoja de estilos XSLT que procesa un archivo XML de entrada. Ambos archivos deben existir en un directorio del sistema operativo en el que se está ejecutando FlowForce Server para el que debe tener permisos de lectura y escritura. Este ejemplo usa el directorio C:\FlowForceExamples\RunXslt.

 

Archivos de ejemplo utilizados

El trabajo siguiente ejecuta una hoja de estilos XSLT llamada transformation.xslt, que toma como entrada el archivo books.xml y los dos parámetros obligatorios "year" y "genre". Puede ver contenido exacto de estos archivos en los extractos de código que hay a continuación. Para usar estos archivos en el trabajo debe guardar los dos extractos de código con los nombres que hemos mencionado en el directorio C:\FlowForceExamples\RunXslt.

 

Este es el aspecto de la hoja de estilos XSLT:

 

<?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

Este es el archivo XML de entrada:

 

<?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

 

Crear el trabajo

Puede crear un trabajo de FlowForce Server para ejecutar esa transformación XSLT siguiendo estos pasos:

 

1.Inicie sesión en la interfaz de administración de FlowForce Server y abra el contenedor /public/Examples. Este contenedor ya existe si lo creó en los ejemplos anteriores; de lo contrario puede crearlo con el comando Crear | Crear contenedor.

2.Haga clic en Crear trabajo. A continuación introduzca un nombre y, si quiere, una descripción para el trabajo que está creando. El nombre del trabajo de este ejemplo es "RunXslt".

3.Haga clic en Paso de ejecución nuevo.

4.Junto a "Ejecutar función" navegue hasta la función /RaptorXML/xslt.

fs_xslt_example_02

Nota:la función xslt existe directamente bajo el contenedor "RaptorXML", así como en cualquier contenedor que corresponda a cualquier versión de RaptorXML, por ejemplo "2024". Para más información sobre las diferencias entre los dos consulte Funciones genéricas versus funciones de una versión específica de RaptorXML.

 

5.Establezca el parámetro Directorio de trabajo en C:\FlowForceExamples\RunXslt.

6.Establezca el parámetro Archivo XSLT en transformation.xslt. Este archivo debe existir en el directorio de trabajo.

7.Establezca el parámetro Entrada XSLT en books.xml. Este archivo también debe existir en el directorio de trabajo.

8.Establezca el parámetro Parámetros como se explica a continuación:

 

a. Haga clic en el botón add junto a Parámetros. Esta acción expande una subsección en la que pude añadir un nombre y un valor por cada parámetro.

 

fs_xslt_example_03

b. Haga clic en el botón add por cada parámetro que quiera añadir. Para ejecutar el archivo XSLT de este ejemplo necesita la configuración siguiente:

 

fs_xslt_example_04

 

Los parámetros XSLT se pasan al trabajo como pares clave-valor. Observe que el nombre y el valor del parámetro se introducen en cajas de texto distintas. Además, el valor del parámetro debe ir entre comillas simples.

 

9.En "Servicio" marque la casilla Permitir acceso a este trabajo por HTTP e introduzca RunXsltService como nombre del servicio.

10.En "Credenciales" seleccione un registro de credenciales que ya exista o credenciales locales. Para más detalles consulte Credenciales.

11.Haga clic en Guardar.

 

Con estos pasos queda terminada la configuración del trabajo.

 

Suministrar parámetros XSLT como expresión

En el trabajo de configuración anterior pasó el parámetro a la función xslt mediante cajas de texto. Recuerde que hay otra manera de hacerlo, que es introduciendo una expresión de FlowForce en la caja de texto Parámetros, por ejemplo:

fs_xslt_example_05

Para usar este método haga clic en ff-setTo, junto a Parámetros, y después en <Expresión>. Asegúrese de que escribe la expresión correctamente para evitar errores. La expresión llama a la función de expresión list y genera una lista de pares clave-valor. En cada uno de esos pares la clave es el nombre del parámetro y el valor es el valor del parámetro. Es importante tener en cuenta que los valores del parámetro están entre comillas simples.

 

Para volver al diseño de las cajas de texto haga clic en ff-setTo, junto a Parámetros, y después en <Valor>.

 

Ejecutar el trabajo

Puede ejecutar el trabajo de varias maneras:

 

Vaya a Inicio y haga clic en Ver los desencadenadores y servicios activos. Después haga clic en la URL del trabajo que aparece en la columna "Información".

Introduzca http://127.0.0.1:4646/service/RunXsltService en la barra de direcciones del explorador. Tenga en cuenta que esta URL sólo funciona si el servicio FlowForce Server escucha en la dirección host y el nombre de puerto predeterminados. Si su puerto y host tienen otra configuración vaya a la página de configuración y cambie la dirección.

Si configura el campo Nombre de host de FlowForce Server desde la página de configuración puede ejecutar la llamada al servicio web directamente desde la página de configuración del trabajo. Para ello haga clic en el botón fs_ic_call_ws que hay junto a la casilla Permitir acceso a este trabajo por HTTP. Este botón sólo se habilita si configura este campo Nombre de host. Si no lo ha hecho, puede llamar al servicio web escribiendo la URL manualmente en la barra de dirección.

 

Si la aplicación le pide credenciales al acceder al servicio web, use las mismas que usó para acceder a FlowForce Server.

 

Recomendamos usar las credenciales de FlowForce Server para la autenticación HTTP sólo en casos de prueba. Para producción es mejor crear un usuario nuevo, darle el permiso Servicio - Uso en el contenedor en el que está el trabajo y después acceder al servicio web con esa cuenta. Para desactivar la autenticación HTTP y hacer público el servicio web debe dar el permiso Servicio - Uso al usuario Anónimo, véase ¿Cómo funcionan los permisos?.

 

Si el trabajo se ejecuta correctamente, en el explorador aparece el resultado, por ejemplo:

fs_xslt_example_06

Si el trabajo falla, en el explorador aparece el mensaje "Error al ejecutar el servicio". En este caso puede consultar el registro del trabajo de FlowForce Server para identificar el error.

© 2018-2024 Altova GmbH