setEventAsString

<< 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 WorkflowEngineSOA >

setEventAsString

Introducción

Este método se utiliza para disparar y completar cualquier cantidad de Eventos disponibles en Bizagi (desde una aplicación externa).

Los Eventos de negocio en Bizagi se modelan a través de los elementos BPMN, en los cuales los Eventos de tipo Intermedios sin sub-tipo especial que se encuentren disponibles desde algún momento del flujo del Proceso podrán ser invocados.

IntermediateEvent_SOA

 

Este método recibe un único parámetro de entrada el cual contiene principalmente: el usuario quien realiza el Evento, la información de negocio relevante, el nombre o id del Evento y el número de caso.

A través de este método, se completa un Evento de la misma manera como se hace desde el Portal de Trabajo.

Para más información acerca de esta opción en el Portal, consulte Portal de Trabajo de Bizagi.

 

 

note_pin

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

Para el método setEvent, 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 setEventAsString 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 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="domain" type="xs:string"/>

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

                         <xs:element name="Events">

                                 <xs:complexType>

                                         <xs:sequence>

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

                                                         <xs:complexType>

                                                                 <xs:sequence>

                                                                         <xs:element name="EventData">

                                                                                 <xs:complexType>

                                                                                         <xs:sequence>

                                                                                                 <xs:choice>

                                                                                                         <xs:element name="idCase" type="xs:integer" minOccurs="0"/>

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

                                                                                                 </xs:choice>

                                                                                                 <xs:choice>

                                                                                                         <xs:element name="idTask" type="xs:integer" minOccurs="0"/>

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

                                                                                                 </xs:choice>

                                                                                         </xs:sequence>

                                                                                 </xs:complexType>

                                                                         </xs:element>

                                                                         <xs:element name="Entities">

                                                                                 <xs:complexType/>

                                                                         </xs:element>

                                                                 </xs:sequence>

                                                         </xs:complexType>

                                                 </xs:element>

                                         </xs:sequence>

                                 </xs:complexType>

                         </xs:element>

                 </xs:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

 

 

Parámetros de entrada

BizAgiWSParam: Nodo raíz.

domain: Nombre del dominio del usuario Bizagi que será registrado como aquel que avanzó el Evento.

userName: Nombre del usuario registrado como aquel que avanzó el Evento.

Events: Contiene información de todos los Eventos.

Event: Contiene información de un Evento en particular.

EventData: Contiene la información necesaria para localizar el Evento.

idCase: Es el número de identificación del caso para el Evento que se desea avanzar. Es necesario que se incluya este elemento, o en su defecto el radNumber.

radNumber: alternativa al idCase. es el número de creación (número de caso) del caso que contiene el Evento pendiente que se desea avanzar. Cuando se usa el mismo número de creación para varios casos (como cuando un subproceso utiliza el número del caso padre) el idCase debe ser utilizado para distinguir a cual caso pertenece el evento.

idTask: Número de identificación del Event que se desea avanzar. Este elemento es necesario; Si no se conoce este número, se debe incluir el eventName.

eventName: Empleado como alternativa al identificador de la tarea (taskId), es el número del evento pendiente que se va a avanzar.

Entities: Es el nodo que contiene la información de negocio que se va a guardar en el caso.

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 .

 

Ejemplo

Con el siguiente ejemplo, se completan Eventos para dos casos diferentes.

En este ejemplo, podemos ver que  el usuario domain\Raulp es quien dispara los Eventos.

El primer Evento se referencia por su nombre (Event2), y el segundo Evento se referencia por el id del elemento (idTask=145).

 

 

SetEvent_Image002

 

 

