<< Clic para mostrar Tabla de Contenidos >> Actualizar 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 saveEntityAsString, 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 agregar uno nuevo y actualizar uno existente.
Esto quiere decir que adicionaremos a Samsung y actualizaremos el nombre de Cisco por Cisco Systems.
Para lograrlo, debemos ver la definición de la estructura XML de la entidad esperada, utilizando las definiciones de esquemas creadas en Bizagi Studio:
Para más información sobre predefinir esquemas, refiérase a Esquemas XML del modelo de datos.
Se puede depender de la definición del esquema XSD para generar un XML con la información y asegurándose de que sea compatible utilizando servicios gratuitos en línea tal como http://xsd2xml.com/. Sin embargo, hay que considerar que esto es sólo una porción de lo que se debe enviar dentro de la cadena de texto con la estructura XML.
|
Envuelva la porción del contenido XML de Vendor dentro del nodo <BizAgiWSParam> conteniendo al subelemento <Entities>:
<?xml version="1.0" encoding="utf-8"?><BizAgiWSParam><Entities>...</Entities></BizAgiWSParam>
Esto nos ayudará a segurar que se esté enviando una entrada compatible con la usada por el método web SOAP saveEntityAsString (Cuando se utiliza el API de web services de Bizagi).
Para mayor información sobre esta estructura y opciones de filtrado, refiérase a Guardar Entidades.
Dado que estaremos actualizando un registro en esta entidad, debemos asegurarnos que las definiciones de llaves de negocio están establecidas para esa entidad.
En otras palabras, habiendo definido en Bizagi Studio cuál o cuáles atributos hacen parte de una restricción única para cada uno de los registros.
En este ejemplo, los registros de la tabla Vendor son identificados únicamente por el atributo Code:
Para que estos registros sean insertados y actualizados en la manera que se muestra en esta sección, recomendamos que se desmarque la casilla en la configuración de Bizagi Studio, que obliga el uso de llaves de negocio como cláusula en XMLs:
Ahora, para poder guardar la información compatible XML de cierta entidad, se puede utilizar el método CEntityXmlHelper.saveEntityAsString.
Esto se puede hacer dentro de una expresión en una regla de negocio Bizagi:
El código de la expresión mostrada en la imagen es el siguiente:
var vendor_input = '<?xml version="1.0" encoding="utf-8"?><BizAgiWSParam><Entities><Vendor><Code>V006</Code>'
+ '<Name>Samsung</Name><VendorType>2</VendorType></Vendor><Vendor><Code>V005</Code><Name>Cisco Systems</Name>'
+ '</Vendor></Entities></BizAgiWSParam>';
var vendor_result = CEntityXmlHelper.saveEntityAsString(vendor_input);
CHelper.trace("my_trace",vendor_result);
Note que al ya existir un Vendor con Code V005 y que el atributo Code es la llave de negocio definida para la entidad, este registro será actualizado (sólo lo que se ha enviado, que es el atributo Name).
El método CEntityXmlHelper.getEntitiesAsString retornará una cadena de texto con estructura XML con la información de los IDs de los registros creados o actualizados, como se presenta a continuación para nuestro ejemplo:
La respuesta mostrada en la imagen es esta:
<?xml version="1.0" encoding="utf-8"?>
<Entities>
<Vendor>51</Vendor>
<Vendor>52</Vendor>
</Entities>
En el ejemplo, se hace uso de CHelper.trace de manera opcional, dado que nos ayuda a imprimir trazas personalizadas de los valores y las respuestas en la ejecución de las reglas. Para más información sobre la opción de trazas, refiérase a Validar mi regla de negocio. |
Last Updated 1/26/2023 11:22:14 AM