Ejecutar Actividad

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

Ejecutar Actividad

Introducción

Este método se utiliza para ejecutar o realizar una Actividad que esté pendiente (en el Inbox) en Bizagi (desde una aplicación externa).

De esta forma, la Actividad se completa y el caso continúa a lo siguiente que se deba realizar en el flujo.

 

Este método recibe un único parámetro de entrada el cual contiene principalmente: el usuario que ejecuta la Actividad, el identificador del caso sobre el cual se realiza la Actividad, el nombre de la Actividad e información de negocio relevante a la misma (datos, adjuntos, etc).

Al invocar este método, se completa la Actividad y se ejecutan las reglas de negocio que hayan a la salida de la misma, de la misma manera en que se realiza desde el Portal de Trabajo.

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

 

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

En el método performActivityAsString 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 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="ActivityData">

         <xs:complexType>

           <xs:sequence>

             <xs:choice>

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

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

             </xs:choice>

             <xs:choice>

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

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

             </xs:choice>

           </xs:sequence>

         </xs:complexType>

       </xs:element>

       <xs:element name="Entities">

         <xs:complexType/>

       </xs:element>

     </xs:sequence>

   </xs:complexType>

 </xs:element>

</xs:schema>

 

Parámetros de entrada

BizAgiWSParam: Nodo raíz, contiene toda la información necesaria para avanzar la actividad.

domain: Nombre del dominio al cual pertenece el usuario de Bizagi que aparecerá como aquel que avanzó la Actividad.

userName: Nombre del usuario que será registrado como el usuario que avanzó la actividad.

ActivityData: Contiene toda la información correspondiente a la actividad. Esta información es necesaria para encontrar dicha actividad.

idCase: Número de identificación del caso para la actividad que se desea avanzar. Es necesario incluir este elemento o el Número de Radicación (radNumber).

radNumber: Elemento alternativo al idCase. Es el número de creación (case number) del caso que contiene la actividad pediente que se desea avanzar.Cuando se usa el mismo número de creación en varios casos (por ejemplo, si un subproceso tiene el mismo número que el caso padre) se debe usar el número del caso (idCase) para distinguir a cual caso pertenece la actividad.

taskId: Número de identificación de la Actividad que se desea avanzar. Este elemento es necesario; si no se conoce el número, se debe incluir el nombre de la tarea (taskName).

taskName: Usado como elemento alternativo al id de la tarea (taskId). Es el nombre de la actividad pendiente que se desea avanzar.

Entities: Nodo que contiene los valores de las información de negocio que será asociada al 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 de entrada

Con el siguiente ejemplo, se completará la Actividad cuyo nombre es (Task name = Task3), para el caso con identificador 9253.

Si desea ver un ejemplo completo con un caso de negocio para utilizar el método performActivityAsString, consulte Cómo realizar una Actividad en Bizagi desde aplicaciones externas.

 

Entrad del método PerformActivity

<BizAgiWSParam>
  <domain>domain</domain>
  <userName>Raulp</userName>
  <ActivityData>
    <radNumber>9253</radNumber>
    <taskName>Task3</taskName>
  </ActivityData>
  <Entities>
    <idRequest>
        <Applicants>
          <Applicant>
              <BuroScore>5</BuroScore>
          </Applicant>
        </Applicants>
    </idRequest>
  </Entities>
</BizAgiWSParam>

 

Entrada del método PerformActivityAsString

<activityInfo>
  <![CDATA[<BizAgiWSParam>
    <domain>domain</domain>
    <userName>Raulp</userName>
    <ActivityData>
        <radNumber>9253</radNumber>
        <taskName>Task3</taskName>
    </ActivityData>
    <Entities>
        <idRequest>
          <Applicants>
              <Applicant>
                <BuroScore>5</BuroScore>
              </Applicant>
          </Applicants>
        </idRequest>
    </Entities>
  </BizAgiWSParam>]]>
</activityInfo>

 

note_pin

Hay dos formas de usar llaves de negocio

 

Usandolo como un atributo de un tag:

<Applicant businessKey="DocumentNumber = '123456'">

 

O usandolo cómo un tag individual:

<DocumentNumber>123456</DocumentNumber>

 

Tenga en cuenta que nunca puede usar ambos al mismo tiempo. Para obtener más información, consulte Uso de llaves de negocio en XML.

 

Usar etiquetas vacías

Bizagi admite el uso de etiquetas de atributo vacías, por ejemplo, del ejemplo anterior:

 

<BuroScore></BuroScore>

 

Usando el valor vacío, Bizagi no lo valida como llave de negocio. Esto significa que la ejecución del método no muestra ningún error relacionado con una llave de negocio.

 

