What's New in Version 4.5

Note: This information is provided for archival purposes only. See current information on What's New in Version 6.0.

This release of Verastream Host Integrator (VHI) version 4.5 contained new features and modifications designed to maximize performance and usability of the Design Tool, the Server and Administrative WebStation, and the AppConn connectors.

New Features in Verastream Host Integrator

Design Tool
Server and Administrative WebStation
AppConn Connectors
NS/VT Transport Session Monitor Java Application  
XML Import/Export AADS Failover Support
     
     

Enhancements to Existing Verastream Host Integrator Features

Design Tool
Server and Administrative WebStation
AppConn Connectors
Caching inputs LDAP support Integration web application example
Before/after operations for attributes and recordset fields LogViewer upgrades New methods
Execute operation to autotab on underfill Log Manager upgrades  
WaitForCondition command    
WaitForCommString updated    
Creating global events for the WaitForMultipleEvents command    
Multiple attribute return on error patterns    
Updated recording    
Command list templates and operation copy    
Dynamic discovery of current records in recordsets    
Local server deployment    
Writable attributes as tabstops    
Test dialog boxes cache test data    
Override the cursor movement per entity    
TN3270E support    
Miscellaneous features    


Server Features

Session Monitor Java Application

The Session Monitor is a standalone Java application that allows an administrator to view real-time screens of host sessions that are running on a given Host Integrator Server. The new and improved Session Monitor provides the following:

The Session Monitor is very similar to the View Session feature currently available through the Administrative WebStation, but it is intended to be faster and more useful as a real-time debugging tool. Note: To install this feature, be sure to select the Session Monitor option in the Select Components dialog box during the installation process.

AADS Failover Support

In version 4.5, Verastream Host Integrator introduces failover support for Authentication Authorization and Directory Services (AADS). Failover is achieved by installing multiple instances of AADS for your VHI installation and configuring your Hosts file or DNS to associate all AADSs with one symbolic name. More information...

Directory Services - Support for LDAP Provider

AADS can now use an LDAP server for authentication and authorization in addition to the operating system's directory services.

Design Tool Features

NS/VT Transport

NS/VT, a proprietary HP protocol for connecting to HP3000 hosts, is a new transport choice available if you select an HP terminal when configuring your connection in the Session Setup dialog box. The NS/VT protocol uses different ports and tracing options than the Telnet protocol.

XML Model File Import/Export

The XML model file export and import feature enables you to programmatically manipulate a model file outside the context of the Design Tool. Once the model file is exported as an XML file, modifications such as global and repetitive changes can be made to this file. This feature also enables you to generate entire models based on an existing external description of the host application. Once changes are made, the XML file can be imported back into the Design Tool and opened as a .model file.

Note: You can also use the Save As dialog box on the File menu to save your model file as an XML file.

Design Tool Enhancements

Caching Inputs

The Design Tool now provides a property to cache all data sent to attributes or recordset fields. Select the Cache all attribute writes check box on the General tab of the Advanced Entity Properties dialog box to cache entity attributes. To cache recordset fields, select the Cache all field writes check box on the Recordset Fields tab. This applies to the connector as well as operation commands such as TransmitToAttr. When Cache all attribute writes is selected, an operation must issue the UpdateAttributes command, or each attribute can be called separately with the UpdateAttribute command. When Cache all field writes is selected, an operation must issue the UpdateRecordsetFields command, or each field can be called separately with the UpdateRecordsetField command.

Purpose: This accomplishes the following three things:

Before/After Operations for Attributes and Recordset Fields

There are now properties available for specifying an operation to execute before writing data and an operation to execute after writing data to the terminal screen. To configure before and after operations for attributes, open the Attribute Operations tab. To configure before and after operations when inserting or updating records in a recordset, open the Recordset Operations dialog box.

Purpose: This allows you to encapsulate operations such as sending a key to clear the field or waiting for the cursor to move after writing data.

Execute Operation to Autotab on Underfill

You can now designate an operation that will automatically move the cursor to the next attribute field if the attribute data written has a shorter length than the attribute field provided on the terminal screen. To configure an operation for this purpose, select it from the Execute operation to autotab on underfill list on the Attribute Operations tab.

Purpose: You can create consistent behavior in the model regardless of length of data. In version 4.5, the after-update operation can always wait for the cursor to appear at the next attribute because either the host moves the cursor after the attribute field is filled or the "underfill" operation handles the tab movement.

WaitForCondition Command

The WaitForCondition command enables you to create a condition using variables, entity attributes, and recordset fields to create logical arguments. For more information, see the WaitForCondition command help.

WaitForCommString Updated

For VT and HP character mode hosts, you can wait for datastream sequences that include nonprintable characters such as carriage return, linefeed, and the escape key. An example of this syntax is "\033EnterData", which represents the escape key followed by the string data. This syntax represents the C programming language conventions that use a backslash (\) followed by three octal numbers to represent any character.

The WaitForCommString command has also been updated to work as the terminal processes characters rather than at a maximum of one match per host packet.

