Obtener Datos del Caso Utilizando XPaths

<< 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 Datos del Caso Utilizando XPaths

Introducción

Este método se utiliza para obtener tanto información de negocio, como detalle general (por ejemplo, fecha de creación, fecha estimada de solución, etc) para un caso en Bizagi (desde una aplicación externa).

 

Este método recibe  un único parámetro de entrada el cual contiene principalmente: el identificador del caso, filtros a forma de XPath para especificar qué información de negocio se quiere obtener.

 

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

Para el método getCaseDataUsingXPathsAsString 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:sequence>

                         <xs:element name="CaseInfo" minOccurs="1" maxOccurs="1">

                                 <xs:complexType>

                                         <xs:sequence>

                   <xs:choice>        

                                                   <xs:element name="IdCase" minOccurs="0" maxOccurs="1" type="xs:integer" />

                                                   <xs:element name="CaseNumber" minOccurs="0" maxOccurs="1" type="xs:integer" />

                   </xs:choice>

                   <xs:choice>

                                                   <xs:element name="TaskName" minOccurs="0" maxOccurs="1" type="xs:string" />

                                                   <xs:element name="IdTask" minOccurs="0" maxOccurs="1" type="xs:integer" />

                                                   <xs:element name="IdWorkItem" minOccurs="0" maxOccurs="1" type="xs:integer" />

                   </xs:choice>

                                         </xs:sequence>

                                 </xs:complexType>

                         </xs:element>

                         <xs:element name="XPaths" minOccurs="1" maxOccurs="1">

                                 <xs:complexType>

                                         <xs:sequence>

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

                                                         <xs:complexType>

                                                                 <xs:attribute name="XPath" type="xs:string" />

                                                         </xs:complexType>

                                                 </xs:element>

                                         </xs:sequence>

                                 </xs:complexType>

                         </xs:element>

                 </xs:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

Parámetros de entrada

IdCase: Número de identificación Interna (id en la base de datos) del caso en Bizagi.

CaseNumber: Número de caso o número de creación del caso. Si se utiliza el IdCase, este no será necesario.

TaskName: Este elemento debe ser utilizado en conjunto con el IdCase o el número del caso (CaseNumber). Cuando se incluye en la consulta, la infomación retornada será la información guardada en una tarea en curso (únicamente para actividades manuales o eventos intermedios disponibles), der lo contrario, se retorna únicamente la información existente en la base de datos.

IdTask: Es posible utilizar el número de identificación interno de la Actividad (en la base de datos) en lugar del nombre de la Tarea.

IdWorkItem: Otra forma de obtener la información de una tarea específica en el caso es enviando el número de identificación del workitem (la tabla WORKITEM almacena la información sobre las tareas en curso y ejecutadas para cada caso). Si se envía este elemento, entonces es necesario llenar el nombre de la tarea o el id, y no el id del caso (idCase) o el número de creación.

Es importante que el id que se envía sea el de un workitem que se encuentre abierto, no el de uno que ya haya sido ejecutado.

XPaths: Contiene 1 o más nodos de tipo Xpath, que se usa para filtrar la información.

XPath: Incluya este elemento para cada XPath en la consulta. Este elemento tiene a su vez un atributo llamado XPath. El valor de este atributo será el XPath de Bizagi  solicitado.

 

Por lo tanto, en este nodo, las posibilidades son:

- Llenar únicamente el IdCase (la respuesta incluiría  solamente información de las tareas terminadas).

- Llenar el número del caso, en inglés CaseNumber (la respuesta incluiría solamente información de las tareas terminadas).

- Llenar el IdCase o el número del caso junto con el Nombre de la tarea (TaskName) o el IdTask.  (La respuesta incluiría información de las tareas activas).

- Llenar únicamente el IdWorkItem (La respuesta incluiría información de las tareas activas).

XPath: Incluya este elemento para cada XPath en la consulta. Este elemento tiene a su vez un atributo llamado XPath. El valor de este atributo será el XPath de Bizagi  solicitado.

 

Ejemplo

Con el siguiente ejemplo, se quieren obtener datos de un caso del Proceso de Solicitud de crédito (Credit Request) con el siguiente modelo de datos:

GetCaseDataUsingXPaths_Image002

 

Con este ejemplo, obtendremos la información de negocio de un caso con identificador=8451.

Este caso tiene una Actividad pendiente cuyo id es 180.

La información que deseamos obtener es: BuroScore, BuroFile, DocumentNumber y DocsDelivieryDate de la Entidad Applicant (para todos los solicitantes --instancias de applicant-- de la solicitud).

Adicionalmente, queremos obtener el valor de DocumentNumber de aplicantes con BuroScore menor que 100.

 

Para este tipo de filtros, donde se use el caracter <, es necesario utilizar su notación para XML (dado que este es un caracter especial de la notación de XML); y por lo tanto se define como &lt;.

 

En la siguiente table podemos ver los formatos XML equivalentes para usar cuando hayan caracteres especiales.

 