Nótese que la información de negocio está contenida dentro del elemento Entities, dado que esta información es opcional.

 

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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

 <xs:element name="processes">

         <xs:complexType>

                 <xs:sequence>

                         <xs:element name="process">

                                 <xs:complexType>

                                         <xs:sequence>

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

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

                                                 <xs:element name="savedMessage">

                                                         <xs:complexType>

                                                                 <xs:sequence>

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

                                                                 </xs:sequence>

                                                         </xs:complexType>

                                                 </xs:element>

                                                 <xs:element name="processCreationDate" type="xs:dateTime"/>

                                                 <xs:element name="processSolutionDate" type="xs:dateTime"/>

                                                 <xs:element name="processWorkflowClass">

                                                         <xs:complexType>

                                                                 <xs:sequence>

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

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

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

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

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

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

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

                                                                         <xs:element name="workflowClassCreationDate" type="xs:dateTime"/>

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

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

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

                                                                         <xs:element name="workflowClassDisplay" type="xs:boolean"/>

                                                                         <xs:element name="workflowClassUseParentRadicationNumber" type="xs:boolean"/>

                                                                         <xs:element name="workflowClassSupportsScopes" type="xs:boolean"/>

                                                                 </xs:sequence>

                                                         </xs:complexType>

                                                 </xs:element>

                                                 <xs:element name="processError">

                                                         <xs:complexType>

                                                                 <xs:sequence>

                                                                         <xs:element name="errorCode"/>

                                                                         <xs:element name="errorMessage">

                                                                                 <xs:complexType mixed="true">

                                                                                         <xs:sequence minOccurs="0">

                                                                                                 <xs:element name="Entities">

                                                                                                         <xs:complexType>

                                                                                                                 <xs:sequence>

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

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

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

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

                                                                                                                 </xs:sequence>

                                                                                                         </xs:complexType>

                                                                                                 </xs:element>

                                                                                         </xs:sequence>

                                                                                 </xs:complexType>

                                                                         </xs:element>

                                                                 </xs:sequence>

                                                         </xs:complexType>

                                                 </xs:element>

                                                 <xs:element name="CurrentWorkItems">

                                                         <xs:complexType>

                                                                 <xs:sequence>

                                                                         <xs:element name="workItem">

                                                                                 <xs:complexType>

                                                                                         <xs:sequence>

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

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

                                                                                                 <xs:element name="workItemEntryDate" type="xs:dateTime"/>

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

                                                                                                 <xs:element name="workItemSubprocesses"/>

                                                                                                 <xs:element name="workItemEstimatedSolutionDate" type="xs:dateTime"/>

                                                                                                 <xs:element name="workItemSolutionDate" type="xs:dateTime"/>

                                                                                                 <xs:element name="task">

                                                                                                         <xs:complexType>

                                                                                                                 <xs:sequence>

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

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

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

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

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

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

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

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

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

                                                                                                                         <xs:element name="taskTransactional" type="xs:boolean"/>

                                                                                                                         <xs:element name="taskCompensation" type="xs:boolean"/>

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

                                                                                                                         <xs:element name="AllowsReassign" type="xs:boolean"/>

                                                                                                                         <xs:element name="SendNotification" type="xs:boolean"/>

                                                                                                                         <xs:element name="SendAlarms" type="xs:boolean"/>

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

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

                                                                                                                         <xs:element name="IsAsynchTask" type="xs:boolean"/>

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

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

                                                                                                                         <xs:element name="ShowFeedback" type="xs:boolean"/>

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

                                                                                                                 </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:sequence>

         </xs:complexType>

 </xs:element>

</xs:schema>

 

 

Parámetros de salida

processes: Nodo raíz, contiene información sobre los procesos a los cuales pertenecen los eventos.

process: Este elemento incluye información del proceso.

processId: Número de identificación del caso (idCase).

processRadNumber: Valor alfanumérico correspondiente al número de creación del caso.

savedMessage: Reservado para uso futuro.

Entities: Reservado para uso futuro.

processWorkflowClass: Toda la información en este nodo es información del proceso (metadata), no es información del caso en particular.

workflowClassId: Número de identificación (o llave) del proceso.

workflowClassName: Nombre del proceso.

workflowClassDisplayName: Nombre a mostrar del proceso.

workflowClassDescription: Descripción del proceso.

workflowClassHelpText: Texto de ayuda del proceso.

workflowClassHelpURL: URL de ayuda del proceso.

