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

Crear Casos

Introducción

Este método se utiliza para crear cualquier número de casos en Bizagi (iniciar instancias de Proceso), con información inicial de negocio, desde una aplicación externa.

 

Este método recibe un único parámetro de entrada el cual contiene principalmente: los casos a iniciarse (cantidad) con su información de negocio (datos, adjuntos, etc), el tipo de Proceso y el creador de los casos.

A través de este método los casos nuevos quedarán en su primera Actividad, tal y como sucede cuando se crean casos por los usuarios 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 createCases, los XMLs de petición y de respuesta son de tipo XmlDocument nativo de .NET.

En el método createCasesAsString 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="Cases">

         <xs:complexType>

           <xs:sequence>

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

               <xs:complexType>

                 <xs:sequence>

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

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

                   <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: Contiene el nombre del dominio del usuario Bizagi que será registrado como el creador del caso.

userName: Contiene el nombre (usado en Bizagi) del usuario que será registrado como el creador del caso.

Cases: Este elemento será incluído para agrupar varios elementos case dependiendo del número de casos que serán creados.

Case: En este elemento se incluye información del caso que será creado.

Organization: Ingrese el id de la organización a la cual este caso será asociado (útil cuando se manejan múltiples organizaciones). Por defecto cuando este elemento no esté presente, la organización por omisión será la que tenga id=1.

Process: En este elemento, escriba el nombre (no el nombre a mostrar) del proceso.

Entities: Incluya aquí la información que será almacenada en el modelo de datos del paso que se está creando.

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 crean 2 casos del Proceso de Crédito (Credit).

Si desea ver un ejemplo completo con un caso de negocio para utilizar este método, consulte Cómo iniciar un Proceso en Bizagi desde aplicaciones externas.

 

Entrada del método CreateCases

<BizAgiWSParam>

 <domain>domain</domain>

 <userName>admon</userName>

 <Cases>

   <Case>

     <Process>Credit</Process>

     <Entities>

       <idRequest>

         <Applicants>

           <Applicant>

             <DocumentNumber>785621</DocumentNumber>

             <idDocumentType businesskey="Name='CC'" />

             <BuroScore>5</BuroScore>

           </Applicant>

         </Applicants>

       </idRequest>

     </Entities>

   </Case>

   <Case>

     <Process>Credit</Process>

     <Entities>

       <idRequest>

         <Applicants>

           <Applicant>

             <DocumentNumber>568977</DocumentNumber>

             <idDocumentType businesskey="Name='TI'" />

             <BuroScore>a</BuroScore>

           </Applicant>

         </Applicants>

       </idRequest>

     </Entities>

   </Case>

 </Cases>

</BizAgiWSParam>

 

Entrada del método CreateCasesAsString

<casesInfo>

 <![CDATA[<BizAgiWSParam>

   <domain>domain</domain>

   <userName>admon</userName>

   <Cases>

     <Case>

     <Process>Credit</Process>

     <Entities>

       <idRequest>

         <Applicants>

           <Applicant>

             <DocumentNumber>785621</DocumentNumber>

             <idDocumentType businesskey="Name='CC'" />

             <BuroScore>5</BuroScore>

           </Applicant>

         </Applicants>

       </idRequest>

     </Entities>

     </Case>

   </Cases>

 </BizAgiWSParam>]]>

</casesInfo>

 

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.

 

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="processes">

   <xs:complexType>

     <xs:sequence>

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

         <xs:complexType>

           <xs:sequence>

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

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

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

               <xs:complexType>

                 <xs:sequence>

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

                 </xs:sequence>

               </xs:complexType>

             </xs:element>

             <xs:element minOccurs="0" 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="workflowClassDisplayOrder" type="xs:integer" />

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

                   <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:string" />

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

                 </xs:sequence>

               </xs:complexType>

             </xs:element>

             <xs:element name="processError">

               <xs:complexType>

                 <xs:sequence>

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

                   <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 mixed="true">

                 <xs:sequence minOccurs="0">

                   <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:string" />

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

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

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

process: Este elemento se incluye para cada caso que se va a crear.

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

processRadNumber: Valor Alfanumérico que corresponde al número de creación del caso.

savedMessage: Reservado para una funcionalidad posterior.

Entities: Reservado para una funcionalidad posterior.

processWorkflowClass: Este nodo contiene 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: El orden en el cual aparece el proceso en la aplicación web.

workflowClassCreationDate: Fecha de creación del proceso.

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

workflowClassAllocationPrinciple: Reservado para una funcionalidad posterior

workflowClassProcessType: Tipo de proceso.

workflowClassDisplay: Indica si el proceso es visible o no.

workflowClassUseParentRadicationNumber: Indica si un caso de este proceso utiliza su propio número de creación o si es el mismo número que el proceso padre (para subprocesos).

workflowClassSupportScopes: Indica si el proceso soporta los "scopes" de Bizagi, los cuales son un método eficiente de persistencia de datos.

processError: Si se presentó un error en el momento de cancelar un caso, este elemento mostrará información del error.

errorCode: Código del error presentado, 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. Este elemento es visible cuando el error es generado por información incorrecta.

Attrib: Es el nombre del atributo en Bizagi donde se intentó realizar la operación de almacenamiento de datos. Este elemento es visible cuando el error es generado por información incorrecta.

Value: Es el valor que causa el error. Es visible cuando el error es generado por información incorrecta.

ErrorMessage: Mensaje que explíca por qué se presentó el error. Visible cuando el error es causado por información incorrecta.

CurrentWorkItems: Serie de actividades disponibles para un caso.

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

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

workItemState: Estado en el cual se encuentra la actividad.

workItemEntryDate: Fecha y hora en la que el caso llegó a esta actividad.

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

workItemEstimatedSolutionDate: Es la fecha estimada de solución para el caso.

task: Contiene información sobre la tarea.

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: Es la duración estimada, en minutos, de la tarea.

taskType: Tipo de tarea.

taskCost: Costo estimado de la tarea. Este valor, como el de las fechas estimadas, es configurado y determinado por el diseñador del proceso.

taskPriority: Prioridad de la tarea.

 

Ejemplo de salida

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

 

Salida del método CreateCases

Con el primer nodo, se crea un caso (instancia de Proceso) de manera exitosa.

Con el segundo nodo, se lanza un error donde el caso no es creado. Dentro de esta respuesta, el detalle de error se despliega dentro de ProcessError.

 

createCases_Image004

 

Salida del método CreateCasesAsString

En este nodo, el proceso no existe.

 

createCasesAsString_01

 

Métodos Web relacionados

Si desea completar y avanzar una Actividad específica del Proceso (de las pendientes en el Inbox), utilice los métodos performActivityAsString o performActivity.

Para más información, consulte Realizar Actividad.


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