Consultar 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 QuerySOA >

Consultar Entidades

Introducción

Este método se utiliza para obtener detalle de registros en una Entidad del modelo de datos de Bizagi,  desde una aplicación externa.

A través de este método se obtienen resultados a manera de reporte, apoyándose en el motor de consultas de Bizagi.

 

Este método recibe principalmente: el usuario que ejecuta la forma de consulta, criterios de filtros específicos a la Entidad (por ejemplo, filtros con información de negocio para sus atributos), y los parámetros para el manejo de los resultados (cuantas ocurrencias, cómo manejar la paginación, etc).

 

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

Para el método queryEntitiesAsString 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 targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="BizagiWSParam">
    <xs:complexType>
        <xs:sequence>
          <xs:element name="QueryParams" maxOccurs="1">
              <xs:complexType>
                <xs:sequence>
                    <xs:element name="XPaths" maxOccurs="1">
                      <xs:complexType>
                          <xs:sequence>
                            <xs:element name="XPath" maxOccurs="unbounded" >
                                <xs:complexType>
                                  <xs:attribute name="Path" type="xs:string" use="required"/>
                                  <xs:attribute name="Include" type="xs:boolean" use="optional" default="false"/>
                                  <xs:attribute name="Sort" type="xs:string" use="optional" default="Asc"/>
                                </xs:complexType>
                            </xs:element>
                          </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                </xs:sequence>
              </xs:complexType>
          </xs:element>
          <xs:element name="Parameter" maxOccurs="unbounded">
              <xs:complexType>
                <xs:attribute name="Name" type="xs:string" use="required"/>
              </xs:complexType>
          </xs:element>
        </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

 

Para más información sobre la estructura esperada de los elementos dentro de Entities, 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

BizAgiWSParam: Es el nodo raíz que contiene toda la información para ejecutar la forma de consulta. Contiene los nodos "domain", "userName", "QueryParams", y "Parameters".

domain: Acá se especifica el dominio del usuario en Bizagi que ejecuta la consulta.

userName: El nombre de usuario que ejecuta la consulta.

QueryParams: Contiene la información para los filtros de la búsqueda al ejecutar la consulta. Contiene el nodo "XPaths".

XPaths: Contiene 1 o más nodos "XPath", que se utilizan para especificar filtros relacionados a datos de negocio.

XPath: Especifica en su atributo "Path", la ruta XPath del atributo en el modelo de datos tal como se filtra en la forma de consulta. El XPath utiliza el caracter punto (.) como separador. El valor del filtro va como "Value" del nodo y es sensible a mayúsculas. Únicamente cuando se especifique un rango de valores (para filtrar una fecha), será necesario incluír los subnodos "<From>" y/o "<To>" para que éstos contengan los valores de los límites del rango.

Otros atributos adicionales en este nodo son:

"Include": Se puede incluir y definirse como "true" para incluir los resultados de ese atributo en la respuesta. Este parámetro es obligatorio (puede dejarse como "false").

"Approx": Se puede incluir y definirse como "true" para realizar una búsqueda aproximada en atributos de tipo "string" (cadenas de texto).

"Sort": Se puede incluir y definirse como "Desc" (descendiente) or "Asc" (ascendiente) para ordenar los resultados de acuerdo al valor del atributo. Cuando no se especifica esta opción, el ordenamiento de los registros por defecto tendrá en cuenta el "RadNumber" de manera ascendenete.

Tenga en cuenta que el XPath para una forma de consulta a nivel de entidad, parte de la entidad misma.

Parameters: Contiene 1 o más nodos "Parameter", que se utilizan para especificar los parámetros de la ejecución de la forma de consulta y el manejo de los resultados.

Parameter: Especifica en su atributo "Name", las diversas opciones para manejar los resultados de la forma de consulta. El valor del filtro va como "Value" del nodo y es sensible a mayúsculas. Los posibles valores para el atributo "Name" son:

"idEnt": parámetro obligatorio. Indica el identificador de la Entidad.

"PageSize": define el número de registros que componen cada página de la ejecución

"page": define un número de página específico que contiene los casos

"Culture": define la cultura global para el soporte multi-lenguage de los resultados, por ejemplo: "en-Us".

 

Ejemplo

Con el siguiente ejemplo, se ejecuta una reporte a nivel de Entidad.

 

Método QueryEntities

<BizAgiWSParam>
  <domain>domain</domain>
  <userName>admon</userName>
      <QueryParams>
          <XPaths>
              <XPath Path="OpeningDate" Include="true"/>
              <XPath Path="SLA" Include="true"/>
              <XPath Path="Subject" Include="true"/>
              <XPath Path="TicketDescription" Include="true"/>
          </XPaths>
      </QueryParams>
      <Parameters>
          <Parameter Name="idEnt">10384</Parameter>
          <Parameter Name="page">3</Parameter>
          <Parameter Name="PageSize">10</Parameter>
          <Parameter Name="Culture">en-US</Parameter>
      </Parameters>