workflowClassDisplayOrder: Orden en el cual aparecen los procesos en Bizagi Studio.

workflowClassCreationDate: Fecha de creación del proceso.

workflowClassGlobalForm: Número de identificación de la forma global del proceso (cero si no se encuentra configurada).

workflowClassAllocationPrinciple: Reservado para uso futuro.

workflowClassProcessType: Tipo de proceso.

workflowClassDisplay: Indica si el proceso es visible o no.

workflowClassUseParentRadicationNumber: Indica si un caso del proceso utiliza su propio número de creación, o si es el mismo número que el del proceso padre (en caso de ser un subproceso).

processError: Si el proceso de guardar información en la actividad no fue exitoso, este elemento contendrá información del error.

errorCode: Código del error ocurrido. En caso de no haber error, este elemento estará vacío.

errorMessage: Mensaje del error ocurrido, En caso de no haber error, este elemento estará vacío.

Path: XPath del elemento que generó el error desde el XML de envío. Visible cuando el error es generado por información errada.

Attrib: Nombre del atributo en Bizagi donde se intentó almacenar la información que generó el error. Visible cuando el error es generado por información errada.

Value: Es el valor que causó el error. Visible cuando el error es causado por información errada.

ErrorMessage: Mensaje donde se describe por qué se ha presentado el error. Visible cuando el error es generado por información incorrecta.

CurrentWorkItems: Serie de actividades disponibles para el caso.

workItem: Actividad específica del proceso (instancia de una tarea) que se encuentra activa para el caso.

workItemId: Número de identificación o llave de la actividad.

workItemState: Estado en el cual se encuentra la actividad.

workItemEntryDate: Fecha y hora en la cual el caso llegó a esta actividad por primera vez.

workItemDuration: Duración estimada de la actividad, en minutos.

workItemEstimatedSolutionDate: Fecha estimada de solución del caso.

Task: Contiene información sobre la tarea que corresponde a la actividad.

taskId: Número de identificación o llave de la tarea.

taskName: Nombre de la tarea.

taskDisplayName: Nombre a mostrar de la tarea.

taskDescription: Texto descriptivo de la tarea.

taskHelpText: Texto de ayuda de la tarea.

taskEstimatedDuration: Duración estimada, en minutos, de la tarea.

taskType: Tipo de tarea.

taskCost: Costo estimado de la tarea. Este valor, así como las fechas estimadas, es configurado y determinado por las persona que diseña el proceso.

taskPriority: Prioridad de terminación de la tarea.

taskTransactional: Indica si la tarea es transaccional o no.

taskCompensation: Informa si es una tarea de compensación.

taskTimerEventDuration: Si es un temporizador, su duración estará en minutos.

AllowsReassign: Marca que muestra si la tarea puede ser reasignada a un usuario distinto.

SendNotification: Indica si se debe enviar un email al usuario asignado informándole sobre la disponibilidad de la tarea.

SendAlarms: Indica si se debe enviar un email al usuario asignado informándole que la tarea está próxima a vencerse.

ExtendedEstimatedDuration: Tiempo de duración extendida estimado.

Form: Reservado para uso futuro.

IsAsynchTask: Especifica si se trata o no de una tarea asincrónica. Utilizado normalmente para interfaces.

NumberOfRetries: Aplica para tareas asincrónicas. Número automático de reintentos para la tarea en case de fallar (se arroja una excepción).

RetryInterval: Aplica para tareas asincrónicas. Tiempo (en minutos) entre cada reintento.

ShowFeedback: Aplica para tareas asincrónicas. Indica si el usuario será informado cuando se presente un error.

TimeoutSeconds: Aplica para tareas asincrónicas. Tiempo (en segundos) que la tarea asincrónica esperará por una respuesta del sistema externo.

 

 

Ejemplo

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

SetEvent_Image004

 

 

Métodos Web relacionados

Si desea ejecutar una Actividad pendiente en cambio de un Evento, use los métodos performActivityAsString o performActivity.

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

 

Para obtener un listado de los Eventos disponibles para un caso determinado, use los métodos getEventsAsString o getEvents.

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