Obtener Entidades Utilizando Esquemas

<< Clic para mostrar Tabla de Contenidos >>

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

Obtener Entidades Utilizando Esquemas

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

Para consultar atributos de tipo archivo, consulte los métodos obtener datos del caso utilizando XPaths y obtener datos del caso utilizando esquemas. Tenga en cuenta que ambos métodos solo traen datos de casos y actividades abiertos.

 

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

Para el método getEntitiesUsingSchemaAsString 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 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" ttributeFormDefault="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.

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

=

Igual a

<

Menor que

>

Mayor que

<>

Diferente a

!=

Diferente a

<=

Menor o igual que

>=

Mayor o igual que

 

La siguiente tabla proporciona el formato XML equivalente que debe utilizarse para aquellos escenarios en los que se requieren caracteres especiales reservados en XML (de uso común).

 

Caracter

Descripción

Formato XML a utilizar

<

Signo de menor que

&lt;

>

Signo de mayor que

&gt;

"

Comillas dobles

&quot;

'

Comillas sencillas (o apostrofe)

&apos;

&

Ampersand

&amp;

 

Ejemplo

Con el siguiente ejemplo, se obtienen los solicitantes (registros de Applicant) que tengan un BuroScore menor que 100.

 

Método getEntitiesUsingSchema

<entitiesInfo>

 <BizAgiWSParam>

   <EntityData>

     <EntityName>Applicant</EntityName>

     <Filters>

       <![CDATA[BuroScore < 100]]>

     </Filters>

   </EntityData>

 </BizAgiWSParam>

</entitiesInfo>

<schema>

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

   <xs:element name="Applicant">

     <xs:complexType>

       <xs:sequence>

         <xs:element minOccurs="0" maxOccurs="1" name="DocumentNumber"/>

         <xs:element minOccurs="0" maxOccurs="1" name="BuroScore" />

         <xs:element minOccurs="0" maxOccurs="1" name="ExceptionObservation" />

       </xs:sequence>

     </xs:complexType>

   </xs:element>

 </xs:schema>

</schema>

 

Método getEntitiesUsingSchemaAsString

<entitiesInfo>

 <![CDATA[<BizAgiWSParam>

   <EntityData>

     <EntityName>Applicant</EntityName>

     <Filters>

       BuroScore &lt; 100

     </Filters>

   </EntityData>

 </BizAgiWSParam>]]>

</entitiesInfo>

<schema>

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

   <xs:element name="Applicant">

     <xs:complexType>

       <xs:sequence>

         <xs:element minOccurs="0" maxOccurs="1" name="DocumentNumber"/>

         <xs:element minOccurs="0" maxOccurs="1" name="BuroScore" />

         <xs:element minOccurs="0" maxOccurs="1" name="ExceptionObservation" />

       </xs:sequence>

     </xs:complexType>

   </xs:element>

 </xs:schema>]]>

</schema>

 

Otros ejemplos de filtros válidos en el primer parámetro son:

Con una comparación directa:

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

Usando la cláusula conjuntiva 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;

 

Método getEntitiesUsingSchema

GetEntitiesUsingSchema_Image004

 

Método getEntitiesUsingSchemaAsString

GetEntitiesUsingSchemaAsString_01

 

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 Obtener Entidades.

 

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 Obtener el Esquema de una Entidad.