Toda la información de producto en wiki.bizagi.com aplica para Bizagi BPM Suite 9.1.X.
Para las nuevas versiones de Bizagi BPM Suite (10.X y superior) visite la Guía de Usuario.
 

GetEntitiesUsingSchema

De

<keywords content="keywords">getEntitiesUsingSchema, getEntitiesUsingSchemaAsString, get Entities Using Schema,Capa SOA, EntityManagerSOA, Entity Manager SOA</keywords> 

Contenido

getEntitiesUsingSchema

Este es un método del servicio web EntityManagerSOA, utilizado para obtener la información almacenada en una Entidad (o Entidades) de una base de datos Bizagi. Este artículo aplica también para el método getEntitiesUsingSchemaAsString.

Descripción

El método recibe: Un XMLDocument el cual especifica la entidad en la cual se realizará la búsqueda, un filtro para obtener una cantidad específica de registros de la Entidad, y un esquema (XSD), también con formato XmlDocument, indicando de manera más precisa la información requerida. La respuesta también es retornada en formato XmlDocument. Existe otra versión de este método, llamada getEntitiesUsingSchemaAsString, la cual recibe y retorna un XML en formato String en lugar del formato XmlDocument.

Parámetros de Entrada

Este es el esquema del XML deseado:


Parametro 1 - Nodo EntityData

EntityName: Es el nombre (no el nombre a mostrar o display name) de la entidad deseada. Si se incluye este elemento no se debe incluir el que se explica a continuación (EntityID). 

EntityID: Se usa en lugar del método EntityName explicado previamente, se debe incluir únicamente uno de los dos en el XML. Corresponde a la llave o id (en la base de datos para la tabla ENTITY) de la entidad que se va a consultar. Es más sencillo utilizar este elemento junto con otros métodos SOA, como por ejemplo aquellos del servicio web RenderSOA, los cuales se usan para replicar formas Bizagi en la interfaz de usuario de un sistema externo, este método retorna los ids de las entidades relacionadas a la metadata de las formas.

Filters: Establece el filtro para la entidad consultada. El formato del filtro funciona como la sentencia WHERE de una consulta básica de SQL

Ejemplo

Este XML se usa para retornar todos los registros de la entidad Solicitante (Applicant) con BuroScore menor que 100.



Nótese que el filtro en este caso se encuentra dentro de un segmento CDATA con el objetivo de poder utilizar operadores de comparación como menor que (<), mayor que (>) y diferente a (<>) sin problemas, debido a que estos son caracteres especiales en XML. 

El filtro es opcional; si no se especifica, entonces se retornarán todos los registros de la entidad.

Algunos ejemplos de filtros son:

<Filters> 
	<![CDATA[ (DocumentType = 1 OR City = 2) AND Approved = true ]]> 
</Filters> 


<Filters> 
	<![CDATA[ Option  = 'Automatic' ]]> 
</Filters> 


<Filters> 
	<![CDATA[ date1 >= '06/05/2008' ]]> 
</Filters> 

Cuando se comparan Fechas en los filtros, es necesario usar el formato de la base de datos.

Operadores Válidos

Algunos operadores que se pueden utilizar en un filtro son:

Caracter

Descripción

=

Igual a 

<

Menor que 

>

Mayor que 

<>

Diferente a 

!=

Diferente a 

<=

Menor o Igual que 

>=

Mayor o Igual que 

Registros Deshabilitados

Normalmente una consulta que utiliza los métodos getEntities o getEntitiesAsString no debería retornar registros deshabilitados de entidades paraméticas. Recuerde que no se pueden eliminar registros en entidades paramétricas(y no se recomienda hacerlo) pero pueden deshabilitarse, de forma que si aún se encuentran estos registros en la base de datos, estos no serán visibles en la aplicación web. Si esta información es requerida en la respuesta, puede ser obtenida añadiendo el elemento FilterDisabled en el XML de envío, y setear el valor en falso. Este es un ejemplo de un XML con estas características, usando la entidad Products y obteniendo todos los registros con ProductType igual a 3:



Parámetro 2 - XSD

En este esquema, se especifica la información que será consultada. Puede incluir atributos de la entidad y utilizar también las relaciones existentes para obtener información de otras entidades. El siguiente ejemplo muestra como obtener únicamente tres atributos de la Entidad Solicitante (Applicant).



Parámetros de Salida

El XML de respuesta mostrará los registros que cumplen con los criterios de búsqueda. A diferencia del método getEntities, si uno de los atributos incluídos en el esquema no tiene valor asociado (null or vacío), este se mostrará de todas formas en la respuesta. En el siguiente ejemplo se muestra este comportamiento para el atributo DocumentNumber.

Ejemplo

Para el XML de entrada explicado anteriormente en este artículo, esta sería la respuesta:



Cuando la entidad tiene una relación uno a muchos de tipo Colección, el atributo XML llamado key (llave) mostrará el id (key) del registro en la base de datos. Para una relación uno a muchos que no es del tipo Colección, Bizagi incluirá un atributo XML llamado entityName en la respuesta junto con el nombre de la entidad relacionada además del atributo XML llamado key.

Nota

  • Cuando se usa este método, tenga presente que la información se almacena "físicamente" en la base de datos de Bizagi una vez que la actividad se ha avanzado. Esto quiere decir que la información que se almacena utilizando el botón guardar en una actividad puede no encontrarse aún persistida o almacenada en la base de datos.

<comments />