Enhancements and Fixes for Flynet Viewer Emulation Service and Flynet Viewer Studio since installers 42N (Service) and 42O (Studio)
Flynet Viewer Base Product and Components (Version: 4.1.31)
Flynet Emulation Service (FlyServer.exe)
Many enhancements and fixes were applied to improve support for VT100/VT220/ANSI emulations when used in the web service application environment.
- Keystroke mnemonics were updated to support custom keystroke definitions for the (backtab), (backspace), (delete) and (home) keys defined in the c:program filesflynetdefinitionsCustVTKeys.dat file
- Buffer tracing implemented for 3270, 5250 and VT protocols. Buffer tracing produces an in-memory history of buffers received in-between each SEND operation, including type of buffer, keyboard lock/unlock state and timing of the buffer. Additional enhancements related to this core functionality are described elsewhere in this post.
- When trace is active, the FlyServ.log file now has BUFLOG entries with text representation of the buffer activity in-between SEND operations to the host. The text includes special sequences that can be searched on with a text editor in the Flyserv.log file: “![” will find any situations where buffers were sent after the keyboard was unlocked, while “!![” will find situations where buffers were sent after the logic’s screen recognition was completed.
- Administrator Console security was upgraded to support use of the FVTerminal class to reconnect to an existing session, to enable WinForm manual intervention of automation web services
- VT220 support for INSERT and DELETE protocol commands was inaccurate under certain conditions and was fixed.
- Can send the @ sign to VT100/VT220 hosts. Is escaped in code as two (@@) signs, as this is a key mnemonic escape for the internal EHLLAPI keystroke manager inside the core Flynet library. Prior versions sent invalid code unless connected to 5250/3270 session.
- A new registry setting, VTMode8Bits was added for a Hosts/Host definition. When set to “yes” or “true” will cause a VT session to startup in 8-bit mode by default. This is useful when needing to simulate a “real” VT220 Terminal that has switches settable by the user to this default.
- A regression in session re-use was causing certain terminal characteristic settings to be lost when a session was reused (started-stopped-started). An example–custom keystrokes setting for VT host definitions would be ignored the second time a session was started after being stopped.
- Potential buffer overflow fixed in the Administration Console port (command too long)
Flynet .NET Integration Assembly (ViewerLib.dll – Version 4.2.15)
- New property added to HostConnection class: nextReadySilence. nextReadySilence is a special tuning value that provides a special “after keyboard unlock” first wait time. Like the readySilence value, there must be a certain number of milliseconds of no sent buffer before a transition is completed. In the VT environment, there are frequent situations where a first quick buffer trips the unlock…but the “real” buffer is coming fairly soon after. Setting nextReadySilence to 1000 in this situation will cause the internal transition logic to wait up to 1 second for the NEXT buffer after the unlock before releasing to screen recognition logic. Meanwhile, the readySilence value can remain lower, say 100 milliseconds, to avoid adding 1 second to every transition (which is what setting readySilence to 1000 would do).
- HostScreen screen wait time parameters were changing the default screen wait time. This has been fixed so that any override of the screen timeout will only apply to the call being made, and will not change the default for all other subsequent calls.
- At any successful wait ending, such as HostScreen.waitForScreens(), the session’s internal “clientWaitEndedTicks” value will be set. This allows buffer visualization in the Monitor, GUI Tester or MMC Terminal emulator to flag situations where a controlled terminal transition has “completed” but has additional buffers sent by the host (meaning that the transition is in-error, will have timing issues in a production environment and needs attention).
FVTerm – Flynet Web Terminal Emulator
- TN3270 connections-some numeric values were displaying with an alpha character due to a regression caused by a TN5250 fix on signed numeric fields (fixed)
- Logging for new connections was moved in the SCStart web service method (“FVTerm connected to shared session”)–new location in code is after a connection is confirmed; in the prior version, it was logged before the new connection is confirmed
Flynet Viewer Recorder 2.0
- Keyboard support for VT100/VT220 terminals implemented (prior to this version, VT emulation was poor or not easily used in Recorder 2.0)
- “TestCUP” special keystroke command implemented–this may be assigned to any key combination and allows easy testing to determine if a host application supports direct cursor positioning (if a host supports this, it can be set as a default in Flynet Studio and generated VT data entry code is more efficient), by default, Ctrl-F3 is assigned this command.
- New Settings / Recordings Control Checkbox: Display Buffer History which will display the new Buffer History visualization graphics underneath the status area:
The buffer history graphic is particularly useful for VT100/VT220 environments, where many transitions require tuning. Using the graphic, an analyst can spot when the keyboard has unlocked, but additional buffers have arrived. A yellow background indicates “late buffers”.
- If there is a startup issue with a new session, or no sessions are available, instead of an exception displaying, a Message box is shown with text starting with “There is a problem starting the session for this recording…”.
- When closing the Recorder, if a session is active, instead of a simple message box requesting that the recording be closed first, there is now a confirmation: “Close active recording and then exit?…” with an OK/Cancel option. This enables a close and exit in one click.
Flynet Viewer Studio (Build: 4.1.2.40223)
Integrated Development Environment (IDE)
- Heatmap support improved for VT100/VT220 recorded screens (including improved field detection and fixing some program exception conditions)
- Heatmap includes the cursor location (dark orange body, dark blue border) when viewing individual screen images (browsing)
- Fixed issue with screen resizing of the main panel (center), where in many circumstances the bottom or right portion of the screen was clipped, requiring a resize operation to fix the dimensions so that the bottom or right portion became visible.
Web Service Generation and Testing
- GUI Unit Tester and Test Monitor improved to work well with web service transactions working with VT200 sessions. When this host type is used, keystrokes sent as part of each NextScreen operation will be displayed in the Tester and Monitor so that the user can see what was used to update the screen.
- New TaskScreen property: ScreenEnterKey which can be used for an Add New Data or Edit Data TaskScreen to override whatever enter key would be automatically determined based on recordings of the presumed transition (TaskScreen to first OKScreen or next TaskScreen in the Task). By setting this value, the transaction design can be clear as to which key (ENTER, PF4 and so on) is used to enter the subject TaskScreen during the task execution.
- GUI Unit Tester error handling for an invalid sessionKey passed in an Inherit Navigation task has been improved to provide an easier to understand message–new message is “No Host Session Connection was made using sessionkey…”
- Interfaces used by the SharedNav.cs module were extended: added the ts.GetFieldText() method and ts.QueueFieldEntry() method
- Added new navigation method: QueueTextEnter for VT screens that need fields entered with an optional enter key
- Returned value from web services has always had case issues (“OK” or “ok” sent, depending on circumstance)–this has been fixed so that the return value is ALWAYS “OK”
- Test Monitor adds the Buffer History graphical visualization (see Recorder 2.0 description, above). Runs with an active web service task, either in the GUI Unit tester or an integration test using the Monitor from the Start menu. In addition to the yellow background warning of late buffers (which may not cause a problem when screen recognition lists are active in code), the monitor mode includes a red background for situations where a recognition list has been satisfied but more buffers arrived late. When the red background is displayed, it usually means that the transition just witnessed will need additional tuning in code to ensure proper synchronization between the logic and screens.
Miscellaneous Fixes
- Test Case Browser exception when viewing certain test cases created from VT recordings fixed
- Reloading a sessionKey for an inherit navigation Task in the GUI Unit Tester was clearing all input variables–fixed to also reload the input parameters from the active input/test case.
- For multirow fieldmaps with data entry (write) fields, in an Add New Data task screen: in the GUI Unit tester, better handling and easier to understand error messages to ensure the proper number of commas in the comma-delimited data used as input.
- If a file was deleted, could cause an exception during web service generation (fixed)
- Merging Code Properties–if a code property didn’t end with a CRLF, could cause compile error, as the next #region statement did not start on a new line (fixed)
- Some Auto-selection task screens were causing parameter list mismatches between the ASMX.CS file and the internal task handling class (fixed)
- The Inherit Navigation Task Type, depending on the type of starting screen, was not always generating correctly in the GUI Unit Tester. For example, needed input parameters would not be generated to be entered along with the sessionKey, in cases where additional navigation is needed after the initial screen is worked with.
- Some Screen navigations were using block-mode data entry (SetFieldText) instead of character mode (QueueFieldEntry) when generating navigation code
- Navigation member “queuedCursorOffset” was made public so that other classes could use it in logic
- Some navigation fields were not being filtered properly in Taskscreens with Field Write Filters
- Mapped List (Multirow fieldmap) classes for VT/Character Mode had block-mode data entry for auto-selection generated code. This was fixed to utilize the Queued keying methods.
- Navigation through mapped lists was not always mapping a recorded set of keystrokes against mapped fields, causing extra keystrokes to be generated in navigation methods
- VT host navigation for logon sequences was not catching all screen changes due to internal consolidation of tabbed screen data entries from multiple screens (as viewed in recordings viewer) into one screen. Some consolidations were inaccurate (fixed).