Converting Scripts
from DynaComm Elite/OpenConnect to DCS

Summary

This paper describes migration issues of upgrading from DynaComm/Elite or DynaComm/OpenConnect to the DynaComm Connectivity Series version 9. The objective of this paper is to provide an overview of the conversion process, the benefits and difficulties to be considered in migration, and specific steps in the process. The conversion effort required varies, but as a general rule, it pays to consider new features and plans up front instead of directly porting the existing environment and retaining the limitations therewith.

Contents

New Features of DCS 10

DCS 10 is a 32-bit product upgrade to several 16-bit versions of DynaComm, of which DynaComm/Elite and DynaComm/OpenConnect are two members. DynaComm/Elite and DynaComm/OpenConnect support multiple concurrent sessions to a host system, using either 3270 or 5250 emulation, and a single connection method. DynaComm Asynchronous for Windows supports many different emulations and connectors, only one of which can be used a time. The motivation behind DCS 10 was to provide a 32-bit product upgrade to all of these 16-bit products, supporting multiple concurrent connections to potentially different host systems, potentially using different emulations and different connection methods, all within a single application instance. Preserving backwards compatibility was a high priority, somewhat mitigated by the fact that DCS 10 is an upgrade to these different products.

Another goal of DCS 10 was to unify the different emulations and connectors supported under a consistent, intuitive user interface in a heterogeneous user environment. Since some features and appropriate defaults vary by host environment and emulation, these items are part of the emulation properties. Also, different user groups may use some host systems and not others, so product configuration should allow some standard and protected settings, but allow other values to be customized according to user preference. To accomplish this, application global settings must be stored in a different location than session specific settings, which deviates from the behavior of DynaComm/Elite and DynaComm/OpenConnect.

DCS 10 is a fully 32-bit application, which implies some required differences from DE3270, DO3270 and other 16-bit applications. DE3270 and DO3270 use an INI file in the Windows directory to store global application configuration, whereas DCS 10 stores this information in the Registry. Also, per Windows logo guidelines, application system directories should be stored under Program Files, so the default application directories have changed.

A final guiding principle for the development of DCS 10, with indirect albeit significant impact on conversion planning, was to use our experience in the heterogeneous host environment to identify features and flexibility most used by our customers, to make those features versatile and easy to use. This meant building a lot of customizability into the product, while retaining the administrators ability to set and protect vital settings. We’ve also incorporated ActiveX technologies for browser and application integration. Host applications can be integrated with Intranet sites and third party Windows applications which support OLE, retaining all the keymapping, attribute mapping, scripts and other customization features of the standalone DCS 10 product. These are really new features and not conversion requirements, but considering them during conversion planning may suggest easier alternatives, and worthwhile modifications that facilitate later developments.

The goals of integrating several products into a single 32-bit host access enterprise solution, with a consistent and intelligent interface, and support for multiple concurrent sessions and scripts, pretty much indicate the motivation of changes and the issues likely encountered in a conversion effort. The rest of this paper gives further details and implementation suggestions.

Return to top

Summary of Changes

Product file / feature DynaComm/Elite &
DynaComm/OpenConnect
DCS 10
Session settings file DES file stores application global and session specific settings, Dynacomm.INI is default session file. SES files, no default loaded on startup, but can be set that way
Session specific vs. application global configuration Several features/settings had to be set the same for all sessions, such as autoconnect, graphical OIA, disconnect warnings, file transfer settings, mouse options, hot spots. Registry stores application global configuration, all configuration of session features is stored in SES files for maximum flexibility.
Keyboard Mapper KBM file is mapping of KBL to external 3270 KBT files Set in Session:Properties, Emulation, Keyboard tab, stored in new KBM file format, defaults are set by emulation
Color/Attribute Mapping CLM file, specific to 3270 emulation attributes Session:Properties, Attributes tab, stored in ACM file, mapable attributes determined by emulation
Toolbar Configurable in latest version, stored in a BAR file. Replaced by multiple floating toolbars, stored in Registry
Menu customization Done via script or INI file settings, application global Menu Editor based on child window type, stored in Registry. Also available via Script.
Program icons, shortcuts EXE name is DE3270.Exe, DO3270.Exe, or DO5250.Exe EXE name is DCSeries.Exe
Flashpad FPD file No equivalent, replaced by application global floating toolbars, but can be done via custom script. Can be associated with a specific session via script
Hot Spots HOT file, application global <planned>
Script Language DCP files, DCT files DCP files with modifications, recompile into valid DCT files for DCS 10.