Purpose: Using this command in operations is often the best synchronization for VT and character mode HP host applications is in the datastream itself.

Creating Global Events for the WaitForMultipleEvents Command

In version 4.5, this character mode feature provides a more general notion of events by enabling the encapsulation of several events into a single WaitForMultipleEvents command. These events will look similar to existing commands such as WaitForDisplayString; however, these new events will be created, stored, and edited in a global event editor and namespace. These events can then be combined in a variety of ways to create conditional expressions and sequences in the Event Expression Editor dialog box. For example, take the following three events:

Event A: (WaitForCommString "\033EnterData")
Event B: (WaitForCursorEnterPosition 1, 1)
Event C: (WaitForCursorExitPosition 24, 2)


You could then formulate a WaitForMultipleEvents command that contains the above events:

WaitForMultipleEvents "EventA and (EventB or EventC)", "30"

In this example, VHI waits for event A, followed by either event B or event C. If not satisfied within 30 seconds, an error is generated. It does not matter whether these events occur as a single host packet or across any number of multiple packets.

Purpose: Since VHI only allowed one event per host packet in version 4.0, the synchronization between the host and VHI sometimes failed when the host reorganized the packets. This feature enables a more precise way to synchronize the model and the host application. In addition, there are many situations where the exact event for which to watch is not unique, but shares a logical relationship with other possible outcomes.

Multiple Attribute Return on Error Patterns

In previous versions, data from only one attribute could be used as an identifier in recognizing an error pattern during operations. In version 4.5, this feature allows you to return multiple attributes as the contents of your error message when an error pattern is recognized. Use the options in the Error pattern box of the Operation Conditions dialog box to configure this type of error pattern.

Purpose: This enables a more reliable way to handle errors during the modeling process.

Updated Recording

In previous versions, character mode operations always recorded TransmitANSI commands. This has been changed in version 4.5 to mirror block mode operation generation. You will now see DefaultValue and TransmitToAttr commands in both character mode operation generation and recorded operations.

Purpose: This recording update reduces the amount of repetitive post-generation editing.

Model Templates and Operation Copy

Within a single entity, an operation can now be duplicated using the Copy Operation button on the Operation tab. In addition, you can create model templates that are defined manually using the Script Edit dialog box. Then, when you create an operation or a script (for example, a login script), you can import a template, a script, or a command list from any entity's operation. If a command in the list references objects such as attributes or recordsets, new local defaults for the entity context will be chosen. If none are found, the command will be omitted.

Purpose: This copying capability eases the repetitive burden of defining many similar operations.

Dynamic Discovery of Current Records in Recordsets

In version 4.5, use the options on the Recordset Options dialog box to tell VHI how to determine where the current record in a recordset is at runtime. These options aid the development of iterative recordset processing by enabling the model to look for record identifiers, like cursor positioning or a certain pattern on an entity. The most common (and default) method is to recognize a record using the first record on the current screen. Note: Using this feature from an AppConn connector requires an extra call to the SetCurrentIndex method with the parameter SyncToHost. Search for "SetCurrentIndex" in the Host Integrator API documentation for more information.

Purpose: This discovery feature creates a more dynamic way to find certain types of records in a recordset.

Local Server Deployment

After saving a new version of the model, it is now possible to click the Activate modified models on local VHI server button on the standard toolbar to configure the model on a running local Host Integrator Server. This applies whether the model is new or just being updated.

Purpose: Allow for better iterative testing against the server during model development.

Writable Attributes as Tabstops

In version 4.5, the Use writable attributes as automatic tabstops check box on the Cursor tab directs VHI to automatically assume all configured attributes are tabstops. This will eliminate the need to enter all tabstops manually. If there are other tabstops besides those defined as writable attributes, those tabstops will still have to be entered manually.

Purpose: This tabstop configuration feature is helpful when modeling a character mode host application.

Test Dialog Boxes Cache Test Data

The Recordset Test, Procedure Test, SQL Test, and the new Write Attributes Test dialog boxes now allow you to test the model's ability to cache values entered between invocations. This caching eliminates the need to retype test data each time a dialog box is invoked.

Purpose: Using these test dialog boxes allow you to test this caching feature before the model is deployed to a Host Integrator Server.

Override the Cursor Movement per Entity

In version 4.0, the model could contain a single definition of how to move the cursor forward and backward. In version 4.5, you can also use an additional layer of cursor override per entity by mapping an operation to that entity. To use this feature, select the Execute operations to move cursor option on the Cursor tab.

Purpose: Host errors can now be trapped while moving the cursor.

TN3270E Support

You can now select Telnet Extended (TN3270E) as the transport type for a host connection. Configure this option in the Session Setup dialog box.

Note: The Host Emulator cannot be used if you've created .hetrace files while being connected to a host using the Telnet Extended (TN3270E) transport type.

Miscellaneous Features

Server and Administrative WebStation Enhancements

LDAP Support

