You can use the methods available on the server component to perform most server-side processing, including validation routines and error handling. The Web DataWindow also provides another way to add specialized processing.
To include server-side processing not available on the server component, you can define one or more PowerBuilder custom class user objects called service classes. These service classes are stored in the same PBL or PBD as the DataWindow object for the server component. They can be used whenever you want to include additional processing on the server. For example, you might want to use this technique to access the SQLPreview event so that you can examine the syntax of a SQL statement before it is committed to the database.
The service classes implement user-defined events with prescribed signatures. These events correspond to standard DataWindow events. In the user-defined events, you perform the processing and specify return codes that tell the server component whether to cancel the corresponding DataWindow event.
In the server component, you set a property or call a method that identifies these user objects as service classes for the server component.
Service classes work like this:
Service classes are instantiated when the component is instantiated (if they are specified in an EAServer property) or when they are first registered by the SetServerServiceClasses method.
An event occurs in the server component for the DataStore.
The server component calls an event of the same name in each registered service class.
If the service class implements the event, the event script is executed and a return code is sent back to the server component.
If the event can be canceled via a return code and if any of the service classes returns that code, the event is canceled in the server component.