Try OpenEdge Now
skip to main content
Developing WebSpeed Applications
SpeedScript : SpeedScript and Progress ABL : Differences
 

Differences

Some important differences between SpeedScript programming and Progress ABL programming are:
*ABL applications are usually state-aware, while SpeedScript applications are often stateless. The distinction between state-aware and stateless applications is discussed in Controlling WebSpeed Transactions.
*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 more information, see HandlingDISPLAY Output.
*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 Progress 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:
*getWebState
*getWebTimeRemaining
*hidden-field-list
*set-cookie
*get-cookie
Two files, admweb.i and html-map.i, contain the calls that are only appropriate in a WebSpeed application. A list of these calls can be found in the source files themselves.
*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 HandlingDISPLAY Output.