Asignar como nulo un atributo

A través de este método usted puede darle un valor nulo a un atributo específico. Para hacer esto, debe dejar en verdadero el atributo "nil" dentro del atributo de la entidad que desea establecer en nulo:

 

<Entities>
<idRequest>
    <Applicants>
      <Applicant>
          <BuroScore nil="true"></BuroScore>
      </Applicant>
    </Applicants>
</idRequest>
</Entities>

 

note_pin

El anterior ejemplo no aplica para los atributos de tipo file o image.

 

Datos de salida

 

Esquema de salida

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

 

<?xml version="1.0" ?>

<xs:schema targetNamespace="http://tempuri.org/performActivity.xsd" xmlns="http://tempuri.org/performActivity.xsd"

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

<xs:element name="processes">

  <xs:complexType>

    <xs:sequence>

      <xs:element name="process">

        <xs:complexType>

          <xs:sequence>

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

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

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

              <xs:complexType>

                <xs:sequence>

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

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

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

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

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

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

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

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

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

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

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

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

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

                </xs:sequence>

              </xs:complexType>

            </xs:element>

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

              <xs:complexType>

                <xs:sequence>

                  <xs:element name="errorCode" type="xs:string" minOccurs="0" nillable="true" />

                  <xs:element name="errorMessage" type="xs:string" minOccurs="0" nillable="true" />

                </xs:sequence>

              </xs:complexType>

            </xs:element>

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

              <xs:complexType>

                <xs:sequence>

                  <xs:element name="workItem" minOccurs="0" maxOccurs="unbounded">

                    <xs:complexType>

                      <xs:sequence>

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

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

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

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

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

                        <xs:element name="task" minOccurs="0" maxOccurs="unbounded">

                          <xs:complexType>

                            <xs:sequence>

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

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

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

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

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

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

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

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

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

                            </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: El elemento raíz que incluirá N número de ocurrencias del elemento process, de acuerdo al número de casos cuyas actividades fueron completadas por la vía de este método (dado que más de un caso puede tener el mismo radNumber cuando se utilizan sub procesos).

process: Este elemento incluye información del proceso (para cada caso invocado).

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: Este nodo contiene información del proceso (metadata), no información de un 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 aparecerán 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 en caso de no estar configurada).

workflowClassAllocationPrinciple: Reservada para uso futuro.

workflowClassProcessType: Tipo de proceso.

workflowClassDisplay: Indica si un proceso es o no visible.

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

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

errorCode: Código del error, si no hubo error, este nodo estará vacío.

errorMessage: Mensaje del error presentado, si no hubo error este nodo estará vacío.

Path: XPath del elemento en el XML de entrada que genera el error . Visible cuando el error se presenta por información incorrecta.

Attrib: Nombre del atributo en Bizagi donde se intentó almacenar la información que generó el error. Este nodo es visible únicamente cuando el error es generado por información incorrecta.

Value: Valor que generó el error. Este nodo es visible únicamente cuando el error es generado por información incorrecta.

ErrorMessage: Mensaje explicativo sobre el error. Visible si el error fue generado por información incorrecta.

CurrentWorkItems: Serie de actividades disponibles para el caso.

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

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

workItemState: Estado en el que se encuentra la actividad.

workItemEntryDate: Fecha y hora en la cual se llega a la actividad por primera vez.

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

workItemEstimatedSolutionDate: Fecha estimada de solución del caso.

Task: Contiene información sobre la tarea asociada 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 de la tarea, en minutos.

taskType: Tipo de tarea.

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

taskPriority: Prioridad para el cumplimiento de la tarea.

 

Ejemplo de salida

 

Salida del método PerformActivity

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

 

PerformActivity_Image004

 

Salida del método PerformActivityAsString

El siguiente ejemplo muestra cómo se ven los mensajes de error:

 

performActivityAsString_01

 

Métodos Web relacionados

Para obtener un listado de Actividades pendientes de un caso en particular, use los métodos getActivitiesAsString o getActivities.

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

 

Si desea ejecutar in evento (establecer la ocurrencia de un evento intermedio BPMN), use los métodos setEventAsString o setEvent.

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

 

Si desea sólo registrar información a una actividad pendiente, sin completarla (simular hacer clic sobre el botón Guardar en vez de Siguiente en la forma), use los métodos saveActivityAsString o saveActivity.

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

 

Si desea iniciar el Proceso (crear un caso) en vez de avanzar uno existente, use los métodos createCasesAsString o createCases.

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


Last Updated 1/28/2022 4:01:54 PM