Release 10.1A: OpenEdge Development:
Progress Dynamics Web Development Guide

> ## Development requirements and restrictions

> This section details specific programming considerations that you should be aware of when developing Progress Dynamics applications for use in a Web environment.

> ##### Custom UI events

> Custom UI events applied to dynamic viewer fields create dynamic triggers that either run a procedure or publish an event. If these triggers contain code that runs in a Web application, you must reproduce them in JavaScript. For more information on creating and deploying custom behaviors, see Chapter 5, " Customizing with Dynamic HTML."

> ##### ActiveX controls

> Progress Dynamics does not support ActiveX controls for dynamic objects. Technically, it might be possible to emulate ActiveX controls through JavaScript. However, Progress Dynamics cannot register ActiveX controls in the repository as dynamic objects. Therefore, ActiveX controls are not dynamically rendered in Progress Dynamics Web applications.

> Also note that ActiveX controls can be problematical for Internet applications in general because:

> - They require a lower level of security in Web browsers.

> - They require downloads that are operating-system-specific.

> ##### Client-side logic

> Progress Dynamics SmartDataViewers store all UI logic as Progress 4GL procedures running persistently on the 4GL client. When the client is a Web browser, however, you must implement the client-side logic in JavaScript.

> Progress Dynamics allows you to attach JavaScript functions for adding, updating, deleting, and validating records to WebDataObjects (WDOs). (WDOs are the client-side equivalents of SDOs). For more information, see Chapter 5, " Customizing with Dynamic HTML." In addition, see the "Client logic" section.

> ##### I/O blocking in server-side business logic

> I/O blocking statements must be eliminated in server-side business logic. Progress Dynamics Web applications do not support user prompts or messages that are generated by business logic executing on the server side.

> ##### Menu and button enable/disable rules

> Progress Dynamics Web applications implement the standard ADM2 rules for enabling and disabling of menu items and toolbar buttons. For example, menu selections are disabled or “grayed out” in response to application state or user actions.

> The Toolbar and Menu Designer tool allows you to modify the enable and disable rules for Windows applications. However, modifications are not supported for Web applications. Web applications support only the default rules.

> ##### Server connection ID

> For Progress Dynamics Web applications, you should disable the generation of `SERVER-CONNECTION-ID` in the WebSpeed Messenger (`cgiip.exe`).

> ##### Dynamic lookups

> Developers should be aware of the following requirements affecting the use of lookups in Progress Dynamics Web applications:

> - Availability of target entities — Entities that are the object of a dynamic lookup must be imported into the Repository. Because lookups in Progress Dynamics Web applications use SDOs for displaying data, and SDOs rely on entities being present in the Repository, a lookup will fail if the target entity has not been imported.

> - Validation of lookup fields — To ensure that only valid values are accepted and stored when selected from a lookup list in a Web browser, you must add the appropriate business logic to the SDO. The lookup properties `PopupOnAmbiguous`, `PopupOnNotAvail`, `PopupOnUniqueAmbiguous`, and `BlankOnNotAvail` are not implemented for Progress Dynamics Web applications.

> - Display of user selection — For a field linked to a dynamic lookup to work properly, the field specified as the displayed field for the lookup must also be assigned a browse sequence number, so that it will be retrieved. (For example, in the Smart DataField Maintenance dialog box shown in Figure 4–4, the specified Displayed name field, `customerName`, is assigned browse sequence number 2.) If this is not the case, the Web browser does not populate the field with the user-selected value until the record is saved.

> Figure 4–4: Including displayed field in dynamic lookup retrieval

> ##### SmartBusinessObjects

> A container with visual objects that use an SBO as a data source will function in a Web environment only if a single SDO is specified as the value for each of the following Container Builder fields: Data Sources, Update Targets, and Nav target.

> If these values are not set, or if lists of values are specified for them, the container will not work in a Web application.

> ##### Pop ups in SmartViewerObjects

> The default value of the `ShowPopup` property for a SmartViewer object is `Yes`. Overriding this value for a viewer instance in a container has no effect in a Progress Dynamics Web application. To suppress the pop-up button for certain data fields, you must change the default at the field level.

> ##### Comments

> The following Comments features are not supported in Progress Dynamics Web applications:

> - AutoComments property

> - Comments on comments

> ##### TreeView

> When developing TreeViews, you should be aware of several considerations for Web applications. This section describes these considerations with reference to the Dynamic TreeView Builder tool, the Tree Node Control tool, and TreeViews whose structure is generated by an extract program.

> The following considerations apply to the Dynamic TreeView Builder tool:

> - Layout — Only the TreeView layout option is supported for Web applications.

> - Filter viewer — Only dynamic viewers (object type DynView) are supported for Web applications.

> - Tree style — TreeViews in Web applications always appear with tree lines, regardless of the setting chosen for the Tree style field.

> - Auto sort — If this option is enabled, different node types are processed separately and appear in the following order: text nodes, menu nodes (not sorted), extract and data nodes (mixed). For menu nodes, no sorting is applied even if Auto sort is checked; the logical menu hierarchy is preserved.

> - Check boxes — The use of check boxes is not supported. Check boxes defined for a Windows application do not appear in the Web application.

> - Root lines — Vertical lines always connect multiple root nodes in Web applications, whether the Show root lines check box is selected or not.

> The following considerations apply to the Tree Node Control tool:

> - Check boxes — Since check boxes are not supported for Web applications, the Node checked option (which determines the initial appearance of a check box) is not meaningful, and its setting is ignored.

> - Parameters for launched data source — Progress Dynamics Web applications do not support the passing of parameters to the data source that runs when the node is selected. Any value specified in the Run attribute field is ignored.

> - Node images — If you choose to use custom images rather than the installed defaults, for best results use GIF images with a height of 15 pixels.

> When you use an extract program to generate a TreeView structure, you must populate the `record_ref` field with a specific value from the `gsc_entity_mnemonic` table. The value used depends on whether the application runs as a Web application or a Windows application, as follows:

> - Web application — The assigned value of `record_ref` must be the value of `entity_key_field`.

> - Windows application — The assigned value of `record_ref` must be the value of `entity_object_field`.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095