getEntitiesUsingSchemaAsString

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Bizagi desde aplicaciones externas > API de Bizagi para aplicaciones externas > Servicios web disponibles > Métodos Web de EntityManagerSOA >

getEntitiesUsingSchemaAsString

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 recibe dos parámetros de entrada: un XSD (esquema de XML) con el nombre de la Entidad a consultar e información de filtro, y otro con un XSD para indicar qué información de negocio se va a obtener.

 

Si no desea utilizar un XSD, y no es necesario una profundidad de datos (navegando la información a través de atributos), use los métodos getEntitiesAsString o getEntities.

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

 

 

note_pin

La descripción en este artículo aplica también para el método Web getEntitiesUsingSchema, el cual está disponible en la edición Bizagi .NET.

Para el método getEntitiesUsingSchema, el XML que se maneja en la solicitud (request) y en la respuesta (response) son del tipo XmlDocument (nativa de .NET).

Para el método getEntitiesUsingSchemaAsString la misma estructura de XMLs se maneja, sin embargo este parámetro es de tipo cadena (string).

 

Datos de entrada

 

Esquema de entrada

La estructura del XML que se envia a Bizagi como primer parámetro, 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>

 

Para el segundo parámetro, la estructura del esquema debe corresponder al modelo de datos de Bizagi. Para más información sobre los elementos de este esquema, consulte cómo se representan el modelo de datos del Proceso en Esquema XML de Bizagi para el modelo de datos.

 

 

Parámetros de entrada

Para el primer parámetro llamado entitiesInfo, es necesario considerar:

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

 

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 obtienen los solicitantes (registros de Applicant) que tengan un BuroScore menor que 100.

En el primer parámetro se envia:

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

<BizAgiWSParam>

 <EntityData>

         <EntityName>Applicant</EntityName>

         <Filters>

                 <![CDATA[BuroScore < 100]]>

         </Filters>

 </EntityData>

</BizAgiWSParam>

 

En el segundo parámetro se envia:

GetEntitiesUsingSchema_Image003

 

Otros ejemplos de filtros válidos en el primer parámetro 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, en donde;

GetEntitiesUsingSchema_Image004

 

Nótese que a diferencia del método getEntitiesAsString, los atributos que contienen valores nulos (NULL) si los retorna Bizagi en esta invocación. La razón es que se retorna siempre y cuando estén incluidos en el esquema.

 

 

Métodos Web relacionados

Si desea obtener información de una Entidad, los valores de sus atributos e inmediatas relaciones, use los métodos getEntitiesAsString o getEntities.

Con estos métodos no hay necesidad de utilizar un esquema, y adicionalmente la información que esté en NULL no se retorna.

Para más información sobre esta opción, consulte getEntitiesAsString.

 

Es posible que también se desee obtener el esquema de una Entidad previamente, para utilizarlo en este método. Si este es el escenario y el esquema se envía dinámicamente, utilice los métodos getEntitySchemaStr o getEntitySchema.

Para más información sobre esta opción, consulte getEntitySchemaStr.