Host Integrator's Authentication Authorization and Directory Services (AADS) can be configured to use LDAP as a directory service provider. When you configure an LDAP provider in the Console, user and group directory services for AADS clients (The Administrative WebStation, VHI Servers, and data objects) are authenticated by an LDAP service provider.

Log Manager Upgrades

The following improvements have been added to the Log Manager:

LogViewer Upgrades

The following improvements have been added to the LogViewer:

AppConn Connector Enhancements

Integration Web Application Example

The Outdoor Equipment Store - Java example demonstrates how VHI can integrate disparate host applications and database information into one easy-to-use interface. This integration web application example uses the AppConn Java connector.

Note: To install this feature, select the Outdoor Equipment Store - Java option in the Select Components dialog box during the installation process. If you choose to install this component, the AppConn Java Connector component is also installed.

New Methods

All of the following changes to the AppConn API are implemented in AppConn Java, AppConnXML, and AppConn COM/C++:

Current Screen Position Methods

The following new methods fetch screen positions of entity definitions:

The returned List in each case is a java.util.ArrayList object that contains a collection of ElementLocation objects, returned in the order specified by the argument supplied to the get* method. If the parameter is null, the method returns locations for all elements of that type. Getting locations for attributes, patterns, and recordsets all are within the context of the current entity. Getting locations of fields is within the context of the current record in the current recordset of the current entity. These methods were added to AppConnModel and AppConnSession.

An ElementLocation object contains location information about a specific element on the current entity, plus context information. The methods of this object are as follows:

Method
Description
String getElementName() Gets the model name for this element.
int getElementType() Gets the type of this element (enum): attribute, pattern, recordset, or field.
int getTopRow() Gets the current absolute position for top row of this element.
int getLeftColumn() Gets the current absolute position for the left column of this element.
int getNumRows() Gets the number of rows of the rectangular region. (Applies only to regions that are rectangular. Set to -1 if type is linear.)
int getNumColumns() Gets the number of columns of the rectangular region. (Applies only to regions that are rectangular. Set to -1 if type is linear.)
int getOffset() Gets the current screen offset for the starting position of this element.
int getLength() Gets the length, in characters, of this element. (Applies only to elements that are linear. Set to -1 if the type is rectangular.)
int getRegionType() Gets the type of screen region for this element (enum): linear or rectangular.
String toString() Returns a string object that represents this ElementLocation object.


Insert and Get String Methods

The following method inserts a string of the specified length starting at the current cursor position:

This method returns a string of the specified length starting at the current cursor position:

Both of these methods have been added to AppConnTerm and AppConnSession.

Wait for Condition Expression Method

The following wait for condition method has been added to AppConnModel and AppConnSession:

The expression specifies the condition to wait for and is similar to a filter expression in methods such as fetchRecords(). This can be used to wait for the cursor to appear at one or more locations based on the built-in cursor variables in the expression. The entity parameter gives a context for evaluation of the expression. If entity is null or blank, the current entity will be used. If entity is not blank, the server will first wait for the specified entity and then evaluate the expression. If expression is null or blank and entity is not null or blank, the method will simple wait for the specified entity and return.

Get Home Entity Name Method

The following method returns the name of the HOME_ENTITY constant for the model:

This method has been added to AppConnModel and AppConnSession.

Get Terminal Field at Cursor Method

The following method gets the terminal field properties at the current cursor:

The above method has been added to AppConnTerm and AppConnSession. It returns a TerminalField object, which contains the following methods:

Method
Description
int getTopRow() Get the current absolute position for top row of the terminal field.

int getLeftColumn()
Get the current absolute position for the left column of the terminal field.
int getOffset() Get the current screen offset for the starting position of the terminal field.
int getLength() Get the length, in characters, of the terminal field.
TerminalAttributes getTerminalAttributes() Get the TerminalAttributes object for the terminal field.
String toString() Return a string object that represents this TerminalField object.


Set Logging Level Method

The following method enables or disables logging of defined message levels for the current session:

This method has been added to AppConnTerm and AppConnSession.

Note: Level is an integer that is an enumeration of the following defined message log levels:

This setting lasts as long as the data object is connected to the current session. It has no effect if there is no current connection to Host Integrator Server. The setting can only increase the level of message logging from the default configuration set for the server; attempts to set the level lower than the current server configuration have no effect. For example, if the current server configuration has a logging level of 'Warnings and Errors', attempting to set the level to log only 'Errors' will have no effect. See getLoggingLevel() for more information.

Get Logging Level Method

The following method retrieves the current logging level for the current session:

This method has been added to AppConnTerm and AppConnSession. It returns an integer that is an enumeration of the following defined message log levels:

You can use getLoggingLevel to check the current logging level, which will return the default setting if no session level has been set via setLoggingLevel. See setLoggingLevel().

Insert Records Method

The following method inserts multiple data records into the current recordset:

It has been added to AppConnModel and AppConnSession. This method takes a list of record objects and sends them to Host Integrator Server, which in turn inserts them into the current recordset of the current VHI entity. Each record object is the same type as that of the related insertRecord AppConn method.

Get Model Name Method

Returns the name of the current host application model.