Return to top

Script Conversion

Above, we discussed the advantages and reasons it is preferable to update scripts to use the features of DCS 10, instead of just porting existing behavior and limitations to the new product. This overview is divided into a section of minimal and recommended steps of conversion. Minimal steps are listed as pairs of changes and suggested solution for conversion from DynaComm/Elite or DynaComm/OpenConnect to DCS 10. Recommended steps also include the likely impact of omitting the recommended change.

Script Conversion - Minimal Steps

Change: Task files (DCT files) support additional functionality in DCS 10.
Suggestion: Use DCS 10 to recompile DCP files.
Change: Some commands and functions are no longer applicable in DCS 10, due to changes in product functionality or interface.
Suggestion: Commands and functions not supported by DCS 10 will encounter compile errors indicating the line or command which is not recognized. Consult the list of obsolete commands and functions in Appendix A for an equivalent command/function if available.
Change: The SYSTEM command and SYSTEM ( ) function are replaced with more meaningful names.
Suggestion: These commands and functions were “undocumented” features, which became documented over time. These may not give compiler errors, but are not implemented to do anything. These are treated as obsolete commands, see Appendix A below for replacement commands where available.
Change: A command / function in DCS 10 has more parameters than in earlier products.
Suggestion: Extra parameters have been made optional whenever possible. Otherwise, they will appear as compile errors and should be handled as above. For example, since multiple concurrent dialogs are supported, your DIALOG commands and functions support optional indexes.
Change: Default directory names and locations have changed.
Suggestion: This is not an issue if the DIRECTORY( ) function was used to get the directory path. Otherwise, search and replace hard-coded paths with the DIRECTORY( ) script function with appropriate parameter.
Change: Settings files in DynaComm/Elite used a file extension of DES, the new file extension for session files is SES. (These files are not compatible/convertible).
Suggestion: Search scripts for DES string, and if used as part of a filename, change to a valid SES filename.
Change: DE3270 and DO3270 stored default sessions in DYNACOMM.INI, which was loaded and connected if available.
Suggestion: DCS 10 does not have a default session file, but one can be implemented by using the AUTOSTRT script which runs when DCS 10 is launched. Write a script that says LOAD “SCR1.Ses”, save as AUTOSTRT.DCP, and compile. Be sure to create a valid session file with that name. Alternatively, if a script is going to be run anyway, it would be preferable to add the LOAD or CONNECT command to that script to minimize the number of scripts.
Change: The script which runs automatically when DCS 10 is run is called AUTOSTRT.DCT, not AUTOEXEC.DCT.
Suggestion: Find the AUTOEXEC.DCP and treat it as with other scripts for conversion.
Change: For 16-bit products, the LIBRARY CALL command calls 16-bit DLLs, for 32-bit products it calls 32-bit DLLs.
Suggestion: Recompile the DLL in 32-bit development environment. If the DLL calls 16-bit Windows functions not supported by Win 95 or NT, then some redevelopment of the DLL may be necessary.
Change: The application menus are changed.
Suggestion: If a script is used to customize the menus, it may use POPUP “MenuName” SYSTEM X where X is a number indicating a default menu (where File is 1, Edit is 2, ...). The symptom will be that the menu items correspond to a different popup menu. Search scripts for the word “System” and check if the word is used as part of menu modification, and update the number as appropriate. Also, since the menu bar is different depending on whether the child window is a Session, Script, Memo, or Main application window, make sure the correct window type is active when these script commands are invoked. When possible, use the Menu Editor instead of scripts to update the menu.

Return to top

Script Conversion - Recommended Steps

