Top Method Summary
Options Name Purpose
CHARACTER AddErrorMessage (character, character, character, character) Adds an ADM2 style formatted error message to an existing error message string
LONGCHAR AddErrorMessage (longchar, character, character, character) Adds an ADM2 style formatted error message to an existing error message string
AddJsonErrorDetails (Error, JsonObject) Adds the properties of the given error to the given JSON object
AddJsonErrorDetails (Error, JsonObject, logical) Adds the properties of the given error to the given JSON object
LOGICAL ConsumeError132Value (handle, character, character, character) Consumes the value of a single field from the (partial) field/values text of an error 132 message
CHARACTER DatasetErrorStrings (handle) Returns a single CHARACTER string composed of the error-strings of all records (from all tables in the given Dataset instance)
DeRegisterErrorHandler (IErrorHandler) Deregisters the IErrorHandler implementation
DeRegisterStopConditionHandler (IStopConditionHandler) Deregisters the IStopConditionHandler implementation
CHARACTER ErrorTitle (Error) Returns the Title associated with an error message
CHARACTER ErrorTypeName (Error) Returns the Typename of the error object
CHARACTER FormattedErrorMessages (Error) Returns a single CHARACTER string composed of the messages Contained in the Progress.Lang.Error object
CHARACTER FormattedErrorMessagesExt (Error) Returns a single CHARACTER string composed of the messages Contained in the Progress.Lang.Error object, including the stack trace and the text of inner exceptions when present
LONGCHAR FormattedErrorMessagesLong (Error) Returns a single CHARACTER string composed of the messages Contained in the Progress.Lang.Error object
CHARACTER GetMsgDataFileName (integer) Returns the file name containing the message description data
CHARACTER GetMsgDescription (integer) Returns the error message description for the given ABL error message
CHARACTER GetRuntimeErrorMessage (integer) Returns the text of the given ABL error message
CHARACTER GetSmartMessage (character) Formats a SmartMessage
LOGICAL HandleError (Error) Handles an Error object using the registered IErrorHandler implementations
LOGICAL HasMessageNumber (Error, integer) Returns if the error instance contains an error message with the given message number
IgnoreError (Error, integer) Ignores specific Progress.Lang.SysErrors and throws all others
IgnoreError (Error, integer, integer) Ignores specific Progress.Lang.SysErrors and throws all others
IgnoreError (Error, integer, integer, integer) Ignores specific Progress.Lang.SysErrors and throws all others
IgnoreError (Error, integer, integer, integer, integer) Ignores specific Progress.Lang.SysErrors and throws all others
IgnoreError (Error, integer, integer, integer, integer, integer) Ignores specific Progress.Lang.SysErrors and throws all others
LOGICAL IsInputConversionError (Error) Determines if an error is caused by input type conversion
LOGICAL IsRemoteThrowable (Error) Returns if the error is throwable from an AppServer to an ABL client
LOGICAL IsValidError132Value (handle, character) Validates that the given token from an error 132 message can be converted to the data type of the given buffer field
Progress.Json.ObjectModel.JsonObject JsonErrorDetails (Error) Returns a Json Object with the error details
Progress.Json.ObjectModel.JsonObject JsonErrorDetails (Error, logical) Returns a Json Object with the error details
LOGICAL MatchError132Fields (handle, character, integer, character, character, character, character, character) Recursively matches the fields of a unique index candidate against the remainder of an error 132 message
Consultingwerk.Util.Error132Info ParseError132 (SysError) Parses an 132 runtime Error and returns the table and field/values (** Salesrep already exists with Sales Rep "bbb". (132))
Consultingwerk.Util.Error132Info ParseError132 (SysError, handle) Parses an 132 runtime Error and returns the table name, the field/values text and - resolved using the given buffer - the names of the fields of the violated unique index together with the individual field values (** Salesrep already exists with Sales Rep "bbb". (132))
RegisterErrorHandler (IErrorHandler) Registers a new IErrorHandler implementation
RegisterStopConditionHandler (IStopConditionHandler) Registers a new IStopConditionHandler implementation
ResetErrorStatus () Resets the ERROR-STATUS:ERROR and ERROR-STATUS:NUM-MESSAGES etc.
ShowDialog (Form, Form) Shows the dialog form
ShowErrorMessage (Error) Display Error Message
ShowErrorMessage (Error, character) Display Error Message
ShowErrorMessage (Error, character, Form) Display Error Message
ShowErrorMessage (Error, Form) Display Error Message
ShowErrorMessageBox (Error) Display Error Message as an alert-box (to be used in functions and non-void methods due to WAIT-FOR limitations)
ShowErrorMessageBox (Error, character) Display Error Message as an alert-box (to be used in functions and non-void methods due to WAIT-FOR limitations)
CHARACTER StackTrace (Error) Reformats the Error Stack Trace (most current code block first, not last as provided by the CallStack attribute
LOGICAL VerifyError132Values (handle, character, character) Verifies field values parsed from an error 132 message by locating the conflicting record in an alternative buffer

Top Constructor Summary
Options Name Purpose
ErrorHelper () Protected default constructor.

Top Property Summary
Options Name Purpose
CHARACTER CurrentStacktrace
LOGICAL ErrorMessageDialogAllowed
CHARACTER ErrorMessageFormType
CHARACTER STOP_AFTER_MESSAGE
CHARACTER STOP_LOCK_CONFLICT_MESSAGE
CHARACTER STOP_MESSAGE
CHARACTER STOP_USER_INTERRUPT_MESSAGE
LOGICAL SuppressTableAndFieldInfo


Method Detail
Top

CHARACTER AddErrorMessage (character, character, character, character)

Purpose: Adds an ADM2 style formatted error message to an existing error
message string
Notes:

Parameters:
pcMessage CHARACTER
The existing message text
pcText CHARACTER
The text of the additional message
pcField CHARACTER
The field that the message belongs to
pcTable CHARACTER
The table that the message belongs to
Returns CHARACTER
The resulting message text
Top

LONGCHAR AddErrorMessage (longchar, character, character, character)

Purpose: Adds an ADM2 style formatted error message to an existing error
message string
Notes:

Parameters:
pcMessage LONGCHAR
The existing message text
pcText CHARACTER
The text of the additional message
pcField CHARACTER
The field that the message belongs to
pcTable CHARACTER
The table that the message belongs to
Returns LONGCHAR
The resulting message text
Top

AddJsonErrorDetails (Error, JsonObject)

Purpose: Adds the properties of the given error to the given JSON object
Notes: Processes inner errors if available

Parameters:
poError Progress.Lang.Error
The Error to parse
poJsonObject Progress.Json.ObjectModel.JsonObject
The JsonObject to add the error details to
Top

AddJsonErrorDetails (Error, JsonObject, logical)

Purpose: Adds the properties of the given error to the given JSON object
Notes: Processes inner errors if available

Parameters:
poError Progress.Lang.Error
The Error to parse
poJsonObject Progress.Json.ObjectModel.JsonObject
The JsonObject to add the error details to
plIncludeSessionInfo LOGICAL
Logical value indicating if the session information should be included
Top

LOGICAL ConsumeError132Value (handle, character, character, character)

Purpose: Consumes the value of a single field from the (partial) field/values
text of an error 132 message
Notes: CHARACTER values are quoted in the error message (quotes contained
in the value are doubled). DATETIME and DATETIME-TZ values contain
a space between the date and the time part. All other values are
single space-delimited tokens. The consumed value must be
convertible to the data type of the given field

Parameters:
phField HANDLE
The handle of the buffer field
pcText CHARACTER
The text to consume the value from
pcValue CHARACTER
OUTPUT The consumed value (CHARACTER values unquoted)
pcRemainder CHARACTER
OUTPUT The text following the consumed value (retains the space separating the value from the next field)
Returns LOGICAL
Logical value indicating if a valid value could be consumed
Top

CHARACTER DatasetErrorStrings (handle)

Purpose: Returns a single CHARACTER string composed of the error-strings
of all records (from all tables in the given Dataset instance)
Notes: Method moved to DatasetHelper, kept here for backwards compatibility
as a facade to DatasetHelper:DatasetErrorStrings

Parameters:
phDataset HANDLE
The handle of the dataset to return the error strings from
Returns CHARACTER
The string composed of the error-strings of all records
Top

DeRegisterErrorHandler (IErrorHandler)

Purpose: Deregisters the IErrorHandler implementation
Notes:

Parameters:
poErrorHandler Consultingwerk.Framework.IErrorHandler
The IErrorHandler to deregister
Top

DeRegisterStopConditionHandler (IStopConditionHandler)

Purpose: Deregisters the IStopConditionHandler implementation
Notes:

Parameters:
poStopConditionHandler Consultingwerk.Framework.IStopConditionHandler
The IStopConditionHandler to deregister
Top

CHARACTER ErrorTitle (Error)

Purpose: Returns the Title associated with an error message
Notes: Errors that implement the IErrorTitle interface return their own title
For other errors, when the SmartFramework is present the type name is
used as the message key when looking up translations in the "Error"
translation scope.
When no title could be obtained, a default title is returned from this
routine

Parameters:
poError Progress.Lang.Error
The reference to the error object
Returns CHARACTER
The title associated with the error message
Top

CHARACTER ErrorTypeName (Error)

Purpose: Returns the Typename of the error object
Notes: Required as .NET Exceptions don't have an ABL Class
(GetClass() returns ?)

Parameters:
e Progress.Lang.Error
The Error (Progress error of .NET Exception) to return the type name for
Returns CHARACTER
The type name (class name) of the error object
Top

CHARACTER FormattedErrorMessages (Error)

Purpose: Returns a single CHARACTER string composed of the messages
Contained in the Progress.Lang.Error object
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error to format
Returns CHARACTER
A string containing all formatted messages from the Error object
Top

CHARACTER FormattedErrorMessagesExt (Error)

Purpose: Returns a single CHARACTER string composed of the messages
Contained in the Progress.Lang.Error object, including the stack
trace and the text of inner exceptions when present
Notes: Useful when logging complex error objects to a file

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error to format
Returns CHARACTER
A string containing all formatted messages from the Error object
Top

LONGCHAR FormattedErrorMessagesLong (Error)

Purpose: Returns a single CHARACTER string composed of the messages
Contained in the Progress.Lang.Error object
Notes: The long variant does not handle the Soap Fault

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error to format
Returns LONGCHAR
A string containing all formatted messages from the Error object
Top

CHARACTER GetMsgDataFileName (integer)

Purpose: Returns the file name containing the message description data
Notes: https://knowledgebase.progress.com/articles/Article/19758

Parameters:
piMsgNum INTEGER
The ABL error message number
Returns CHARACTER
The file name containing the error message description
Top

CHARACTER GetMsgDescription (integer)

Purpose: Returns the error message description for the given ABL
error message
Notes: https://knowledgebase.progress.com/articles/Article/19758

Parameters:
piMsgNum INTEGER
The ABL error message number
Returns CHARACTER
The error message description
Top

CHARACTER GetRuntimeErrorMessage (integer)

Purpose: Returns the text of the given ABL error message
Notes: Parses the PROMSGS file

Parameters:
piMessageNumber INTEGER
The number of the error message to retrieve
Returns CHARACTER
The text of the error message
Top

CHARACTER GetSmartMessage (character)

Purpose: Formats a SmartMessage
Notes: This method is dependent on a Consultingwerk.SmartFramework.IMessageProvider
implementation registered in the ServiceContainer. When there is no
IMessageProvider implementation the value of pcSmartMessage will be
returned to the caller

Parameters:
pcSmartMessage CHARACTER
The smart message structure as returned by MessageFormatted class
Returns CHARACTER
The error message string as returned by the IMessageProvider
Top

LOGICAL HandleError (Error)

Purpose: Handles an Error object using the registered IErrorHandler
implementations
Notes: Logical return value indicates if the error has been completely
Handled, that is when this method returns TRUE, the ErrorHelper
will not display the error anymore, returns false when the
ErrorHelper should still display the error message dialog.

Parameters:
poError Progress.Lang.Error
The Error object to handle
Returns LOGICAL
Logical value indicating of the error has been completely handled by an IErrorHandler instance
Top

LOGICAL HasMessageNumber (Error, integer)

Purpose: Returns if the error instance contains an error message with the given
message number
Notes: Returns FALSE also when poError = ?

Parameters:
poError Progress.Lang.Error
The error instance to verify
piMessageNumber INTEGER
The message number to search for
Returns LOGICAL
Logical value indicating if the error contains a message with the given message number
Top

IgnoreError (Error, integer)

Purpose: Ignores specific Progress.Lang.SysErrors and throws all others
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to inspec
piErrorNum INTEGER
The SysError message number to ignore
Top

IgnoreError (Error, integer, integer)

Purpose: Ignores specific Progress.Lang.SysErrors and throws all others
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to inspec
piErrorNum1 INTEGER
The SysError message number to ignore
piErrorNum2 INTEGER
The SysError message number to ignore
Top

IgnoreError (Error, integer, integer, integer)

Purpose: Ignores specific Progress.Lang.SysErrors and throws all others
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to inspec
piErrorNum1 INTEGER
The SysError message number to ignore
piErrorNum2 INTEGER
The SysError message number to ignore
piErrorNum3 INTEGER
The SysError message number to ignore
Top

IgnoreError (Error, integer, integer, integer, integer)

Purpose: Ignores specific Progress.Lang.SysErrors and throws all others
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to inspec
piErrorNum1 INTEGER
The SysError message number to ignore
piErrorNum2 INTEGER
The SysError message number to ignore
piErrorNum3 INTEGER
The SysError message number to ignore
piErrorNum4 INTEGER
The SysError message number to ignore
Top

IgnoreError (Error, integer, integer, integer, integer, integer)

Purpose: Ignores specific Progress.Lang.SysErrors and throws all others
Notes:

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to inspec
piErrorNum1 INTEGER
The SysError message number to ignore
piErrorNum2 INTEGER
The SysError message number to ignore
piErrorNum3 INTEGER
The SysError message number to ignore
piErrorNum4 INTEGER
The SysError message number to ignore
piErrorNum5 INTEGER
The SysError message number to ignore
Top

LOGICAL IsInputConversionError (Error)

Purpose: Determines if an error is caused by input type conversion
Notes: OpenEdge error message numbers can change between releases.

Parameters:
poError Progress.Lang.Error
The error to evaluate
Returns LOGICAL
true when the error is an input conversion error
Top

LOGICAL IsRemoteThrowable (Error)

Purpose: Returns if the error is throwable from an AppServer to an ABL client
Notes: Returns FALSE on OpenEdge 10.2B ... OpenEdge 11.3

Parameters:
poError Progress.Lang.Error
The Progress.Lang.Error instance to validate
Returns LOGICAL
Logical value indicating if the error can be thrown to the client
Top

LOGICAL IsValidError132Value (handle, character)

Purpose: Validates that the given token from an error 132 message can be
converted to the data type of the given buffer field
Notes: The values in the error message are formatted using the session
settings (date format, numeric format), so the matching ABL
conversion functions apply

Parameters:
phField HANDLE
The handle of the buffer field
pcToken CHARACTER
The token to validate
Returns LOGICAL
Logical value indicating if the token is a valid value for the field
Top

Progress.Json.ObjectModel.JsonObject JsonErrorDetails (Error)

Purpose: Returns a Json Object with the error details
Notes: Processes inner errors if available

Parameters:
poError Progress.Lang.Error
The Error to parse
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject describing the error
Top

Progress.Json.ObjectModel.JsonObject JsonErrorDetails (Error, logical)

Purpose: Returns a Json Object with the error details
Notes: Processes inner errors if available

Parameters:
poError Progress.Lang.Error
The Error to parse
plIncludeSessionInfo LOGICAL
Logical value indicating if the session information should be included
Returns Progress.Json.ObjectModel.JsonObject
The JsonObject describing the error
Top

LOGICAL MatchError132Fields (handle, character, integer, character, character, character, character, character)

Purpose: Recursively matches the fields of a unique index candidate against
the remainder of an error 132 message
Notes: For every field the label, the field name and an empty label
(temp-tables up to OpenEdge 12.8 do not include labels in the
message) are probed, each followed by a value that must be
convertible to the data type of the field. Backtracking through
recursion covers ambiguous label/value combinations

Parameters:
phBuffer HANDLE
The handle of the buffer
pcFields CHARACTER
The comma-delimited list of the fields of the unique index
piField INTEGER
The 1-based number of the field to match next
pcRemainder CHARACTER
The remainder of the error message to match
pcNames CHARACTER
The CHR(1)-delimited list of the field names matched so far
pcValues CHARACTER
The CHR(1)-delimited list of the field values matched so far
pcResultNames CHARACTER
OUTPUT The CHR(1)-delimited list of all matched field names
pcResultValues CHARACTER
OUTPUT The CHR(1)-delimited list of all matched field values
Returns LOGICAL
Logical value indicating if the message remainder matches the index fields
Top

Consultingwerk.Util.Error132Info ParseError132 (SysError)

Purpose: Parses an 132 runtime Error and returns the table and field/values
(** Salesrep already exists with Sales Rep "bbb". (132))
Notes:

Parameters:
poError Progress.Lang.SysError
The SysError to parse
Returns Consultingwerk.Util.Error132Info
The Error132Info with the details about the error
Top

Consultingwerk.Util.Error132Info ParseError132 (SysError, handle)

Purpose: Parses an 132 runtime Error and returns the table name, the
field/values text and - resolved using the given buffer - the
names of the fields of the violated unique index together with
the individual field values
(** Salesrep already exists with Sales Rep "bbb". (132))
Notes: The field labels/names contained in the error message are matched
against the unique indexes of the given buffer. For database
tables the error message contains the field labels on all
OpenEdge versions. For temp-tables the error message contains
no field labels on OpenEdge 11.x and 12.x and the field names
from OpenEdge 13.0 on. When the message structure alone is not
conclusive the parsed field values are verified using a FIND in
an alternative buffer - as a unique index has been violated a
record with the parsed field values must exist. When the field
names cannot be resolved, the returned Error132Info provides the
same detail as the ParseError132 (poError) overload (the
FieldNames array remains indeterminate)

Parameters:
poError Progress.Lang.SysError
The SysError to parse
phBuffer HANDLE
The handle of the buffer the error 132 was raised for
Returns Consultingwerk.Util.Error132Info
The Error132Info with the details about the error
Top

RegisterErrorHandler (IErrorHandler)

Purpose: Registers a new IErrorHandler implementation
Notes:

Parameters:
poErrorHandler Consultingwerk.Framework.IErrorHandler
The reference to the IErrorHandler to register
Top

RegisterStopConditionHandler (IStopConditionHandler)

Purpose: Registers a new IStopConditionHandler implementation
Notes:

Parameters:
poStopConditionHandler Consultingwerk.Framework.IStopConditionHandler
The reference to the IStopConditionHandler to register
Top

ResetErrorStatus ()

Purpose: Resets the ERROR-STATUS:ERROR and ERROR-STATUS:NUM-MESSAGES etc.
Notes: Useful to wipe pending error stati and messages after executing ABL
code with NO-ERROR

Top

ShowDialog (Form, Form)

Purpose: Shows the dialog form
Notes:

Parameters:
poForm System.Windows.Forms.Form
The reference to the Dialog Form
poParentForm System.Windows.Forms.Form
The reference to the optional parent form
Top

ShowErrorMessage (Error)

Purpose: Display Error Message
Notes: Error Type (Class) will be used a default title

Parameters:
err Progress.Lang.Error
The Error object to visualize
Top

ShowErrorMessage (Error, character)

Purpose: Display Error Message
Notes: Stacktrace will be displayed when FrameworkSettings:DebugMode = TRUE

Parameters:
e Progress.Lang.Error
The Error object to visualize
pcTitle CHARACTER
The title for the message message (dialog)
Top

ShowErrorMessage (Error, character, Form)

Purpose: Display Error Message
Notes: Stacktrace will be displayed when FrameworkSettings:DebugMode = TRUE

Parameters:
e Progress.Lang.Error
The Error object to visualize
pcTitle CHARACTER
The title for the message message (dialog)
poParentForm System.Windows.Forms.Form
The ParentForm
Top

ShowErrorMessage (Error, Form)

Purpose: Display Error Message
Notes: Stacktrace will be displayed when FrameworkSettings:DebugMode = TRUE

Parameters:
e Progress.Lang.Error
The Error object to visualize
poParentForm System.Windows.Forms.Form
The ParentForm
Top

ShowErrorMessageBox (Error)

Purpose: Display Error Message as an alert-box (to be used in functions
and non-void methods due to WAIT-FOR limitations)
Notes: Error Type (Class) will be used a default title

Parameters:
e Progress.Lang.Error
The Error object to visualize
Top

ShowErrorMessageBox (Error, character)

Purpose: Display Error Message as an alert-box (to be used in functions
and non-void methods due to WAIT-FOR limitations)
Notes: Stacktrace will be displayed when FrameworkSettings:DebugMode = TRUE

Parameters:
e Progress.Lang.Error
The Error object to visualize
pcTitle CHARACTER
The title for the message message (dialog)
Top

CHARACTER StackTrace (Error)

Purpose: Reformats the Error Stack Trace (most current code block first,
not last as provided by the CallStack attribute
Notes:

Parameters:
e Progress.Lang.Error
The error object to return the formatted stacktrace for
Returns CHARACTER
The formatted stack trace
Top

LOGICAL VerifyError132Values (handle, character, character)

Purpose: Verifies field values parsed from an error 132 message by locating
the conflicting record in an alternative buffer
Notes: As a unique index has been violated, a record with the parsed
field values must exist for the guessed unique index to be
considered correct. The record the given buffer is positioned on
is excluded by a ROWID inequality in the FIND criteria - on
no-undo temp-tables the record that raised the error 132 remains
in the table (with the failed index update still pending) and
must not confirm its own field values. FIND-UNIQUE is used as
exactly one other record can carry the values of a unique index

Parameters:
phBuffer HANDLE
The handle of the buffer the error 132 was raised for
pcNames CHARACTER
The CHR(1)-delimited list of the field names
pcValues CHARACTER
The CHR(1)-delimited list of the field values
Returns LOGICAL
Logical value indicating if a record with the given field values exists


Constructor Detail
Top

ErrorHelper ()

Purpose: Protected default constructor.
Notes: There's no need to create instances of the helper classes



Property Detail
Top

CHARACTER CurrentStacktrace


Returns CHARACTER
Top

LOGICAL ErrorMessageDialogAllowed


Returns LOGICAL
Top

CHARACTER ErrorMessageFormType


Returns CHARACTER
Top

CHARACTER STOP_AFTER_MESSAGE


Returns CHARACTER
Top

CHARACTER STOP_LOCK_CONFLICT_MESSAGE


Returns CHARACTER
Top

CHARACTER STOP_MESSAGE


Returns CHARACTER
Top

CHARACTER STOP_USER_INTERRUPT_MESSAGE


Returns CHARACTER
Top

LOGICAL SuppressTableAndFieldInfo


Returns LOGICAL


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       06.07.2026 14:38:15