Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Transforma un XML en otro usando un  XSLT. Permite llamadas Java desde el XSLT.

MODULO

NOMBRE TÉCNICO

PARAMETROS

DESCRIPCIÓN

xmltransform

localejbs/com.realtech.adapter.orch.modules.core.ext.XMLTransformBean

xmltransform.use_content_of

Nombre del modulo del que tomar el contenido que ha salido como resultado.

 

 



xmltransform.use_xslt_file

Marcar con ‘X’ para usar un fichero de transformación XSLT.

 

 



xmltransform.xslt_filename

Fichero con el maping y lógica empleados en la transformación.

 

 



xmltransform.ex_mod

Determina el módulo a ejecutar cuando se capturen excepciones.

 

 



xmltransform.param_name[X]

Nombre del parámetro xsl que al que se asignará un valor al realizar la transformación. Puede haber varios, se especificarán de forma incremental, comenzando en 0, siguiendo con 1, 2, … Ej: “UsuarioId”

 

 



xmltransform.param_value[X]

Valor que se asignará al parámetro xsl, pudiendo ser:

- un valor directo

- un campo a extraer del contexto, debe estar indicado de la forma @{CAMPO}.  Posibles valores de contexto: uid, externalUID, sender, receiver, serviceName, scenarioName. Valores sensibles a mayúsculas y minúsculas, si no coinciden, lanza excepción.

-el payload de otro modulo: module{moduleName} codificado en base64.

-El contenido de una entrada del hashmap del contexto sessionParameters. Para indicarlo se debe poner: sessionParameters{idHashMap}

 

Puede haber varios, se especificarán de forma incremental, comenzando en 0, siguiendo con 1, 2, … Ej: “@{uid}”, “ValorFijo”, “@{core}”

 

 



xmltransform.treatAttachments

Indica si se debe añadir al XML de entrada el contenido del hashMap del contexto invoiceAttachments. Se añadirá al XML un segmento tal que el siguiente para poder ser usado en el XSLT:

           <Adjuntos>

                        <adjunto>

                                    <nombre>Adjunto1</nombre>

                                    <adjunto>BASE_64_CONTENT_1</adjunto>

                        </adjunto>

                        <adjunto>

                                    <nombre>Adjunto2</nombre>

                                    <adjunto>BASE_64_CONTENT_2</adjunto>

                        </adjunto>

            </Adjuntos>

 

 



xmltransform.xslt_is_lookup

Indica si el XSLT definido tiene RFC lookUP en el ECC para transformación de datos.

 

 



xmltransform.sap_rfc_dest

Destino RFC para la RFC lookup

 

 



xmltransform.xslt_lookup_direction

Parámetro que define la dirección de la factura. Se debe pasar a la RFC definida en el ECC.

Valores: “I” o “O”

 

 



xmltransform.xslt_lookup_scenario

Parámetro que define el escenario de factura. Se debe pasar a la RFC definida en el ECC.

Valores: “01” o “02”

 

 



xmltransform.xslt_lookup_errors

Indica si tracear los errores en el lookup: “X”

 

 



xmltransform.xslt_lookup_procesadas

Indica si tracear las transformaciones realizadas en el lookup: “X”


Desde el XSLT se puede llamar a cualquier metodo Java que se encuentre en la JDK o en las clases desarrolladas. Con tal fin se ha creado una clase estática de utilidades para ser llamada desde los XSLTs. La clase es com.realtech.efact.j2ee.ejb.mod.xmltransf.util.XSLTJavaUtils. PAra utilizarla en el XSLT se debe definir el namespace:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:java="java" xmlns:utils="com.realtech.efact.j2ee.ejb.mod.xmltransf.util.XSLTJavaUtils">

Y luego llamar a algún método estático. Ejemplo:

<xsl:value-of select="utils:crc32(h:invoice)" disable-output-escaping="yes"/>

Esta sentencia llamada al método crc32 de la citada clase y le pasa como valor lo que contenga la etiqueta invoice del xml de origen.

Métodos actuales de la clase XSLTJavaUtils :

  • crc32: Calcula el hash crc32 del texto recibido
  • sh512: Calcula el hash sha512 del texto recibido