Change: Multiple scripts can be run simultaneously in DCS 10.
Suggestion: Search scripts for the commands PERFORM, EXECUTE, and LAUNCH, which may call other scripts. If the program flow is such that the scripts should be performed sequentially, it should work unchanged. The SPAWN command allows you to perform independent scripts, which may be desired if that suits the particular application, or to get around limitations on the number of WHEN commands. Choosing the menu item Script:Stop lists the running scripts if more than one is in execution at the time.
Impact: This additional flexibility may be useful for complex multitasking operations.
Change: Features which apply to session behavior are now configurable by session, instead of set in the product for all defined sessions. Startup scripts can also be associated to run when a particular session is run.
Suggestion: Approach session automation conversion from a session perspective. For example, define a session”s relevant properties and store to a SES file, create a script to perform session related automation and distribute the SES and DCT files together as a unit. This way, if an AS/400 or Tandem session is later added, your environment will not be affected.
Impact: This is a case of using new flexibility in the product, as opposed to porting limitations from earlier products.
Change: Multiple Dialog Boxes are supported, up to 16 concurrent ones.
Suggestion: Verify the DIALOG CANCEL command is used in the script after DIALOG END and WAIT RESUME. In DynaComm/Elite and DynaComm/OpenConnect, the DIALOG CANCEL function was implied when a new dialog was defined. Add the optional dialog index to the end of DIALOG commands, and use this optional parameter in referencing controls, such as the EDITTEXT( ) function, to indicate the control number and dialog.
Impact: Not using DIALOG CANCEL may cause multiple dialog boxes to stay on the screen, perhaps unnoticed if they are stacked in the same position. Not using Indexes for dialogs may create strange results if the script is later updated to include more than one dialog box displayed at the same time.
Change: New script commands are available for setting and reading product configuration.
Suggestion: CONNCONFIG, EMULCONFIG, DISPLAYCONFIG, and XFERCONFIG are available to set properties of the connector, emulation, display and file transfer. GENERALCONFIG and APPCONFIG configure general session properties and application global settings respectively. In many cases, earlier commands are still supported, though the newer syntax is preferable. The same applies to the SETTINGS( ) function, which is still supported but replaced by GETCONNCONFIG(), GETEMULCONFIG(), GETDISPLAYCONFIG(), and GETXFERCONFIG().
Impact: The new syntax makes scripts consistent and easier to follow for mixtures of connectors, emulations, etc. Some keywords for the SETTINGS( ) function are meaningless in DCS 10, since corresponding settings are not included in DCS.

Return to top

Obsolete/Replaced Commands & Functions

Some script commands/functions have been removed from the product as inappropriate to new product functionality, others have been subsumed by other commands/functions.

A list of replaced commands and functions follows:

DynaComm/Elite or DynaComm/OpenConnect
Script Command/Function
DCS 10 Alternative Command
Set Folder SET DIRECTORY
Set TermScrollBars DISPLAYCONFIG
System 0x801, System(0x801) Multiple concurrent dialogs supported in DCS 10
System (0x900) GETXFERCONFIG
Window Attachment KEYMAP LOAD, Application Toolbars replace flashpads, others defined in Session Properties
Folder( ) DIRECTORY( )

A list of obsolete commands and functions follows:

DynaComm/Elite or DynaComm/OpenConnect
Script Command/Function
Reason Eliminated
Set Taskyield Uses Win32 threading for process priority
System 0x800, System(0x800) Can’t write to status line (use DISPLAY (99))
System 0x701, 0x702 Use Launch command to specify WinHelp file, and Window Message 0xE146 to specify context
System 0x901 Can define a new dialog with new title
Video Load Attribute mapping integrated with emulation
Video Reset Attribute mapping integrated with emulation
Video Save Attribute mapping integrated with emulation
Video Style Attribute mapping integrated with emulation
Video Update Attribute mapping integrated with emulation
Video () Attribute mapping integrated with emulation

Return to top

New Commands & Functions

Functions Commands
DEFAULTSESSIONHANDLE APPCONFIG
EXFLDATTR CONNCONFIG
FLDATTREXPOS DISPLAYCONFIG
FLDNUM EMULCONFIG
GETAPPCONFIG KEYMAP LOAD
GETCONNCONFIG KEYMAP SAVE
GETDISPLAYCONFIG LOGTOFILE
GETEMULCONFIG MENU DELTE ITEM
GETGENERALCONFIG MENU DEKETE POPUP
GETXFERCONFIG MENU INSERT ITEM
SEARCHINRECT MENU INSERT POPUP
TYPEDLIBRARYCALL SCROLLDOWN
WNDFILE SCROLL LEFT
  SCROLL RIGHT
  SCROLL UP
  SETAUTOSCROLLTOCURSOR
  SETDEFAULTSESSIONHANDLE
  SPAWN
  TOOLBAR HIDE
  TOOLBAR SHOW
  XFERCONFIG

Return to top

Additional Resources

Technical Profiles are available in the Support area of our web site. These give details of the product installation and footprints. Some of the recommendations of this paper can be derived from a comparison of the Technical Profiles.

Return to top