Aplicar transformaciones XLS

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Ejemplos de reglas de negocio > XML Helper para interfaces >

Aplicar transformaciones XLS

Introducción

XML Helper hace parte del API de reglas de negocio de Bizagi, provee acceso a la información de sus procesos cuando trabaja con información estructurada XML, como se describe en XML Helper.

Esta sección muestra un ejemplo de cómo usar uno de los métodos de XML Helper, el método transformXmlAsString, que está orientado a aplicar el archivo de transformación XSL directamente a la información que se se ha obtenido del modelo de datos de Bizagi o de información que se actualizará en el modelo de datos de Bizagi.

 

Ejemplo

En el siguiente proceso de ejemplo, asumimos que tenemos una entidad paramétrica llamada Vendor.

Esta entidad tiene los siguientes registros:

 

xmlhelper_ex1_vendors

 

Cuando se quieren obtener esos registros mientras se les da formato bajo una estructura XML diferente a la que es presentada por defecto en Bizagi, usted puede utilizar un archivo de transformación al usar el método CEntityXmlHelper.transformXmlAsString.

 

Para poder trabajar con archivos de transformación, se debe crear una definición de un esquema XSD que tenga la estructura XML esperada para la entidad dada.

Cree una definición de esquema en Bizagi Studio, y de forma similar, registre en esa misma opción, el archivo de transformación XLS dado para dicha entidad.

 

xmlhelper_ex1_schema

 

Para mayor información sobre predefinir esquemas, refiérase a Esquemas XML del modelo de datos.

 

Ahora, para el esquema de la entidad y para este ejemplo, utilizaremos el siguiente archivo de transformación:

 

xmlhelper_ex5_XSL

 

Que contiene exactamente:

<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes" /><xsl:template match="/BizAgiWSResponse/Entities"><body><html><h1>Vendors</h1><table><tr><th>Code</th><th>Name</th></tr><xsl:for-each select = "Vendor"><tr><xsl:for-each select = "Code"><td><xsl:value-of select = "."/></td></xsl:for-each><xsl:for-each select = "Name"><td><xsl:value-of select = "."/></td></xsl:for-each></tr></xsl:for-each></table></html></body></xsl:template></xsl:stylesheet>

 

Por lo tanto y para manejar fácilmente la transformación en Bizagi, créela como un archivo .xsl, de tal forma que lo puede registrar y cargar a través de las misma opciones de Bizagi Studio:

 

xmlhelper_ex5_tranformationFile

 

Haga clic sobre Agregar para registrar la transformación y los detalles de la entrada (primordialmente, considere el Nombre que le asigna para poderlo referenciar desde las reglas de negocio):

 

xmlhelper_ex5_configureXSL

 

Busque el archivo de transformación haciendo clic sobre Buscar archivo... y seleccione el archivo:

 

xmlhelper_ex5_browse

 

Una vez haya sido cargado, haga clic en OK. Puede verificar que el archivo de transformación esté listado.

Ahora para manejar la información en XML, utilice el método CEntityXmlHelper.transformXmlAsString dentro de una expresión en una regla de negocio de Bizagi:

 

xmlhelper_ex5_rule

 

El código en la expresión de la imagen es el siguiente:

var vendor_info = '<?xml version="1.0" encoding="UTF-8"?><BizAgiWSResponse><Entities><Vendor key="1"><Code>V001</Code>'

+ '<Name>IBM</Name><VType>A</VType></Vendor><Vendor key="3"><Code>V003</Code><Name>Apple</Name><VType>A</VType></Vendor>'

+ '<Vendor key="4"><Code>V004</Code><Name>Microsoft</Name><VType>A</VType></Vendor></Entities></BizAgiWSResponse>';

var vendor_transformation = CHelper.getXSL("Vendor", "Vendor_HTML");

CHelper.trace("my_trace",vendor_transformation);

 

var vendor_result =  CEntityXmlHelper.transformXmlAsString(vendor_info, vendor_transformation);

CHelper.trace("my_trace",vendor_result);

 

Note que los registros de entrada de la entidad Vendor están quemados en el código de este ejemplo (vendor_info) pero esta información es compatible con lo que trae la invocación del métod CEntityXmlHelper.getEntitiesAsString.

Para mayor información sobre el método getEntitiesAsString, refiérase a Consultar información basada en XML en entidades.

 

xmlhelper_ex5_output

 

CHelper.trace() y CHelper.getXSL()

Note en el ejemplo anterior que aunque se están utilizando otros dos métodos (tanto CHelper.trace como CHelper.getXSD) estos usualmente se pueden usar junto con CEntityXmlHelper.transformXmlAsString con otros propósitos:

CHelper.trace: Le permite imprimir trazas personalizadas de valores y respuestas durante la ejecución de las reglas.

La imagen a continuación, muestra cómo se verían estas trazas:

 

xmlhelper_ex5_trace

 

Para más información sobre trazas, refiérase a Validar mi regla de negocio.

 

CHelper.getXSD: Le permite obtener el esquema predefinido de una entidad, como fue configurado en Bizagi Studio.

La imagen a continuación muestra el esquema registrado para la entidad Vendor, nombrado Vendor_HTML (como se referencia en la expresión de ejemplo):

 

xmlhelper_ex5_vendorHTML

 

Para más información sobre predefinir esquemas, refiérase a Esquemas XML del modelo de datos.