Try OpenEdge Now
skip to main content
WebSpeed Essentials
Tools and ABL Support : Language support : SpeedScript and CGI wrappers : Differences between the ABL and SpeedScript
 
Differences between the ABL and SpeedScript
Some important differences between SpeedScript programming and ABL programming are:
*ABL applications are usually state-aware, while SpeedScript applications are often stateless. The distinction between state-aware and stateless applications is briefly discussed in OpenEdge Application Server: Developing WebSpeed Applications.
*GUI widget events are not used in WebSpeed SpeedScript applications. Visual elements are handled by HTML, rather than as GUI widgets.
*The preprocessor {&OUT} statement is used to output data to the HTML page, rather than the DISPLAY statement. For information, see OpenEdge Application Server: Developing WebSpeed Applications.
*In SpeedScript, all terminal-focused I/O is replaced by a block mode Web-oriented I/O, where the SpeedScript frame is the block data structure. Therefore, I/O blocking statements, such as UPDATE or PROMPT-FOR, cannot be used in SpeedScript applications. Similarly, the I/O blocking options of statements like the MESSAGE (VIEW-AS ALERT-BOX) and PAUSE (MESSAGE) statements are ignored.
*Very few ABL events apply to WebSpeed applications, except database events. The one essential event in SpeedScript is WEB-NOTIFY. However, in normal use, this event is handled exclusively by the agent control program (web-disp.p).
*WAIT-FOR cannot be used for user input in SpeedScript applications.
*Some procedures that are available through include files and the Insert Call button of the Section Editor are only appropriate for WebSpeed applications. Some of these are:
*hidden-field-list
*set-cookie
*get-cookie
See the WebSpeed API reference in the online help for a list of the public APIs.
*SpeedScript includes special extensions, including a virtual Web output device ("WEB") to define Web page output streams to your Web server and the WEB-CONTEXT system handle to access the request environment. However, most of these extensions are wrapped in the API functions, method and event procedures, and preprocessor definitions provided with WebSpeed.
These examples also rely on SpeedScript preprocessor references, especially {&OUT} and {&DISPLAY}, to direct output to the WebSpeed-defined output stream, WebStream. You can find the definitions for these preprocessor references (and several others) in install-path/src/web/method/cgidefs.i. For more information on the {&DISPLAY} preprocessor reference, see OpenEdge Application Server: Developing WebSpeed Applications.