APPX Server 4.1.4 Release Notes

APPX 4.1.4 Release Notes

Important Notes

  • In support of some of the new features in APPX 4.1, we compiled using newer OS levels on some platforms. Below is a list of the platforms and OS levels that we were required to upgrade. We can't guarantee that APPX 4.1 will run on older versions of these operating systems. Any other platforms were compiled with the same OS levels we have used in the past.
    • AIX 4.3.3
    • DG/UX R4.20 (Intel)
    • HP/UX 11
    • Linux RedHat 6.2 Kernel 2.2.14-5.0 (Intel)
    • NCR SRV4 MP-RAS Version/Release 03.02.00.39
    • SCO OpenServer Enterprise System (ver 5.0.4p)
    • Solaris 8 - SunOS 5.8
  • It is very important to note that you will not be able to downgrade an application once it has been converted to release 4.1. In 4.1, we have changed the format for the I/O-related ILF statements. These changes are not backward compatible.
  • You cannot convert applications between Intel and RISC byte-ordering at the same time that you upgrade from a previous release to release 4.1. If you need to move an application from an Intel machine to a RISC machine, you must export the application from the Intel machine and import the application on the RISC machine using the same Appx release. Once you have changed byte-ordering, you can then upgrade that application to release 4.1. Note that you can upgrade the application first, then change byte-ordering. You just can't do both operations in one step.
  • The release 4.1 Sybase database interface is now in beta. If you would like to help us beta test this interface, please contact APPX Software.
  • The structures of some design files have changed in 4.1. A restructure of these design files is not required. We have provided a utility in System Administration, Database/Applications, Design File Management which you can use to clean up a few of the attributes in each of your applications. This utility will clear out the new "PCF Partial-record I/O" specification (in Processes/Additional Attributes), it will create some new design files (WIDGET, RESOURCE, and RESNAMES), and will convert any old-style box-drawing specifications into the format supported by release 4.1. (Note: if you don't use this utility on each of your applications, you will need to create the new design files yourself and you will receive warning messages when you try to edit a process which has random data in the PCF Partial-record I/O field.)
  • We have made very significant changes to the Appx/RDBMS interfaces. You should become familiar with these changes before you install this release. In particular, record locking has been re-implemented to provide better performance and this can change the way your applications will work in a multi-user environment.

Bugs Fixed in Patch Release 4.1.4(a)

GUI Client
  • Clicking the Close Box on the outer java client window will now try to close the client session. Currently the way it does this is 1) if the client has not logged into a server session yet, it just closes the client session, 2) if there is an active server session running, the client will send a CANCEL keystroke to the server. This means that you might have to click the close box several times to completely get out of APPX. This will be further enhanced later when the client ahs a better way of closing a server session that does not require it backing out via the menu tree. (#4449)
  • When setting the interactive timeout value, the java client does not fire properly when the timeout occurs. It appears to do nothing and the log files shows that it encountered an exception. This has been fixed so that the timeout does fire properly when the timer expires. (#5928)
  • When using the java client to transfer files, the progress slider sticks at zero percent complete until the transfer is done. This has been foxed so that the progress slider updates as the transfer is proceeding. (#5929)
  • When the server asks the java client to run a local command, the client does not normally wait for the command to complete before returning control to the server. To force the client to wait, you can now add a /W or /w to the end of the command string and the client will run the command (after removing the /w) and wait for it to exit before giving control back to the server process. (#5930)

Bugs Fixed in Patch Release 4.1.4

  • When adding a frame Display Only defaults to 'Y'. While in add mode to add the image, if a modifiable item is added to the image APPX will then reset the Display Only flag to N when the image editor is exited. This was occurring when the image was first added only. It will now also occur if an existing image is modified. (#1847)
  • Occurrence numbers will now be respected when used with the PASS statement. This was fixed in 4.1 but did not make it into the release notes. (#2470)
  • In earlier releases of Appx, a user who was not a System Administrator could use the BROWSE feature (of an output process) to gain access to the User list, Database list, Printer list, etc. within System Administration. This has been corrected. (#4149)
  • When printing technical documentation for output processes, the Global Pre-Display event point was not being included. This has been corrected. (#5436)
  • Options 91-94 have been added to the child "Use Query" popup. This allows jumping directly to the query from the Use Query screen. (#5507)
  • When generating a scrolling input from the toolbox menu, if the process to be generated already existed, it was not being cleared properly prior to generation of the new process. This has been corrected. (#5511)
  • On an image item, if you specified a DLU which referenced a file in another application, you could incorrectly receive a "file not found error". This has been corrected. (#5515)
  • When a titlebar is entered from the Window Options while in the image editor it does not appear on the image when the widget is saved. You must exit and re-enter the image to see it. This has been corrected. (#5517)
  • The Border Color specification in GUI Attributes was not being retained properly. This has been corrected. (#5650)
  • When you manually add a field to the Image Editor from a non-PCF file (after the key to the other file is added with DLU properly configured), the Image Editor is smart enough to default the Auto Display value in Additional Attributes to a type 2 (display look-up, blank if NOF). If you add via the Data Palette (rather than manually), the editor will now provide the same default. (#5652)
  • The "Item Repeat", toolbox option in the image editor did not repeat the GUI Attributes for any repeated item. This has been corrected. (#5698)
  • When entering a value for a tokenized field (at runtime), Appx is too forgiving of misspellings. For example, assume that you have a field whose valid token values are: ALABAMA, ALASKA, ARKANSAS, COLORADO Currently, if you enter a value of A, Appx would assume that you meant ALABAMA. If you enter AR, Appx would assume that you meant ARKANSAS. However, if you enter a value of B, Appx would (incorrectly) assume that you wanted COLORADO (since that is the first token greater-than or equal-to B in alphabetical order). The user should receive an error if he has not entered a prefix of a valid token - you must enter a valid prefix of a token. (#5809)
  • When a two-part data lookup (on, for example, an INPUT) ought to be defined with a "Define", followed by a "Continue", but is instead defined with two "Defines" in a row, you would receive a mysterious error message when the EM built. This has been corrected. (#3990)
  • Starting with release 4.1.4, the System User ID (in the System Administration USER file) is not case sensitive under Windows®. (#5162)
  • When defining a shortcut key for a menu item, the character that you choose for the shortcut must appear within the label. (#5307)
  • In Inquire mode all widgets are "disabled" which caused their contents to be displayed with a very light gray font. This made the screen very difficult to read in Inquire mode. (#5352)
  • If you had a scrolling input and each record was more than one row in size, the Java Client didn't draw it's 'box' big enough. (This is the box outline that the client draws around records as you use the cursor up/down keys.) (#5378)
  • At run time, an alpha field defined as a label seemed to inherit a white background even though no background color was specified. (#5497)
  • If you specifed a widget type of "LABEL" for an alpha field, then you could not see the field on the image while in the image editor. (#5498)
  • Descending keys in Oracle do not display the expected records in an input process. This has been corrected. (#5524)
  • Cut/Copy/Paste and Move in the image editor have been improved. Operating on multiple objects should no longer cause Appx to crash. (#5534)
  • Using the ILF Editor with the Java Client: When you tred to Search within the ILF editor, the cursor positioned one character to the left of the box in which the search string was to be entered. (#5542)
  • When you displayed an OUTPUT to the screen, if any literal text such as "1) Customer Number One" was present, it displays as a button. (#5549)
  • Sometimes logging off the server using the Java Client ended abnormally. When this happened, the last things on the MS-DOS log was: "terminating exception < 16 hex digit address > received on thread" (#5573)
  • SQL Server® provides multi-user integrity through record locking. One of the consequences of this is that if you update a row in SQL Server, that row is locked until you commit. If your update changed any indexes, those index pages are locked until you commit. The locks prevent other users from modifying your changes until after you commit, but unlike other (more APPX-friendly) databases, the locks also prevent other users from reading the data that you have changed. If you run into this problem, the symptom will be that you are doing a READ *without hold* and the READ hangs for some period of time (until the other user COMMITs). You can change this behavior on a file-by-file basis by enabling the READ UNCOMMITTED feature of SQL Server. If you turn on READ UNCOMMITTED, you can READ (without hold) data modified by another user, but not yet committed. In most cases, this won't cause you any troubles (since your applications never do a rollback). As soon as you start using the ROLLBACK statement in APPX, you will want to revisit the READ UNCOMMITTED flag to determine if it is still appropriate. (#5589)
  • Sliders widgets have a spec for Snap to Tick Marks. If you turned on tick marks for the slider it always snaped. If you said not to snap it still snaped to the tick marks. (#5641)
  • A TOKEN field with a Raw Text widget type no longer prompts for an OPTION to send. (#5642)
  • The Java Client was not making any sound in resonse to the APPX server requesting a BEEP. The client now responds to server BEEP requests. (#5644)
  • When using the Data Palette, the cursor icon seemed to always be an hourglass instead of a pointer (although it worked OK). (#5649)
  • In the java client, if you resized the window in only one direction (horizontal or vertical) the client would not adjust the font and client window to the new size. (#5660)
  • A query process will (once again) read PCF records with hold if the process contains a REWRITE or DELETE statement which refers to the PCF. (#5681)
  • The Java Client had some old code that would convert buttons to text if the GUI interface was turned off. We do not support running GUI applications on character screens at this time so this code was removed. (#5687)
  • The appx.idx and appx.fis files could be corrupted if a copy of AppxODBC failed to terminate properly. This has been corrected. (#5729)
  • A query process will (once again) read the PCF hold hold if the process contains a REWRITE or DELETE statement which refers to the PCF. (#5730)
  • Cosmetic changes have been made to various System Administration processes. (#5766)
  • Cosmetic changes have been made to various System Administration processes. (#5768)
  • Executing a query process which constrains a prefix of a key can result in fatal errors. This occurs when the constraints specify a "GT" or "GE" without a matching "LT" or "LE". It also occurs when the constraints specify a "LT" or "LE" without a matching "GE" or "GT". (#5840)
  • Several memory leaks related to the Appx/RDBMS interfaces have been resolved. (#5910)
  • A memory leak related to the "In-progress" message of an Update process has been corrected (#5911)
  • If you modify the PCF of a scrolling input process and the PCF REWRITE fails (possibly because of an already-on-file, or record-not-held condition), the input process can crash. This has been corrected. (#5912)
  • The FMS editors for Sybase, Oracle, and ODBC have been separated. There are now three different FMS editors, each asking for information specific to an FMS type. (#5917)
Run-time
  • When invoking a process with child constraints, and utilizing a multi-part key field in the child's PCF where the key's segments are not in the order that the underlying fields appear in the record (this can be done by using SYNONYM's) - it was possible for the child to incorrectly act as if there were no records matching the constraint. This has been fixed. (#3275)
  • After "appx -k" keymapping, the keyboard cursor (arrow) keys don't function. This has been corrected. (#3631)
  • A memory leak related to the CALL statement has been fixed. (#5124)
  • SCAN on the cached instance of a file does not return values from the selected record. (#5339)
  • The java client would lockup sometimes when resizing its window via the mouse. (#5380)
  • If you have a process that displays a scrolling screen with multiple records on the screen and widgets defined. Only the first record's widgets were displayed. (#5381)
  • In the java client, pulldown menus disappeared from the menu bar if you press return while sitting on a menu. (#5386)
  • The java client sometimes locked up in the image editor with "Exception occurred during event dispatching, java.lang.NullPointerException: Null Pointer or Access Violation" and same message plus "java.lang.ArrayIndexOutOf BoundsException" (#5419)
  • When a token field with a control type of RAW TEXT was scanned, the drop down list of values was not attached to the bottom of the field. (#5479)
  • Java client date fields do not save changes to the field if you change a digit in the existing date or blank out the date. This has been corrected. (#5484)
  • With the Java Client, Auto Tabout did not work on color field widgets. (#5485)
  • (#5486)
  • The java client will now correctly run as an applet inside of the Internet Explorer 5 browser. (#5554)
  • Trying to do a local print while running the client in the a browser would not print. (#5556)
  • When running the java client in a browser, sometimes the widgets on the titlebars of the popup windows were missing. This would be the close button, the checkmark button, the help button, and the popup title text. (#5557)
  • In the Java Client, if you had your edit caret in a password field, pressing the ENTER key was ignored. (#5587)
  • In the Java Client, if you had a scrolling record display with a combobox in the scrolling area, if your focus was sitting on the combobox, the Page Up anf Page Down keys were ignored. (#5588)
  • If you specifed "Icon Position" for a button on a menu it was too persistent. If you edited the GUI Attributes for another button that previously had no "Icon Position" specified, the Icon Position from the first button would be filled in on the second button, when the GUI Attributes screen was displayed. (#5665)
  • When an input that is defined for more than 80 columns is run on a 21x80 screen the client locked up when trying to paint a field (in this case an image) that started before column 80 and extends past column 80. (#5669)
  • The APPX 4.1.3 keymapping utility (appx -k) would give a seg fault under AIX (and possibly other unix platforms). This has been corrected. (#5708)
  • The right click menu didn't support separators well in the java client. If you tried to use a separator in the menu, the menu would not appear at all. (#5734)
  • The locking model previously used when storing/accessing data in MS SQLServer will no longer work. SQL Server 7.x changes the way record locking and cursor models work. The locking model for MS SQLServer has been rewritten in 4.1.4 (#5781)
  • When executing a query process where one of the selection criteria partially constrains an alpha field (i.e. a prefix of the field is constrained), the resulting select statement contains garbage. We now pad the ending constraints with high-values when executing a query of this form. (#5782)
  • Attempting to create a SQL Server (or Oracle, DB2, or Sybase) table which contains a space in the table name ("Open Transactions" for example) resulted in a parse error. This has been corrected. (#5789)
  • If you execute a WRITE statement against file 'A' in one process, then invoke a different process and execute a WRITE statement to the same file (without closing the file in between), the second WRITE statement can insert garbage data. This has been corrected. (#5790)
  • Referencing a cross application date domain, which had date and time components, could result in the error - PCBLD.C.205 "bad seg file write - Error - Already on File", when an EM for a process was created. This has been corrected. If you are experiencing this error, it may be necessary to initialize the 4 compiled DD files for the application and to Process the data dictionary. (#5833)
  • If you designed an input or menu frame starting on row 21 and you designed buttons on the image, at runtime, the buttons did not show on the client screen. (#5842)
  • If you try to SCAN against a key which contains multiple occurrences, you will get varying results, depending on which native file manager is being used to store the file. If you store the file in an RDBMS, you will probably not see any records displayed. A SQL log would show an invalid select statement (the select statement would include garbage for occurrences other than the first). This has been corrected. (#5846)
  • If you have a file which contains a synonym of a key segment, the field will show up twice in a SCAN display (assuming that you are scanning against the aliased key). This has been corrected. (#5847)
  • On Linux systems, the ethernet hardware (or MAC) address can now be used as a serial number for registration purposes. (#5891)
  • The Appx/Oracle interface can use two different methods for uniquely identifying a record (row). Appx can remember either the ROWID or the primary-key values for each row. Various problems arise when trying to use the ROWID as a record identifier. Starting with release 4.1.4, the default record identifier will now be the primary-key for each row. (#5894)
  • If the engine calls the Win32 GetUserName() function twice, the second invocation will cause a GPF. This has been corrected. (#5895)
  • Cancelling a query process causes a "Unable to open required file" message. The message should be friendlier. You now see a message which informs you that the user has cancelled the query process. (#5896)
  • If you exceed your licensed user count, any users which try to login while there are no licenses available will crash after viewing the "License Count Exceeded" message. This crash can cause the USAGE file to be locked. This has been corrected. (#5901)
Designer
  • Starting with release 4.1.4, Windows users can use the SCAN option to select System Printer ID's (when defining Printers), System User ID's (when defining Users), and ODBC Data sources (when defining an ODBC FMS group). (#3319)
  • Upon exporting, it is possible to get an mu.c.3266 - "bad msk file write - error - already on file". This is known to happen if you run an Export, interrupt it somewhere in the middle (perhaps as result of another cassert), and then rerun the Export without first exiting and reentering APPX. This has been corrected. (#3354)
  • While stepping thru ILF code, it seemed the highlighting that indicates the current line got 'stuck' after a TRAP was executed. (#4356)
  • The Appx/MS SQL Server interface will now define a column to be of type "datetime" if the Appx data dictionary specifes a DATE field with components "CC" through "th". Also, a DATE field with components "CC" through "nn" will map to a "smalldatetime" column. (#4411)
  • If you had a scrolling image that was 1x80, whose only modifiable fields were checkboxes, it could not be edited. (#5408)
  • When in the image editor and moving fields up and down, the fields sometimes ended up in the wrong place, widgets missing, etc. (#5420)
  • The java client lockup when a checkbox was dragged and dropped onto the right hand side of a box widget. (#5421)
  • The java client locked up when a button widget was dragged off the bottom of the screen. (#5423)
  • In some cases, you could not manually enter a color value into a field defined as a Color Chooser. You could use the attached button to pop up the color chooser control and select a color. But, you could not enter a color using the keyboard. This has been fixed. (#5424)
  • When code is added to a file level event point, the event point name does not get the visual cue of turning green in the list of event points. (#5474)
  • With the Java Client and the Image Editor, when both the tab level and tab group were set on a field, APPX did not respond after the image was saved. (#5480)
  • With the Appx Client, the page up and page down keys did not always work on the optional process list. (#5483)
  • If you were to copy and paste a label widget from the image of one process onto the image of a different process. The label widget appeared on the image but was not able to be modified. When the image was saved the label showed up back on the original processes image. (#5490)
  • With the Java Cleint the cursor could not be seen in token/validation fields when running under the Web Look. (#5491)
  • Using the java client, if you selected multiple items and tried to move them to another area of the image, the moves failed. The failure only occured if the items had related widgets. The symptom was that the items moved back to their original position, though the widgets seemed to be moved to the new positions. (#5659)
  • The PASS and RECEIVE statements can now be used to pass and receive literal (constant) values. (#5688)
  • Using the Java Client, the image editor had trouble SCANning by Field. You were not positioned on the Starting value. When entering the field name the first SPACEBAR was interpreted as Enter by the SCAN processor. (#5690)
  • Under the java client silders and buttons didn't make it through a Cut/Copy Paste operation. (#5695)
  • In the java client and doing a group Cut/Copy/Paste operation which had an item that had a GUI Widget (Slider, etc) would "drop" whole items. (#5700)
  • If a label extended beyond the right hand side of the frame, but most of it was within the frame, then the label would not be visible during design. It would appear at run-time. (#5744)
  • Under Windows, the appxd program should load c:>\appx.env and c:\appxd.env - this makes it much easier to consolidate environment variable assignments. (#5778)
  • When stepping through statements in the ILF debugger, the PASS and RECEIVE statements should display the current values of the referenced fields. The END LOOP statement should do the same. (#5779)
  • The ILF editor should auto-correct the common mis-spelling of the RECEIVE verb (i.e. it should correct RECIEVE to RECEIVE). (#5780)
  • The Appx/Sybase interface been updated to Sybase version 12. (#5783)
  • Executing a SET statement, where the source field is a group header and the destination field is a multi-occurence alpha, will wipe out all occurrences in the destination field. (The SET statement is acting like there is a group header around the destination field). This has been corrected. (#5793)
  • The ASQL program (AppxODBC schema importer) now displays a progress dialog when connecting to the Appx data dictionary. This can be helpful when using AppxODBC over AppxNET with a slow connection. (#5812)
  • When in the Image Editor, the java client would not always respond to keystrokes or mouse clicks. (#5855)
  • Moving buttons too far to the left so that they are off the left edge of the screen locked the image editor. (#5859)
  • If you add a large (see below) text field to the end of a record, set "Variable Record Length" to 'Y' for that record (to force a quick restructure), then try to restructure, a failure occurs. ('large' in this case means long enough to cause the record length to increase beyond the next 1000 byte boundary). This has been corrected. (#5861)
  • If you paint an item over the top of a characteristic, then double-click on the item to edit its properties, you will be prompted to define a box. This has been corrected. (#5875)
  • The RESIDENT? flag on the CALL statement is not honored. If you execute a CALL statement with the RESIDENT? flag set to 'N', the external library (DLL) is not unloaded after the CALL completes. This has been corrected for release 4.1.4 - however you must set the environment variable "APPX HONOR RESIDENT FLAGS=1" to force Appx to unload the external library. In a future release, we will remove the need for this environment variable. You should examine all of the CALL statements in each of your applications to determine whether the RESIDENT? flag is properly specified. (#5880)
  • Deleting an item in the image editor, then ending back to the process management menu, then going back to the image editor and deleting another item can cause an unrecoverable memory reference error or a freeing freed memory error. This has been corrected. (#5886)
  • APPXPATH can now be found in the --- VERSION file. This value can be used to find the system administration (and 0-app) files. (#5887)
  • When editing the Establish PCF Range event point of a query process, the ILF editor incorrectly said that you were editing the Set Default Values event point. This has been corrected. (#5888)
  • Under Windows, the WinAppxD server (connection manager) will now read environment variables from the c:\appx.env and c:\appxd.env files. (#5889)
  • Using the 4.1.4 (and higher) version of appxd and WinAppxD (the Appx connection manager), you can reject either interactive or AppxNET/AppxODBC login requests. To reject interactive logins, define the following environment variable: "APPXD REJECT INTERACTIVE=1" To reject AppxNET (and AppxODBC) logins, define the following environment variable: "APPXD REJECT FMS CONNECTS=1". (#5890)
  • The CNV TEXT statement is not paying attention to NULL values. If you try to CNV TEXT a tokenized field (to text format), the result will either be a "-1" or "??". This has been corrected, but only for CNV TEXT statements which manipulate an entire record. (#5892)
  • The import/export format for some of the file I/O statements is incorrect in release 4.1.x. The result is that you may have difficulty importing design files which were exported prior to release 4.1.4. This has been corrected in release 4.1.4 (#5893)
  • When you make changes to an RDBMS-hosted data file and you are running in COMPATIBILITY (commit) mode, your changes are not committed to the database until all record locks have been relinquished. If you are using Oracle ROWID's as record identifiers, a lock held on an Oracle row will not be noticed when Appx tries to decide whether or not a COMMIT can occur. This has been corrected in release 4.1.4 - holding a lock on a row identified by it's ROWID will veto any compatible-mode commit requests. (#5897)
  • There are some cases where Appx fails to commit the last set of changes made during an Appx session. This can happen in any commit mode. Appx now commits all changes to the server when an Appx session ends. (#5898)
  • When using the "Create Executable Modules" option from the Application Design Toolbox, you cannot print a listing of all process compilation errors. Also, if you try to navigate to the source of process compilation error, you will see a screen which displays a "0" as the only data. This has been corrected. (#5899)
  • The Appx/Oracle interface will now include optimizer (index) hints when producing select statements. These hints can be disabled by setting the following environment variable: "APPX NO INDEX HINTS=1". (#5900)
  • Executing a query (process) against an RDBMS-hosted table can result in an erroneous "No Lines Output" message. This can happen when an alpha key segment is partially constrained and the key segment is stored in a VARCHAR column. This has been corrected - we will now pad the "END AT" constraint with high-alpha values. (#5902)
  • Starting with release 4.1.4, the Appx license server will resume it's cleanup of "ghosted" sessions. Prior to release 4.1.4, you had to define the "APPX LS GHOSTS" environment variable to cause the license server to cleanup after failed sessions. You can prevent ghost cleanup now by defining the environment variable: "APPX LS NO GHOSTS=1". ASI recommends that you accept the default. (#5904)
  • When an internal error (or other GPF-type fault) is encountered, Appx for Windows produces a stack dump entry in the appx.stk file. Prior to release 4.1.4, a Windows bug made these stack dump files less useful than they might otherwise be. Starting with release 4.1.4, the stack dumps produced by Appx contain information which can help ASI determine the cause of an error. (#5905)
  • When using ASQL (to import table definitions into AppxODBC), you now receive a more understandable (hopefully) login dialog. This dialog explains which fields must be provided for each configuration and allows you to restrict the set of files presented by ASQL (by application and database). (Note that the ability to filter by application and database was added as a performance enhancement, not as security feature). (#5906)
  • On some screen resolutions, the icons used by ASQL (such as the open and closed folder icons) are not loaded properly - this can result in an empty list of databases/applications/tables. This has been corrected. (#5907)
  • If you execute a data-lookup against a record which is secured against you, you can still view the contents of the record (or at least the fields which are displayed from that record). This can happen when you execute a data-lookup against a file which contains a record-access security field. IMPORTANT NOTE: This bug has been addressed in release 4.1.4, however, to ensure that the fix does not adversely affect existing applications, you must define the following environment variable before Appx will honor security classes for data-lookup operations: "APPX HONOR DLU ACCESS=1". In a future release, we will remove the need for this environment variable - you should examine your applications now to ensure that this change will not adversely affect you in the future. (#5908)
  • Accessing an RDBMS-hosted file which contains a date field as the last field in the record can cause memory corruption errors. This has been corrected. (#5909)
  • If you define a work field whose name does not start with "WORK", Appx defaults the descriptive name and column headings incorrectly. This has been corrected. (#5915)
  • If you are viewing an event point in INQUIRE mode and another user (or another session) tries to view or edit that event point, he will be greeted with a "This record already held by another user" message. This has been corrected - viewing an event point in INQUIRE mode will not lock the entire event point. (#5916)
Enhancement
  • Running using the java client, when a logic field has the control type set to check box or toggle button the image editor will not tab into the field. (#5478)
  • Using the Java client it was impossible to select any item starting at 1,1. Also if you press insert in column 1 the text shown was moved one position to the right (after an ENTER!) but the original character in cloumn 1 was still there. The Java client also appeared to have trouble creating buttons for option numbers of more than one digit long starting in column 1. (#5706)
  • The "table naming scheme" field at the fms group level or at the sysdir level can contain a '$' followed by certain keywords. However, if a $ is actually part of the table name there is no way to include it. The parser would look for a valid keyword and not finding one it would reject the '$' and complain of an invalid keyword. This has been corrected. (#5885)
External
  • Two bugs fixed in AppxODBC:

     

    • When importing a table using asql, the script built will now ignore APPX keys which are on substring fields. This is not supported by AppxODBC.

       

    • The presence of an index which was a "prefix" of another index, would sometimes cause incorrect results to be returned in queries against the table. This has been corrected. The table should be re-imported using asql to take advantage of this fix.

    (#4547)

  • In AppxODBC, when creating the table definition using the asql program, the column name is derived by removing the file name prefix from the field name. If this resulted in a column name starting with a digit it caused an error. This has been fixed by not removing the file name in this case. (#5418)
  • The script built by asql to import a table definition was not picking up a descending key if the key field was an Appx group header field. This has been corrected. (#5437)
  • When using AppxODBC in conjunction with the environment variable, "APPX DATA SERVER" to access, via ODBC, data from a remote APPX server, it was required to also set the environment variable, "APPX UID". This has been changed. Now AppxODBC will automatically generate the "APPX UID" variable from the userid/password specified in either:
    • The ODBC client program's login dialog
    • The AppxODBC Data Source

    If the userid/password from both of those locations is blank, then the "APPX UID" setting from either the current environment or an appx.env file will be respected. (#5452)

  • In AppxODBC, when importing a table definition with the asql program, the generated script will include 2 additional statements:
    • CREATE PUBLIC SYNONYM - this is so that other UserIDs which connect to AppxODBC can access the table without explicitly specifying the schema name.
    • GRANT ALL PRIVILEGES - grants access to the table definition to all users.

    The intent of this is that when multiple UserIDs are connecting to AppxODBC, each user will have access to the table definitions. This does not necessarily mean that each user will have access to the actual data contained in the files. That can be controlled by the standard APPX security mechanism. (#5454)

  • Two files used with AppxODBC, appx.fis and appx.idx, were stored in the root directory of the C drive. They are now stored in the appx.dbs directory (the directory created by mdcreate). For an existing installation, they will be automatically moved on the first use of the new AppxODBC driver. (#5863)
GUI Client
  • If you use the mouse to drag a rubber band around a group of widgets and try to move them, several things happen. 1) The "select" borders around the widgets flicker, turn odd colors, and some don't show a select border at all. 2) When you start dragging, the widgets move faster than the mouse and at different speeds. 3) When you release the mouse to complete the move, the widgets wind up all over the screen at random locations and sometimes the server just locks up. This does not happen if you use the CTRL key and click each widget to do the multi-select. This has been corrected. (#5477)
  • If you set the TABABLE flag on an item with a widget, the widget was not tabable when it is disabled. (#5723)
  • In the Image Editor, if you selected 2 widgets and click one of the toolbar buttons to "make them the same size", sometimes the widgets would snap to the correct size, then immediately jump back to their original sizes. (#5724)
  • Items with a widget type of Label could cause the label widget to grab the keyboard focus and then block any keystrokes from being processed. (#5788)
  • In the Java Client you can now user the FR (SCAN) key while positioned on a ListBox type of control to trigger an APPX Scan operation. This is handy for Token or Validation Table type fields that show as ListBox controls. Clicking the down arrow only expands the list. If you have a Data Lookup or are in Key Entry phase and want to lookup a PCF record, F2 will force the file scan to take place. (#5879)
  • In some cases, clicking a button on one screen and then clicking a button on the next screen without moving the mouse between the button click on the first screen adn the button click on the second screen would result in the srong button being triggered. (#5881)
  • After creating a new widget in the Image Editor, the Lasso Tool is reselected automatically. (#5882)
  • On some popup scroller screens that had no default button defined, the titlebar checkmark button was not getting the default button focus. This meant that if you pressed ENTER then you got no response since ENTER just fires the default button. (#5883)
  • Sometimes, the display of a token value was not showing the correct value. APPX was storing and executing it correctly, but the visual presentation of the value could have been wrong. (#5884)
  • To enable the java client to run on a browser, it needs to have a static location to store cache files. To provide this, the Java Client now creates and uses a /tmp/cache directory on the client machine to store all cache files. (#5913)
  • Customers outside of North America need to be able to enter accented characters into APPX GUI fields. This is now possible by using a non-US keyboard definition under windows and entering the proper accept character and then the character to be accented. This combination will enter the character with the appropriate accent. (#5914)

 

Microsoft, Windows, Windows Server, Windows 2000, Windows Server 2000, Windows Server 2003, Windows 98, Windows NT 4, Internet Explorer, Windows Vista, Windows XP, Windows 7, Microsoft SQL Server, Microsoft Access and Microsoft Excel are registered trademarks of Microsoft Corporation. All other products may be trademarks or registered trademarks of their respective companies.