Get Cases

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Bizagi from external applications > Bizagi API > Alternative SOAP services > Available SOAP web services > WorkflowEngineSOA Web methods >

Get Cases

Overview

This Web method is used to obtain pending Cases in Bizagi (from an external application).

Pending Cases in Bizagi Processes are those cases allocated to the user with activities in pending status (found at the inbox).

 

This method receives a single input having mainly: Process detail with optional filters to obtain the cases meeting the search criteria.

 

For the getCases method, the request and response XML's are of the native .NET XmlDocument type.

For the getCasesAsString method the same XML structure is handled, but this parameter is sent as a string type.

 

Input

 

Input Schema

The following shows a sample XML structure of information to send to Bizagi:

 

<?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="domain" minOccurs="0" maxOccurs="1" type="xs:string" />

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

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

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

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

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

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

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

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

         <xs:complexType>

           <xs:sequence>

             <xs:element name="From" minOccurs="0" maxOccurs="1" type="xs:dateTime" />

             <xs:element name="To" minOccurs="0" maxOccurs="1" type="xs:dateTime" />

           </xs:sequence>

         </xs:complexType>

       </xs:element>

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

         <xs:complexType>

           <xs:sequence>

             <xs:element name="From" minOccurs="0" maxOccurs="1" type="xs:dateTime" />

             <xs:element name="To" minOccurs="0" maxOccurs="1" type="xs:dateTime" />

           </xs:sequence>

         </xs:complexType>

       </xs:element>

     </xs:sequence>

   </xs:complexType>

 </xs:element>

</xs:schema>

 

Input Parameters

BizAgiWSParam: Root node. All possible filters are included here and are optional. If more than one search criteria is used, the result would be only Cases complying with all the conditions.

domain: Search Cases whose assigned user belongs to this domain.

userName: Search Cases whose assigned user is the one indicated here.

radNumber: Cases belonging to this creation number (case number).

applicationName: Cases belonging to the application with this name (enter the Name not the display name).

categoryName: All pending Cases of this category (enter the Name not the display name).

ProcessName: Gets Cases of this Process (enter the Name not the display name).

idCase: Cases belonging to this idCase (case identification number).

subProcessDepth: It is not a search parameter but an indicator of Sub-Process’s depth.

It is used when a Case has Sub-Process, useful to be able to retrieved Cases in possible Sub-Processes (for Sub-Processes type which are not configured as Stand alone).

By default the query returns one level of depth, that is to say, the result will contain the Cases of Sub-Processes related to the Process of the actual case; but not Cases of a Sub-Process' child processes. It can be any integer but is important to keep in mind that for greater depth the query response time will increase, so it is better to enter a small number.

creationDate: Refers to the date when a Case became available.

expirationDate: Date when a Case allegedly expires (according to the configured duration).

From: To be used as sub-node of either the creationDate or expirationDate; it enables a date range to be given. This will be the initial date for the search (the older one).

To: To be used as sub-node of either the creationDate or expirationDate; it enables a date range to be given. This will be the end date for the search (the more recent).

 

note_pin

It is strongly recommended to use the XML date format: YYYY-MM-DD or YYYY-MM-DDT00:00:00 for specific time.

 

Input Example

In the following example, we obtain those Cases which:

1. Were activated (started to be pending) from May 17 at 4 pm to May 21 at 4 pm.

2. Are currently assigned to the admon user in Bizagi.

 

Method getCases

<BizAgiWSParam>

 <userName>admon</userName>

 <creationDate>

 <From>2012-05-17T16:00:00</From>

 <To>2012-05-21T16:00:00</To>

 </creationDate>

</BizAgiWSParam>

 

Method getCasesAsString

<caseInfo>
  <![CDATA[<BizAgiWSParam>
  <userName>admon</userName>
  <creationDate>
  <From>2012-05-17T16:00:00</From>
  <To>2012-05-21T16:00:00</To>
  </creationDate>
  </BizAgiWSParam>]]>
</caseInfo>

 

Output

 

Output Schema

The following shows a sample XML structure of information returned by Bizagi:

 

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

      attributeFormDefault="unqualified" elementFormDefault="qualified">

 <xs:element name="processes">

   <xs:complexType>

     <xs:sequence>

       <xs:element name="process">

         <xs:complexType>

           <xs:sequence>

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

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

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

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

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

                   <xs:element name="workflowClassDescription" />

                   <xs:element name="workflowClassHelpText" />

                   <xs:element name="workflowClassHelpURL" />

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

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

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

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

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

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

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

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

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

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

                               <xs:element name="taskDescription" />

                               <xs:element name="taskHelpText" />

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

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

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

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

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

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

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

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

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

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

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

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

 

