Consultar Casos

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Automatización de Procesos con poco código > Studio Cloud -ambiente de autoría > Bizagi Studio > Bizagi desde aplicaciones externas > API de Bizagi para aplicaciones externas > Servicios alternos SOAP > Servicios web SOAP disponibles > Métodos Web de QuerySOA >

Consultar Casos

Introducción

Este método se utiliza para obtener detalle de los casos de Procesos tanto con información de negocio como detalle general (fecha de creación, de solución, etc),  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 un único parámetro de entrada el cual contiene principalmente: el usuario que ejecuta la forma de consulta, criterios de filtro generales para la búsqueda (por ejemplo, rangos de fechas de creación), criterios de filtros específicos al Proceso (por ejemplo, filtros con información de negocio), y parámetros para el manejo de los resultados (cuantas ocurrencias, cómo manejar la paginación, etc).

 

 

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

Para el método queryCasesAsString 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 attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="BizAgiWSParam">

   <xs:complexType>

     <xs:all>

       <xs:element name="Domain" type="xs:string" minOccurs="0"/>

       <xs:element name="UserName" type="xs:string" minOccurs="0" />

       <xs:element name="domain" type="xs:string" minOccurs="0"/>

       <xs:element name="userName" type="xs:string" minOccurs="0" />

       <xs:element name="QueryParams" minOccurs="0">

         <xs:complexType>

           <xs:sequence>

             <xs:element name="Internals" minOccurs="0">

               <xs:complexType>

                 <xs:sequence>

                   <xs:element maxOccurs="unbounded" name="Internal">

                     <xs:complexType mixed="true">

                       <xs:sequence minOccurs="0">

                         <xs:element name="From" type="xs:string" minOccurs="0"/>

                         <xs:element name="To" type="xs:string" minOccurs="0" />

                       </xs:sequence>

                       <xs:attribute name="Name" type="xs:string" use="required" />

                       <xs:attribute name="Include" type="xs:boolean" use="optional" />

                       <xs:attribute name="Sort" type="xs:string" use="optional" />

                       <xs:attribute name="Approx" type="xs:string" use="optional" />

                     </xs:complexType>

                   </xs:element>

                 </xs:sequence>

               </xs:complexType>

             </xs:element>

             <xs:element name="XPaths" minOccurs="0">

               <xs:complexType>

                 <xs:sequence>

                   <xs:element maxOccurs="unbounded" name="XPath">

                     <xs:complexType mixed="true">

                       <xs:sequence minOccurs="0">

                         <xs:element name="From" type="xs:string" minOccurs="0"/>

                         <xs:element name="To" type="xs:string" minOccurs="0" />

                       </xs:sequence>

                       <xs:attribute name="Path" type="xs:string" use="required" />

                       <xs:attribute name="Include" type="xs:boolean" use="optional" />

                       <xs:attribute name="Sort" type="xs:string" use="optional" />

                       <xs:attribute name="Approx" type="xs:boolean" use="optional" />

                     </xs:complexType>

                   </xs:element>

                 </xs:sequence>

               </xs:complexType>

             </xs:element>

           </xs:sequence>

         </xs:complexType>

       </xs:element>

       <xs:element name="Parameters">

         <xs:complexType>

           <xs:sequence>

             <xs:element maxOccurs="unbounded" name="Parameter">

               <xs:complexType>

                 <xs:simpleContent>

                   <xs:extension base="xs:string">

                     <xs:attribute name="Name" type="xs:string" use="required" />

                   </xs:extension>

                 </xs:simpleContent>

               </xs:complexType>

             </xs:element>

           </xs:sequence>

         </xs:complexType>

       </xs:element>

      </xs:all>

   </xs:complexType>

 </xs:element>

</xs:schema>

 

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 los nodos "Internals" y "XPaths".

Internals: Contiene 1 o más nodos de tipo "Internal", que se utilizan para especificar los filtros relacionados a los datos de proceso (por medio de renders internos).

Internal: Especifica en su atributo "Name", el render interno. El valor del filtro va como "Value" del nodo y es sensible a mayúsculas.

 

Los posible valores para el atributo "Name" de Internal son:

oProcessState: Permite filtrar los casos que estén abietos ("Running"), cerrados ("Completed") o que hayan sido abortados ("Aborted"). "ALL" se utliza como defecto, en cuyo caso no habría filtro para este criterio.

oRadNumber: Permite filtrar para obtener un caso específico.

oCreationDate: Permite filtrar de acuerdo a la fecha de creación del caso.

oExpiryDate: Permite filtrar de acuerdo a la fecha de vencimiento del caso.

oExpiryDays: Permite filtrar de acuerdo al número de días que quedan para el vencimiento del caso.

oUsers: Permite filtrar de acuerdo a los usuarios (especificando el UserId) que estén actualmente trabajando en los casos.

oCreatorfullname: nombre completo (fullname) del creador del caso.

oCreatorposition: posición del creador del caso.

oCreatorloginname: nombre de usuario (username) del creador del caso.

oUserfullname: nombre completo (fullname) del usuario actualmente loggeado (currentuser).

oUserposition: posición del usuario actualmente loggeado (currentuser).

oUserloginname: nombre de usuario (username) del usuario actualmente loggeado (currentuser).

oidWfClass: Permite filtrar de acuerdo al id de proceso (wfclass).

oidApplication: Permite filtrar de acuerdo al id de la aplicación Bizagi.

