These builds for both the Emulation Service and Studio feature both enhancements and bug fixes, along with a new installer for the base product that manages MSI upgrade issues.
Flynet Viewer Base Product and Components (Version: 4.1.20)
New Installer – FVSetup.exe (replaces FlynetViewer.msi)
- FVSetup.exe is an MSI wrapper that ensures that the correct version of Windows Installer is available (and upgrades if not)
- Automatically performs upgrade of existing installation, retaining all registry settings while replacing all installation files
- Fully tested from minimal Windows/XP install
- Upgrades to Windows Installer 3.1 if 2.x installed
- Provides guide to install .NET Framework 2 SP1 if .NET 2.0 is not installed
- Requests installation of IIS if IIS component is not installed
- Guides activation of ASP.NET if not active for IIS
- Detects and provides guide to installation of Microsoft Management Console 3.0 if not installed
Flynet Emulation Service (FlyServer.exe)
- SCO-ANSI terminal type support added for VT–still requires registry setting for the actual Telnet terminal type (configuration select-VT) to match active host termtype. Included support adds 1) host macros, 2) SCO color commands and 3) SCO keyboard lock/unlock
FVTerm – Flynet Web Terminal Emulator
- Added improved initial connection to the startup javascript–this is for new connections where there is a sessionkey passed using outside scripting. When the startup page is loaded with a URL that includes a sessionkey, the session key is used to start the emulation. In some cases, due to timing, one call to get started with a sessionkey was not enough. In this build, retry logic has made the initial connection far more reliable. This is in support of the Flynet Web terminal emulator sharing sessions with a set of web services as part of a work automation design.
Recorder 2.0
- Added VT220 support so that reliable recordings can be made in a VT environment. Note that the use of keyboard definition files works. Custom keyboard setups (CustVTKeys.dat in Definitions folder) can now be supported as are frequently encountered in many older Unix applications
- Improved display of the AID key(s) when viewing a recording. Location and size are improved, and long key strings are supported, which may be encountered in a VT environment.
- Improved usability of the Recording Viewer–page-up and page-down as well as the mouse scroll-wheel are now supported, with improved management of the elevator scroll element.
- PA1 and PA2 keys were added to the recorder (Ctrl-F1 and Ctrl-F2)
- Terminal Emulation had extended color foreground and background attributes backwards–fixed so that colors in extended environments are correct.
Flynet API Library (ViewerLib.dll)
- New trySetText method–same parameters as the setText method, but will ignore a null text parameter as well as attempts to write to a protected screen field; returns a true if writes successfully, false if one of the above prevents writing. If the active screen is an unformatted 3270 screen, will perform a putKeys() method and return true.This new method was introduced to better support screen write methods in web services, where a null parameter is accepted as a “don’t write this” and where a host dynamically changing a field to protected shouldn’t break logic on its own.
- SCO-ANSI host-sent macros now supported with the getHostMacro() method, which will return a host-sent macro command or null if none are pending. Keep calling until any pending macros are all read.
Flynet Viewer Studio (Build: 4.1.2.40001)
New Recording Import Helper
- Activated with right-click on Recording (Import/Import New) – provides small modeless window that displays the next unrecognized screen in a recording and simplifies the import, naming and recognition of the screen.
- Get Next button rapidly finds the next unrecognized screen in the recording and imports it
- Automatically runs the Check Recognition scanner detailed below
Check Recognition for Popups and Overlays
- Separate recording analyzer that verifies the existing recognition through all of the screens in a recording
- Final Validation scanner–scans for recognition anomalies to locate popups and overlay screens so that they can be imported and recognized accordingly
Screen Heatmap Display
- Great for analyzing how a screen is used throughout all the recordings
- Right-click a Screen Definition – Display / Display Heatmap
- Current screen display changes to a “heat map” of host screen writes and user data entry, color coded to show which portions of the screen are changed the most
- Scans all associated recordings to produce the source of the heat map
User Navigation Definitions
- New facility for user-defined navigation between screens without the need to specifically record the navigation
- User Navigation Dialog opened with right-click on Screen Definition (Modeling / User Navigation) or in the Navigation view in the “To” list (Add new User Navigation; Override with User Navigation)
- Displays the “from” screen in left pane with thumbnails of possible “To” screens on the right, color coded to match any known navigations.
- User clicks on a “To” screen to add field changes and the Enter key
- A new field change can be initiated with a button or by clicking on a location in the “From” screen view
- User navigation definitions take precedence over any recorded changes and are used in the generation of the navigation code for web services and other generated applications.
Web Service Generator Projects
- NavigationVersionis a new property for TaskProject objects (web service projects) and lets you select the new “Granular (2009)” option; the default is the existing model: “Original (2006)”. When selecting the Granular navigation, in the Tasks project for the generated web service, the way that the “NavToScreen” methods are implemented is completely different, while maintaining the same calling signatures. The advantage of the new approach is evident when overrides are needed to customize navigation. Instead of having to replace an entire method (like overriding NavToMyScreenX), you can override the NavFrom for a screen involved in the navigation and only include those navigations you wish to override. With the new model, any screens you don’t wish to provide navigation information will work well by calling the base method in the new override, making the contents of the override more granular.
- Tester: added Logon parameters to input information during Monitor of Logon
- Pooled and AutoLogon Credentials: Added support for comma-delimited credential text. When editing the logon credentials (for example, Userid and Password) for pooled and autologon sessions, each text value in the UI can have multiple parts, separated with commas (no spaces please). When this form is used, the session acquired at connect time will be used as an index into the credential values. For example, the first userid and password go with Session 1, the second set go with Session 2 and so on. This allows unique userid’s for pooled sessions for those host environments that do not allow a given userid to be logged-on to more than one session at at time.
- Screen Writes in the Finite State logic generated code now all use the trySetText() method to perform screen writes. This allows for more compact c# code, as no longer are there needed checks for a null value or a field that has been switched to protected from unprotected.
- Added support for a declared Flynet Viewer application in web.config–app field name=FVApplication. This enables sharing of a session between a set of web services and a user Flynet terminal emulation session in a web browser.
UI Panels and Liquid CSS Forms
- The new UIPanel object has been added to the Project Explorer Treeview, as a child of Screen definition objects when the UI Generator is active in options
- The UIPanel objects are used when the “Panel Divs” PageTemplate property is selected for the Screen. Each UIPanel becomes a column-oriented div with labels and data-entry fields aligned as they are on the screen, but in a liquid CSS (non-table) layout that is easier to edit in Visual Studio (particularly Visual Studio 2008)
- Developers still may need to tweak special style sections at the top of the generated page to achieve the best visual results. This is to ensure that label and data field widths are set in each UIPanel to match rendering goals in the browser.
UI Generator Projects
- New CSS class added, “Info” which is a smaller text intended as descriptive text for a display or entry data field, as opposed to a label, which is larger and identifies rather than explains or describes.
- New Field property, AlertWhenNotBlankwill issue a popup sticky note with a message if the field with the property set true is not blank on display of the underlying screen. Ideal for building easy error message functionality.
- New Screen (BodyLineHeight, BodyFontSize), and UIPanel (PanelTemplate, PanelAlignment, DataAlignment, DataWidthOverride, LabelWidthOverride, PanelFontSize, PanelCharacterWidth and PanelWidthOverride) properties added to tune the CSS liquid forms generated using the “Panel Divs” screen page template (see description, above)
- Support added for Multi-Row Data entry pages, where the multi-row FieldMap has enter-able fields on each row, not just an action selection field. All Flynet Web Controls have the “SourceRow” property added to support multi-row data-entry
- Added to the base Web page class is the easy-to-use “PopupAlertMessages” method, which takes a FieldID and positions a sticky-note alert next to the field
- Improved use of images for F4-selectable 5250 fields, with F4 key trapping and clicking on image to display list working more reliably.
- Ability for F4-selectable entry fields to define a custom popup handler, enabling the use of a database instead of the screen.
- DynamicCSS added to Calendar Date entry fields, to support transitioning from an entry to protected (display only) field based on host attributes
- Can now directly change the order of fields defined in a field map using drag-and drop, which is especially useful in tab order and other issues requiring ordering
- Added System.Collections.Generic as a standard using clause for all code-behind modules
- Added a demonstration screen-page template, “BPCSMenu” which uses the popular BPCS AS400 package’s approach to dynamic menus as a backing to a floating-div “organized click-able boxes” web page, with categories.
VTxxx Web Services
- As noted above, SCO-ANSI emulation is now supported, which adds additional color, keyboard locking and host-sent macro command support
- Prior to this build, VT/Character-mode entry screens were not well supported in the Finite State (2008) Logic code generations. This build adds data entry support.
- Additional Project, ScreenDef and Field properties to help in ensuring cleaner data entry (ExitKey, CustomExitKeys, FieldCursorPositioning, PositionCustomKeys, NextFieldCustomKeys, HostEditLevel).
Bug Fixes
- The IgnoreForLogon property for recordings was not being properly used when generating the HostLogon method for both UI and WS applications
- UI Preview for multirow input Fieldmaps was missing some new properties in the hard-coded modules
- WS GUI Unit Tester had a hard-coded reference from a test case which only caused problems when data-entry into multi-row tables was tested
- Added supoprt for popup alerts in UI Preview
- Cannot define a Task that is the same name as the module with “task” at the end (warning is issued); this used to result in complilation errors due to naming of modules and classes using “Task” in the name.
- VT web services had a bug in generated code in navigations under certain circumstances where the FieldID is missing from the statement
- UI Preview mode has improved code-behind definitions that should improve performance marginally
- 3270 CLEAR key sent: if the host in turn does not send a clear, but instead a simple write, the ClearScreen was not getting recognized using Type=Special Text=Clear in a recog element.
- Web Service generated applications: Pooled sessions, improved detection of a bad session (host has dropped) in the static GetSavedSession logic
- Screen previews using the magnifying glass were not always showing each field in an update operation
- Screen List Display, right-click now displays the Import prompt instead of a white box