Obtener Entidades

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Bizagi Studio > Bizagi desde aplicaciones externas > API de Bizagi para aplicaciones externas > Servicios web SOAP > Servicios web SOAP disponibles > Métodos Web de EntityManagerSOA >

Obtener Entidades

Introducción

Este método se utiliza para consultar los registros en una Entidad del modelo de datos de Bizagi (desde una aplicación externa).

 

Este método es especialmente útil para Entidades de Parametrización, dado que los registros en estas Entidades no son modificados a lo largo de instancias de Procesos.

Este método recibe un único parámetro de entrada el cual contiene principalmente: la Entidad a consultar, y posibles filtros para la búsqueda.

 

Nótese que este método retorna la información de los registros en la Entidad pero también la información relacionada a través de sus atributos para un nivel de profundidad.

Si desea especificar que se utilice una mayor profundidad (para navegar la información a más de una relación de distancia), use los métodos getEntitiesUsingSchemaAsString o getEntitiesUsingSchema.

Para más información sobre éste y otros métodos relacionados, consulte la sección al final de este artículo.

 

Para el método getEntities, los XMLs de petición y de respuesta son de tipo XmlDocument nativo de .NET.

Para el método getEntitiesAsString se maneja la misma estructura XML pero los parámetros son enviados como un tipo cadena de texto por medio de CDATA.

 

 

Datos de entrada

 

Esquema de entrada

La estructura del XML que se envia a Bizagi debe ser cumplir con este XSD:

 

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

 <xs:element name="BizAgiWSParam">

         <xs:complexType>

                 <xs:sequence>

                         <xs:element name="EntityData">

                                 <xs:complexType>

                                         <xs:sequence>

                                                 <xs:choice>

                                                         <xs:element name="EntityName" type="xs:string"/>

                                                         <xs:element name="EntityID" type="xs:integer"/>

                                                 </xs:choice>

                                                 <xs:element name="FilterDisabled" type="xs:boolean" minOccurs="0" />

                                                 <xs:element name="Filters" type="xs:string" nillable="true" minOccurs="0"/>

                                         </xs:sequence>

                                 </xs:complexType>

                         </xs:element>

                 </xs:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

Parámetros de entrada

BizAgiWSParam: Es el nodo raíz.

EntityData: Contiene el nombre de la Entidad, o su Id (una de las 2 opciones).

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.

FilterDisabled: Se usa para decidir si la consulta debe incluir registros de Entidades de Parametrización que estén deshabilitados (con borrado lógico). Para incluirlos, utilice el valor falso (false) para este nodo.

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

Se recomienda que se utilice el elemento CDATA para incluir los filtros (y de esta manera poder utilizar los caracteres especiales en notación XML, como por ejemplo el operador menor-que).

Podrá solamente filtrar valores incluyendo aquellos filtros que consideren atributos directamente dentro de la entidad que se consulta (no se soporta filtrar por atributos ni por relaciones de otras entidades).

 

La siguiente tabla presenta los operadores válidos en filtros, para usar en CDATA:

 

Caracter

Descripción

=

Equal to

<

Less than

>

Greater than

<>

Different from

!=

Different from

<=

Less than or equal to

>=

Greater than or equal to

 

 

 

Ejemplo

Con el siguiente ejemplo, se obtiene la información de solicitantes (instancias de Applicant), con BuroScore menor que 100.

 

Método getEntitiesAsString

<BizAgiWSParam>

 <EntityData>

         <EntityName>Applicant</EntityName>

         <Filters>

                 <![CDATA[BuroScore < 100]]>

         </Filters>

 </EntityData>

</BizAgiWSParam>

 

Método getEntitiesAsString

<entitiesInfo>

 <![CDATA[<BizAgiWSParam>

         <EntityData>

                 <EntityName>Applicant</EntityName>

                 <Filters>

                         BuroScore &lt; 100

                 </Filters>

         </EntityData>

 </BizAgiWSParam>]]>

</entitiesInfo>

 

Otros ejemplos de filtros válidos son:

Con una comparación directa:

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

Usando la claúsula conyuntiva AND:
       <![CDATA[ (DocumentType = 1 OR City = 2) AND Approved = true ]]>

Comparando información de fechas (con el formato del proyecto):

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

 

Datos de salida

 

Esquema de salida

La estructura del XML que se retorna en Bizagi cumple con este XSD:

 

<?xml version="1.0" encoding="utf-8"?>

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="BizAgiWSResponse">

         <xs:complexType>

                 <xs:sequence>

                         <xs:element name="Entities" maxOccurs="1">

                                 <xs:complexType />

                         </xs:element>

                 </xs:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

Dentro del elemento Entities se incluyen los elementos del modelo de datos de Bizagi con sus valores (atributos, relaciones, Entidades).

Para más información sobre esta estructura, consulte cómo se representan el modelo de datos del Proceso en Esquema XML de Bizagi para el modelo de datos.

 

Parámetros de salida

BizAgiWSResponse: Es el nodo raíz.

Entities: Dentro de este elemento, se obtiene la información del modelo de datos del Proceso.

Nótese que este método retorna un set de registros, por lo que se obtiene una única ocurrencia de este elemento pero posiblemente muchas ocurrencias de sus elementos internos.

 

Ejemplo

Con el siguiente ejemplo, se ilustra la respuesta que retorna la invocación de este método en Bizagi;

 

Método getEntities

 

GetEntities_Image003

 

Método getEntitiesAsString

 

getEntitiesAsString_01

 

Métodos Web relacionados

Si desea obtener información a partir  de una Entidad (como punto de partida) pero con un mayor nivel de profundidad (navegando los atributos), use los métodos getEntitiesUsingSchemaAsString o getEntitiesUsingSchema.

Adicionalmente, con estos otros métodos, los campos en NULL son retornados si se especifican explícitamente dentro del esquema.

Para más información sobre esta opción, consulte Obtener Entidades Utilizando Esquemas.