APPX Server 4.1.5 Release Notes

  • Occasionally, switching applications ID's while using Application design could cause an "attempting to free freed memory" or "attempting to free unallocated memory" message. This has been corrected. (#2657, 2996, 3371)
  • Boxes now show as the proper color and font the first time they appear on a menu. (#5560)
  • After returning from using either opt-93 or opt-94 to drill into a child process in another application a memory corruption error could occur. This could also occur if any file level event points were defined for a file which was accessed in multiple databases within a given process family. The error would result in either a C-assert type message indicating a memory corruption or perhaps silently throw an exception to the stack dump. This has been corrected. (#5931)
  • A tokenized field which is also scannable will now display as a listbox with an
    associated scan indicator. (#5933)
  • A job containing more than one related or subprocess queries (either as direct children or as descendents of child jobs) where at least one of the query PCF files has file event points, no longer generates an "attempting to free freed memory" error near the end of the process. (#5936)
  • A few errors have been corrected which resulted in innocuous complaints from Purify. (#5937)
  • When embedding the java applet into a web page, you can control the color of the unused applet background so it more closely matches the rest of your web page. You do this with a new java applet parameter of "appletBg" and you set it to an HTML type hex color value. "#FFFFFF" would be white. (#5940)
  • When using the keyboard to select a value from a token type listbox control, you can now enter multiple characters of the value you would like. The listbox will search out the token value that matches the series of characters entered. The list will reselect token values as you type. The status area of the window will show you what characters you have typed. The backspace key will clear the entered characters from the search and restore the token value to what it was before the search. (#5941)
  • If you tried to pick a menu item from the right-click menu that happened to be on a pullout menu then appx would run the wrong process. This has been fixed. (#5944)
  • If you use Occurrence numbers on fields on the RHS of a QUERY Designer Selection (and presumably User Selection), the QUERY logfile indicates that occurrence# 1 is always used (rather than occurrence numbers coded >1). Data run thru the QUERY indicates that the field indexed by Occurrence>1 is using a variable value indexed by Occurrence=1 instead. This only occurred in cases where the constraint was used for an indexed Establish PCF Range event point (note - the designer would have to set the BEG AT/END AT flags manually in order for this error to occur). This has been corrected. (#5945)
  • When changing the value of a date field, you can press the delete key near the end of the field and then enter a new value. (#5947)
  • An APPX System Administrator typically does not have a Security Profile specified. If one is specified, it is honorod for all activities that are governed by a security profile. If a non existing profile was specified, it was ignored for an administrator. This has been changed. Now if a non existing profile is specified for an administrator, APPX will behave as if the profile granted no rights. (#5948)
  • If you declare a SAVEPNT and then try to ROLLBACK to that SAVEPNT, all changes no longer are rolled back. This was caused because the ROLLBACK (to savepoint) statement had an extra character (1) in front of the savepoint name. (#5949)
  • When accessing data stored in Oracle (and using primary key values to identify each row), you no longer receive a spurious error message "Invalid RID type" if Appx needs to recover a lost record lock. (#5950)
  • Oracle version 8.x servers seem to have a bug which manifests itself as occasional "ORA-01013 - user requested cancel of current operation" errors. This error (ORA-01013) is normally produced when one of the following occurs: 1) The user presses the Ctrl-C key (actually, the process receives a SIGINT) 2) The application (Appx) calls the OCIBreak() function to cancel an operation. Neither of these is happening - Oracle considers this a bug. To try to recover from this problem, the Appx/Oracle interface has been modified to retry a query operation if an ORA-01013 is encounterd. You can control the number of retries by setting the APPX CANCEL RETRIES environment variable to a number greater than 0. Important note - the default is 0 meaning that Appx will NOT retry queries which produced an ORA-01013 error. You must set APPX CANCEL RETRIES to a number greater than zero in order to force Appx to retry failed queries. (#5969)
  • A box widget now shows the border correctly when using an override label text, label font, and border color. (#5977)
  • The Java Client now paints the screen less often. This can enhance performance since drawing the screen components is the most expensive operation that occurs in a GUI application. (#5978)
  • When running a scrolling input process with a screen size of more than 21 rows, the outlines around each scrolling region is now drawn for all rows, including regions below row 21. (#5979)
  • TextArea, HtmlArea, RtfArea type widgets now honors the Micro Adjust settings. Also, the TextArea widget now honors Transparent Background, Font Style, and Background Color settings. (#5980)
  • When loading the Java Client via a browser, sometimes it is desirable to launch the client non-embedded but have control over removing the MenuBar and ToolBar and also be able to set the window title. This makes for a much cleaner look while preserving the information in the statusbar. This can now be done with the following new java client arguments. -hideMenubar=1, -hideToolbar=1, -title="Window Title Text". (#5981)
  • The java client interprets the meaning of the Enabled? widget specification to mean 'Y' as "Enable the widget", 'N' as "Disable the widget", and 'null' as "If the widget is not in the active frame, disable it". This causes problems with the use of the ENABLE and DISABLE ILF verbs. If you use ILF code to ENABLE and DISABLE a button widget, then when a child process is run, the button does not auto-disable since the Enable? widget spec was left in a 'Y' state. In this case, you are forced to read the widget record and manually set the Enabled? flag to 'null'. So, the clients understanding of this Enabled? flag is being changed to reflect the following new rules. A value of 'Y' will mean "Enable the widget if it is on the active frame", 'N' will mean "Disable the widget", and 'null' will mean "Disable the widget if it is not on the active frame". (#5984)
  • If you define a pulldown menu as optional child 222, the menu option will now run when selected. (#5985)
  • If you send a keyboard timeout value and start entering text into a text field, the keystrokes now reset the timer. (#5986)