A BPMError object is thrown when an error is raised from within another Progress.BPM class. For example, a BPMError object is thrown when an attempt is made to set the Value property of a dataslot (a Progress.BPM.DataSlot object) that is read-only, or when an error is returned from a call to a Business Process server. In the case of an error returned from a Business Process server, there will typically be two messages available using the GetMessage( ) method—a general error message saying there was an error calling the server, and any error message returned from the server.