GetEntities
De
<keywords content="keywords">getEntities, getEntitiesAsString, get Entities,capa SOA, EntityManagerSOA, Entity Manager SOA</keywords>
Contenido |
getEntities
Es un método incluído en el servicio web EntityManagerSOA que se utiliza para obtener la información almacenada en una o varias Entidades de una base de datos Bizagi. Este artículo aplica también para el método getEntitiesAsString.
Descripción
El método recibe un Documento XML (XMLDocument) el cual especifica la Entidad en la cual se ejecutará la búsqueda. En este documento se incluye también un filtro para obtener una cantidad específica de registros de la Entidad. La respuesta es también un Documento XML. Existe un método similar llamado getEntitiesAsString, el cual recibe y retorna un XML en formato string.
Parámetros de Entrada
Este es el esquema del XML esperado:
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 de |
!= |
Diferente de |
<= |
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ámetros de Salida
El XML de salida mostrará los registros que cumplen con los criterios de búsqueda. Si el resultado incluye atributos sin valor (null o vacío), estos podrían no mostrarse. Además de los atributos pertenecientes a la entidad, el resultado también incluirá un nivel de profundidad, es decir, el contenido de las entidades relacionadas también será incluído; pero si estas a su vez tienen entidades relacionadas, la información de estas últimas no será incluída. Para poder hacer consultas con varios niveles de profundidad, es necesario utilizar el método getEntitiesUsingSchema.
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 />