Handling Exceptions

SSOLite stored procedures raise a SQL level 16 error message if any procedure fails. Note that:

The error text is always preceded by the string (SWERROR).
Each error has a unique ID, which is displayed at the end of the error text.

It is the application’s responsibility to handle any such database exceptions, and issue a rollback if appropriate.

The following table describes the different errors (and their unique IDs) that may be returned by the SSOLite stored procedures.

Note: Some of the stored procedures listed in the table are not described in this section. These are lower level stored procedures that may be called by some or all of the stored procedures that are described in this section.

Stored Procedure

SQL Error

Error Text

SW_GET_SEQUENCE_TRANS

50000

Invalid sequence type (seq_type) (ID:001000)

50000

Unable to create DMO connection, check user is system administrator (ID:001001)

50000

Unable to set connection type (ID:001002)

50000

Unable to connect to server errno (Error) (ID:001003)

Error is a description of the error returned by the SQL Server sp_OAMethod system stored procedure.

50000

Unable to verify connection (Return) (ID:001004)

50000

Failed to execute sequences - Source (ID:001005)

Source is a description of the source of the error.

50000

Failed to retrieve sequence number - Source (ID:001006)

Source is a description of the source of the error.

SW_GET_NODE_DETAILS

50000

Node details not found in database (ID:001007)

50000

MBox Queue Name(s) not found in database (ID:001008)

SW_GET_SEQUENCE

50000

Failed to find case number (ID:001009)

SW_GET_PROCEDURE

50000

Procedure details not found in database for procedure name=proc_name (ID:001010)

50000

Procedure version not found in database for procedure name=proc_name, Case Num=case_num (ID:001011)

50000

Latest Released or Unreleased Procedure version not found in database for procedure name=proc_name (ID:001012)

50000

Procedure version not found in database for procedure name=proc_name major_version minor_version (ID:001013)

SW_SUSPEND

50000

Suspend type (suspend_type) is invalid, expected 2 (suspend) or 0 (activate) (ID:001014)

50000

Case (case_num) is already active (ID:001036)

50000

Case (case_num) is dead (ID:001037)

50000

Case (case_num) is already suspended (ID:001038)

50000

Procedure and case information does not match (ID:001042)

SW_GET_SUBPROC_DETAILS

50000

Sub-Proc casenum not found in database for Procedure proc_name, Case Number case_num, Step Name step_name, Sub-proc sub_proc_name (ID:001018)

SW_DELAYED_RELEASE_ERR

50000

Failed to get node ID (ID:001022)

SW_GETCASE_STATUS_EX

50000

Failed to find case information for case: case_num (ID:001019)

SW_PURGE

50000

Procedure and case information does not match (ID:001041)

50000

Case (case_num) is dead (ID:001039)

50000

Procedure and case information does not match (ID:001042)

SQL Distributed Management Objects (SQL-DMO)

SSOLite stored procedures access the sequences table to obtain work item and case number sequence numbers. This locks the table, preventing other iProcess processes from accessing it, for the duration of the transaction. This could cause a problem if, for example, you were batch starting a large number of cases as part of a single transaction.

To prevent this, SSOLite stored procedures use SQL-DMO to connect back to the iProcess database as a separate transaction when obtaining sequence numbers.

The use of SQL-DMO means that, when using SSOLite stored procedures, the SQL Server login used to connect to the iProcess database must:

1. use Windows Authentication to validate the connection to the iProcess database.
2. have the Server Administrators SQL Server Role assigned.