Output Parameters

processes: This is the root node of the response, it contains a "process" node for each Case included in the result.

process: This is a specific Case of the Process.

processId: Identification number or key of the Case.

processRadNumber: creation number of the Case.

savedMessage: Reserved for future use.

Entities: Reserved for future use.

ProcessCreationDate: Case creation date.

ProcessSolutionDate: Case solution date.

ProcessWorkflowClass: The information in this node is all about the Process (Process metadata).

workflowClassId: Identification number (or key) of the Process.

workflowClassName: Name of the Process.

workflowClassDisplayName: Display name of the Process.

workflowClassDescription: Process description.

workflowClassHelpText: Process help text.

workflowClassHelpURL: Help URL for the Process.

workflowClassDisplayOrder: The order in which the Process will be viewed in the web application.

workflowClassCreationDate: Creation date of the Process.

workflowClassGlobalForm: Identification number of the Process’s global form (zero if it is not configured).

workflowClassAllocationPrinciple: Reserved for future use.

workflowClassProcessType: Process type.

workflowClassDisplay: Indicates whether the Process is visible or not.

workflowClassUseParentRadicationNumber: Indicates if a case of this Process uses its own creation number or the same number as the parent Process (if it is a Sub-Process).

workflowClassSupportScopes: Indicates if the Process supports long-term transactions in Bizagi (Scopes); which is an efficient method of data persistence.

ProcessError: Contains information of errors occurred during the Processing of this method.

errorCode: Code of the error, if one occurred.

errorMessage: Message of the error, if one occurred.

CurrentWorkItems: Set of the available Activities of the case.

workItem: This is a specific Activity (an instance of a Task) of the Process that is active for a case.

workItemId: Identification number or key of the Activity.

workItemState: Current state of the Activity.

workItemEntryDate: Date and time when this Activity was reached.

workItemDuration: Is the estimated duration, in minutes, for this Activity.

workItemEstimatedSolutionDate: Is the Activity’s estimated solution date.

workItemSolutionDate: The actual date in which the Activity was completed.

task: Contains information about the Task corresponding to the Activity.

taskId: Identification number or key of the Task.

taskName: Name of the Task.

taskDisplayName: Display name of the Task.

taskDescription: Task’s descriptive text.

taskHelpText: Task’s help text.

HelpUrl: URL with information of the Activity.

taskEstimatedDuration: Is the estimated duration, in minutes, for the Task.

taskType: Type of Task.

taskCost: The estimated cost of the Task. This value, like the estimated dates, is configured and determined by the designer of the Process.

taskPriority: Fulfillment priority of the Task.

taskTransactional: An indicator stating if a Task is transactional.

taskCompensation: States if this is a compensation Task.

taskTimerEventDuration: If this Task has an attached Timer Event, it will contain its duration in minutes.  

AllowsReassign: A mark showing if this Task may be reassigned to another user.

SendNotification: Indicates if an email must be sent to a user informing of the availability of the Task.

SendAlarms: Indicates if an email must be sent to the assigned user informing that the Task is at risk of being overdue.

ExtendedEstimatedDuration: Estimated extended time duration.

Form: Reserved for future use.

IsAsynchTask: Specifies if this is an asynchronous Task or not. Usually used for interfaces.

NumberOfRetries: Applies to asynchronous Tasks. Is the number of automatic retries for the Task in case it fails (an exception is thrown).

RetryInterval: Applies to asynchronous Tasks. Is the time (in minutes) between each retry.

ShowFeedback: Applies to asynchronous Tasks. Indicates if the user will be informed when an error occurs.

TimeoutSeconds: Applies to asynchronous Tasks. Time (in seconds) the asynchronous Task will wait for the external system to respond.

 

Output Example

In the following example, we illustrate a returned XML-structured sample response from Bizagi SOA layer:

 

Method getCases

 

getCasesAsString_01

 

Method getCasesAsString

 

getCasesAsString_02

 

Related Web methods

If you wish to obtain a list of available Activities in the Case, use the getActivitiesAsString or getActivities Web method.

For further information refer to the Get Activities article.

 

Once you obtain the list of pending Activities, you may want to perform those Activities (from an external application).

For this, use the performActivityAsString or performActivity Web method.

For further information refer to the Perform Activity article.