Caracter

Descripción

Formato XML

<

Operador menor-que

&lt;

>

Operador mayor-que

&gt;

"

Comilla doble

&quot;

'

Apóstrofe, o comilla simple

&apos;

&

Ampersand

&amp;

 

Le recomendamos utilizar Cómo iniciar Procesos en Bizagi desde otras aplicaciones como guía para invocar este servicio.

 

Método getCaseDataUsingXPaths

<BizAgiWSParam>

 <CaseInfo>

         <CaseNumber>8451</CaseNumber>

         <IdTask>180</IdTask>

 </CaseInfo>

 <XPaths>

         <!-- Integer type attribute -->

         <XPath XPath="idApplicant.BuroScore" />

         <!-- XPath with error -->

         <XPath XPath="idApplicat.BuroScore" />

         <!-- File type attribute -->

         <XPath XPath="idApplicant.BuroFile" />

         <!-- String type attribute -->

         <XPath XPath="idApplicant.DocumentNumber" />

         <!-- Collection without filter and attributes -->

         <XPath XPath="idApplicant.Applicants" />

         <!-- Collection with filter and attribute -->

         <XPath XPath="idApplicant.Applicants[BuroScore &lt; 100].DocumentNumber" />

         <!-- Date type attribute -->

         <XPath XPath="idApplicant.DocsDeliveryDate" />

 </XPaths>

</BizAgiWSParam>

 

Método getCaseDataUsingXPathsAsString

<sXml>
  <![CDATA[<BizAgiWSParam>
    <CaseInfo>
        <CaseNumber>8451</CaseNumber>
        <IdTask>180</IdTask>
    </CaseInfo>
    <XPaths>
        <!-- Integer type attribute -->
        <XPath XPath="idApplicant.BuroScore" />
        <!-- XPath with error -->
        <XPath XPath="idApplicat.BuroScore" />
        <!-- File type attribute -->
        <XPath XPath="idApplicant.BuroFile" />
        <!-- String type attribute -->
        <XPath XPath="idApplicant.DocumentNumber" />
        <!-- Collection without filter and attributes -->
        <XPath XPath="idApplicant.Applicants" />
        <!-- Collection with filter and attribute -->
        <XPath XPath="idApplicant.Applicants[BuroScore &lt; 100].DocumentNumber" />
        <!-- Date type attribute -->
        <XPath XPath="idApplicant.DocsDeliveryDate" />
    </XPaths>
  </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 attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="BizAgiWSResponse">

         <xs:complexType>

                 <xs:sequence>

                         <xs:choice maxOccurs="unbounded">

                                 <xs:element name="XPath">

                                         <xs:complexType mixed="true">

                                                 <xs:sequence minOccurs="0">

                                                         <xs:element name="Items">

                                                                 <xs:complexType>

                                                                         <xs:sequence>

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

                                                                                         <xs:complexType>

                                                                                                 <xs:simpleContent>

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

                                                                                                                 <xs:attribute name="Id" type="xs:integer" use="optional" />

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

                                                                                                         </xs:extension>

                                                                                                 </xs:simpleContent>

                                                                                         </xs:complexType>

                                                                                 </xs:element>

                                                                         </xs:sequence>

                                                                 </xs:complexType>

                                                         </xs:element>

                                                 </xs:sequence>

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

                                         </xs:complexType>

                                 </xs:element>

                                 <xs:element name="Error">

                                         <xs:complexType>

                                                 <xs:sequence>

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

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

                                                 </xs:sequence>

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

                                         </xs:complexType>

                                 </xs:element>

                         </xs:choice>

                 </xs:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

Parámetros de salida

BizAgiWSResponse: El nodo raíz.

Xpath: Elemento presente por cada valor retornado como se especifica en el parámetro de entrada.

Observe que este elemento puede tener más de un valor (específicamente para archivos adjuntos y colecciones). Si este es el caso, refiérase a la descripción de los ítems.

Items: Contiene el valor cuando el elemento Xpath contiene múltiples valores.

Error: Contiene la información en caso de error en la invocación.

ErrorCode: Contiene el código del error (debe ocurrir un error).

ErrorMessage: Mensaje descriptivo del error (debe ocurrir un error), su elementos internos corresponden al esquema definido en los parámetros de entrada.

 

Ejemplo

Method getCaseDataUsingXPathsAsString

Con el siguiente ejemplo, se ilustra la respuesta que retorna la invocación de este método en Bizagi, en donde vemos una invocación exitosa, y un error:

 

GetCaseDataUsingXPaths_Image005

Método getCaseDataUsingXPathsAsString

El siguiente ejemplo, muestra como se visualiza un mensaje de error:

 

GetCaseDataUsingXPathsAsString_01

Métodos Web relacionados

Si desea utilizar un XSD (esquema de XML) en vez de Xpaths como filtro de la información a obtener, use los métodos getCaseDataUsingSchemaAsString o getCaseDataUsingSchema.

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