</BizAgiWSParam>

 

Método QueryEntitiesAsString

<sxml>
      <![CDATA[<BizAgiWSParam>
          <domain>domain</domain>
          <userName>admon</userName>
              <QueryParams>
                  <XPaths>
                      <XPath Path="OpeningDate" Include="true"/>
                      <XPath Path="SLA" Include="true"/>
                      <XPath Path="Subject" Include="true"/>
                      <XPath Path="TicketDescription" Include="true"/>
                  </XPaths>
              </QueryParams>
              <Parameters>
                  <Parameter Name="idEnt">10384</Parameter>
                  <Parameter Name="page">3</Parameter>
                  <Parameter Name="PageSize">10</Parameter>
                  <Parameter Name="Culture">en-US</Parameter>
              </Parameters>
      </BizAgiWSParam>]]>
</sxml>

 

 

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 targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="BizagiWSParam">
    <xs:complexType>
      <xs:sequence>
          <xs:element name="Results" maxOccurs="1">
              <xs:complexType>
                  <xs:sequence>
                      <xs:element name="RowsCount" minOccurs="1" maxOccurs="1"/>
                      <xs:element name="PageCount" minOccurs="1" maxOccurs="1"/>
                      <xs:element name="Tables" maxOccurs="1">
                          <xs:complexType>
                              <xs:sequence>
                                  <xs:element name="ResponseTable" maxOccurs="1">
                                      <xs:complexType>
                                          <xs:sequence>
                                              <xs:element name="Columns" maxOccurs="1">
                                                  <xs:complexType>
                                                      <xs:sequence>
                                                          <xs:element name="Column" maxOccurs="unbounded">
                                                              <xs:attribute name="Name" type="xs:string" use="required"/>
                                                              <xs:attribute name="Type" type="xs:string" use="required"/>
                                                          </xs:element>
                                                      </xs:sequence>
                                                  </xs:complexType>
                                              </xs:element>
                                              <xs:element name="Rows" maxOccurs="1">
                                                  <xs:complexType>
                                                      <xs:sequence>
                                                          <xs:element name="Row" maxOccurs="unbounded">
                                                              <xs:complexType>
                                                                  <xs:sequence>
                                                                      <xs:element name="Column" maxOccurs="unbounded">
                                                                          <xs:complexType>
                                                                              <xs:attribute name="Name" type="xs:string"/>
                                                                          </xs:complexType>  
                                                                      </xs:element>  
                                                                  </xs:sequence>
                                                                  <xs:attribute name="Id" type="xs:integer"/>
                                                              </xs:complexType>
                                                          </xs:element>
                                                      </xs:sequence>
                                                  </xs:complexType>
                                              </xs:element>
                                          </xs:sequence>
                                      </xs:complexType>
                                  </xs:element>
                              </xs:sequence>
                          </xs:complexType>
                      </xs:element>
                  </xs:sequence>
              </xs:complexType>
          </xs:element>
          <xs:element name="Parameters" maxOccurs="1">
              <xs:complexType>
                  <xs:sequence>
                      <xs:element name="Parameter" maxOccurs="unbounded">
                          <xs:complexType>
                              <xs:attribute name="Name" type="xs:string"/>
                          </xs:complexType>
                      </xs:element>
                  </xs:sequence>
              </xs:complexType>
          </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

 

Parámetros de salida

BizAgiWSResponse: Es el nodo raíz que contiene toda la información para ejecutar la forma de consulta. Contiene los nodos "Results", y "Parameters".

Results: Contiene los nodos "RowsCount", "PageCount" y "Tables" con la información de los casos.

RowsCount: Número total de registros (casos) retornados por la ejecución de la forma de consulta.

PageCount: Número total de páginas retornadas por la ejecución de la forma de consulta.

Tables: Contiene los nodos "CaseTable" y "TaskTable".

ResponseTable: Contiene 1 ocurrencia del nodo "Columns", y ocurrencias indefinidas del nodo "Rows" (una ocurrencia para cada registro resultado).

Los nodos al interior de ResponseTable tendrán la información de los atributos de la entidad de la consulta.

Parameters: Contiene 1 o más nodos "Parameter", los cuales se utilizaron como parámetros para la ejecución de la consulta.

Parameter: Especifica en su atributo "Name", las parametrizaciones usadas para el manejo de los resultados de la ejecución de la consulta.

 

Ejemplo

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

 

Método QueryEntities

 

queryEntities_output

 

Método QueryEntitiesAsString

 

queryEntities_output_2

 

Métodos Web relacionados

Si desea obtener información de los registros de Entidades específicas, por ejemplo que sean Entidades de Parametrización, puede optar por usar los métodos getEntitiesAsString o getEntities de los servicios Web de EntityManagerSOA.

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