Consultar informacion basada en XML en entidades

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

Consultar informacion basada en XML en entidades

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 getEntitiesAsString, que está orientado a consultar información de entidades sin tener que navegar por medio de XPath.

Esto implica que el uso de este método es óptimo cuando se trabaja con entidades paramétricas.

 

Ejemplo

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

Esta entidad tiene los siguientes registros y queremos obtener aquellos donde VendorType = 1.

 

xmlhelper_ex1_vendors

 

Esto significa obtener exactamente: IBM, Apple y Microsoft.

 

Entonces, para obtener estos registros en una estructura XML (en vez de un arreglo de objetos), se puede contar con el método CEntityXmlHelper.getEntitiesAsString y obtener una cadena de texto con esa información.

Haga esto dentro de una expresión en una regla de negocio Bizagi:

 

xmlhelper_ex1_rule

 

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

var vendor_query = "<?xml version='1.0' encoding='utf-8'?><BizAgiWSParam><EntityData>"

+ "<EntityName>Vendor</EntityName><Filters><![CDATA[VendorType=1]]></Filters></EntityData></BizAgiWSParam>";

var vendor_schema = CHelper.getXSD("Vendor", "VendorDefaultSchema");

CHelper.trace("my_trace",vendor_schema);

var vendor_result = CEntityXmlHelper.getEntitiesAsString(vendor_query, vendor_schema);

CHelper.trace("my_trace",vendor_result);

 

Tenga en cuenta que el método CEntityXmlHelper.getEntitiesAsString recibe dos cadenas de texto:

La primera en el ejemplo es vendor_query, que es una definición en XML de los registros que desea obtener del modelo de datos de Bizagi.

Esta definición especifica el nombre de la Entidad que contiene estos registros (<EntityName>Vendor</EntityName>), y cualquier especificación de filtro (<Filters><![CDATA[VendorType=1]]></Filters>) que se asegura que se obtengan los registros que quiere traer.

La estructura esperada de este XML es la misma que se utiliza para el método web getEntitiesAsString (cuando se utiliza el API de web services de Bizagi)

Para mas información respecto a esta estructura esperada y opciones de filtro (por ejemplo, información de filtrado en una cadena de texto <![CDATA[VType='A']]>), refiérase a Obtener Entidades.

 

El segundo es este en el ejemplo, que es una definición XSD en una cadena de texto, definiendo los campos que se desean obtener de los registros que aplican.

Más adelante se explica cómo usar el esquema XDS.

 

De forma similar, el método CEntityXmlHelper.getEntitiesAsString retornará una cadena de texto con estructura XML con la información de los registros, como se muestra a continuación para este ejemplo en específico:

 

xmlhelper_ex1_formatted

 

La respuesta, mostrada arriba, es:

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

 

CHelper.trace() y CHelper.getXSD()

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.getEntitiesAsString para otros propósitos:

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

La siguiente imagen, muestra cómo se verían estas trazas:

 

xmlhelper_ex1_traces

 

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 configurada en Bizagi Studio.

La siguiente imagen, muestra el esquema registrado para la entidad Vendor, nombrado explícitamente como VendorDefaultSchema (como se referencia en la expresión de ejemplo):

 

xmlhelper_ex1_schema

 

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