oidCategory: Permite filtrar de acuerdo al id de la categoría de proceso.

oidTask: Permite filtrar de acuerdo a la actividad actual.

oguidApplication: permite especificar el guidContext de la entidad donde se ejecuta el query. Si este parámetro no es incluido, se mostrará un mensaje con los posibles GUIDs para la entidad.

Para obtener este valor, diríjase a Cómo obtener el guidApplication.

 

Otros atributos adicionales en este nodo son:

o"Include": Se puede incluir y definirse como "true" para incluir los resultados de ese atributo en la respuesta.

o"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 ascendente.

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

 

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 debe iniciar siempre desde la entidad de proceso en donde se va a hacer el query. 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 incluir 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:

o"Include": Se puede incluir y definirse como "true" para incluir los resultados de ese atributo en la respuesta.

o"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 ascendente.

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

 

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:  

o"idEnt": Indica el ID de la Entidad de proceso. Es un parámetro obligatorio si la entidad pertenece a varias Aplicaciones. Sin embargo, si la etiqueta XPaths no se utiliza, este parámetro es opcional y no se necesita incluir en el equema de entrada.

o"nameEnt": indica el nombre de la entidad de proceso y se puede utilizar en lugar de idEnt. Este parámetro puede obtenerse de Bizagi Studio, en las propiedades de la entidad. Si los parámetros idEnt y nameEnt se utilizan, el parámetro nameEnt es ignorado. Este parámetro distingue entre mayúsculas y minúsculas.

 

note_pin

Si se usa la etiqueta XPath en el XML y la entidad de proceso que quiere consultar pertenece a varias aplicaciones, es obligatorio definir al menos uno de los siguientes parámetros: IdEnt o NameEnt.

 

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

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

o"Culture": define la cultura global para el soporte multi-lenguaje de los resultados( por ejemplo: "en-Us", "es-Es").

o"searchAllUsers" (para .NET): Aunque es opcional se recomienda su uso. Permite valores de true o false, para sobrescribir la definición de la propiedad para buscar para todos los usuarios de la misma forma d consulta (Search all users). Cuando este valor no es especificado, (y tampoco se invoca a la forma de consulta por su id interno), entonces se traen los casos que corresponden al usuario especificado en el XML.

 

 

Cómo obtener el guidApplication

El guidApplication permite especificart el guidContext de la entidad donde se ejecuta el query. La manera de obtener el guidApplication es a través del método de Procesos de la capa OData.

Usted puede encontrar toda la documentación relacionada con el método de procesos en este link.

 

Este método devuelve un archivo JSPN con el id de todos sus procesos. Este id es el guidApplication que puede utilizar en su método de Consultar Casos.

 

obtainGuidApplication

 

Ejemplo de entrada

Con el siguiente ejemplo, se invoca una forma de consulta, donde queremos los registros que:

 

Estén en un estatus pendiente (Running).

Tengan una fecha de creación (atributo OpeningDate) que sea posterior a Noviembre 1 de 2011.

 

QuerySOA_example_input_2

 

Datos de salida

 

Esquema de salida

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

QuerySOA_output

 

 

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

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

Los siguientes subnodos se incluyen en este nodo:

oRADNUMBER: Número (cadena) de radicación.

oBAWORKFLOWPATH: Path del proceso.

oWFCLSDISPLAYNAME: El nombre para mostrar del proceso.

oCASCREATIONDATE: Fecha de creación del caso.

oCASSOLUCIONDATE: Fecha de solución del caso.

oIDWFCLASS: Id del proceso.

oIDCASE: Número de creación del caso.

oIDCASESTATE: El estado del caso manejado por Bizagi. Los siguientes código de estados son válidos: Iniciado "Initiated" (1), "Ejecutándose" Running (2), Suspendido "Suspended" (3) (este estado está deprecado), Abortado "Aborted" (4), Cerrado "Completed" (5), No-iniciado "NotInitiated" (6), Cancelado por evento de compensación "CancelledByCompensation" (7), Cancelado por excepción "CancelledByException" (8).

TaskTable: Contiene 1 ocurrencia del nodo "Columns", y ocurrencias indefinidas del nodo "Rows" (una para cada actividad).

Los siguiente subnodos se incluyen en este nodo: TaskState: Estado actual de la actividad. CurrentTask: El nombre para mostrar de la actividad. wiEstimatedSolutionDate: Fecha de solución estimada para la actividad. idTaskType: Tipo de actividad. idTask: Id de la actividad. idWorkItem: Id del workitem. idCase: Número de caso relacionado a esa instancia de actividad.

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 de salida

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

QuerySOA_example_output_2

 

note_pin

Algunas columnas en la repuesta pueden mostrar el prefijo E_ en su nombre, este prefijo se muestra siempre que la columna represente una relación múltiple con otra Entidad. Si necesita eliminar este prefijo, consulte este artículo en nuestra Base de conocimiento.  

 

Métodos Web relacionados

Si no requiere obtener información de negocio de los casos consultados, use los métodos getCasesAsString o getCases de los servicios Web de WorkflowEngineSOA.

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

 

Si desea obtener más información específica de un solo caso, use los métodos getCaseDataUsingSchemaAsString o getCaseDataUsingXPathsAsString de los servicios Web de EntityManagerSOA.

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


Last Updated 5/19/2023 9:13:13 AM