Products Purchase Support Download    News About

Support - Script Examples

Connection Management

Script Examples
· Script Example Format
· Automated Downloads
· Automated Login
· Data Tables
· Debugging and Error Trapping
· Dialog Boxes
· Dynamic Data Exchange (DDE)
· Event Monitoring
· GUI Customization
· Printing
· Program Flow
· Screen Scraping
· Session Manager

Project:  Implement a script which monitors a session’s activity. When there has been no change in the session for a specified period of time, log out and disconnect the session to free resources for other users.

Algorithm:  Since multiple sessions can be connected, the script needs some means of identifying the appropriate session window, and whether it is connected. Then the script waits for an idle period of no data received for the specified period. This value can be fixed, or read from an INI file.

Product used in this example:  DynaComm Connectivity Series® 9. (release 9.0.0.0)

Relevant Commands and Functions:

CONNECT( ) — Returns connection state of session
WINDOWHND( ) — Returns window handle based on window title
CONNECT — Connect a session and load it if not open
WHEN QUIET — Activates after specified time elapses without character transmission
WAIT RESUME — Pauses until Resume command is executed
SEND — Sends characters to a host system
WAIT STRING — Waits for a specified prompt from host
DISCONNECT — Disconnects a session
WINDOW CLOSE — Closes a child window
GETPROFILEDATA( ) — Returns string from Registry or INI file.
SHOW — Display each script command as it is executed.

See Also:

LOAD — Opens a session file
WINDOW OPEN — Opens a child window
WHEN DISCONNECT — Triggers when session is disconnected
Table Commands — As illustrated in Data Tables example

A Brief Example:

SHOW
WAIT DELAY "2"
%WindowHandle = ACTIVE()
$ini_location = DIRECTORY(DYNASYS)
$timeout = GETPROFILEDATA("GENERAL", "Session Timeout", \
                           $ini_location| "MY_INI.INI")
IF $timeout = ""
   $timeout = "00:10:00"
WHEN QUIET $timeout
BEGIN
IF CONNECT()
BEGIN
SEND NOCR "^C" WINDOW %WindowHandle
SEND "exit" WINDOW %WindowHandle
WAIT DELAY "00:00:05"
END

 

SAVE
WINDOW CLOSE %WindowHandle
RESUME
END

 

WAIT RESUME
CANCEL

 

In this example, we once again take advantage of associating a Startup Script with a session in Session:Properties, General tab. When the session is opened, the script waits a few seconds for the session to open and connect to the host. Then it reads the window handle value of the active window to be stored in an integer variable and used for the rest of the script. The timeout period is read from a custom INI file in the main DCSeries directory that looks like:

[GENERAL]
Session Timeout=00:15:00

If this entry or INI file is not found, a default value of 10 minutes is used. At this point, the script waits until the period elapses with no character transmission. At that point, the script executes the commands in the WHEN QUIET block, checking if the session is connected, sending commands to the host to log out, closing the session within DynaComm, and terminating the script.

Further development:

  • A warning dialog box could be used to inform the user the session has been idle for a period, and will soon be closed.
  • A dialog box could be added to the logon process, informing the user the session has been closed, and prompting to reconnect or exit DynaComm.
  • For some host systems, login IDs and/or sessions on the host may be tied up if the user does not log out gracefully. By trapping the different ways users disconnect sessions or close DynaComm, the script can prompt the user to log out of the system first, or do so automatically before closing DynaComm.

Purchase Contact Privacy Policy Terms of Use Sitemap Blog
© 2010 FutureSoft, Inc. All Rights Reserved

 
DynaComm i:filter | Internet Filtering | Employee Internet Monitoring | Managing Internet Access | Web Filtering | Internet Monitoring | DCS
Terminal Emulation | TN 3270 | ProComm Plus Replacement | Windows Terminal Emulation | TN 5250 | DynaComm Connectivity Series | MultiView