APPX 3 release notes
Release notes for APPX 3.2 through 3.5.2, newest first. They were published on www.appx.com and moved here in October 2026. To move between releases, see
Upgrade paths. Every release is listed in the
Release history.
APPX 3.5.2
Important Notes
- These release notes are for patch level 3.5.2. Items fixed as part of patch 3.5.1 are marked in green and items fixed as part of patch 3.5.2 are marked in red. These are ECR #4421, #4438,#4439, #4443, #4421, #4490, #4491.
- This patch (3.5.2) contains important corrections relating to the treatment of partial date fields. You should review these release notes to understand the problems which are addressed by this patch.
- *** IMPORTANT UPGRADE NOTE *** If you are upgrading from a 3.4 version, you MUST remove ALL of the EM and DBG files for ALL applications, including the 00/0* applications.
- Some new Application Design Toolbox utilities have been added to do more analysis on design components of an application. These have been added to a Source Analysis Menu which can be found on the Toolbox menu from the Application Design menu. See related ECRs #2910, #3021.
- Some enhancements and changes have been made to the Application Locking rules APPX uses to allow application authors to lock their products. See related ECRs #3618, #4261, #4262, #4263, #4290.
- Tracking who has a record held is now a little easier. You have an option to track this by User ID. See related ECR #4281.
- Several Java Client enhancements and fixes have been made for this release. Some highlights are: ILF Syntax Coloring, Image Editor cleanup, Listboxes for Scans on Token fields, and more. See related ECRs #4264, #4265, #4272, #4276, #4334, #4335.
Run-time
- Under Unix, an "interrupt" signal (often mapped as Control-C) will allow cancellation of processes, for which "User Cancel OK?" is specified as "Y" in an OUTPUT or UPDATE's Additional Attributes. (#1952)
- APPX would accept a date of 00/00/00 but not treat it as blank (IE, if compared against a blank date in a query, it would not match). This would only occur when all fields of the date were 0's. If even one contained a valid month, day or year, APPX would not accept the entry. This has been corrected. You can no longer enter a date of all zeros. Note that this was accomplished with a change to the format of an EM so you MUST have a new EM for the fix to take effect.(#3684)
- The "Browsable" field on the Disposition screen has had it's help text made more descriptive.(#4087)
- When attempting to change Security Code Y/N flags across multiple Security Profiles, the Security Codes editor could silently fail to save changes on any profile after the first one edited. This has been corrrected. (#4196)
- When displaying a report to the screen, if you attempted to PAN beyond the left margin the display could unexpectedly end. This has been corrected. (#4252)
- You can now instruct AppxIO to track lock holders on a file-by-file or FMS Group basis. Include the text 'track locks' in an FMS control string and APPX will record extra information in the file whenever a record is locked. There is a performance penalty when you use this flag (two extra i/o operations per successful read w/ hold) so you may want to apply this flag selectively. The three character user-id will be displayed whenever Appx waits for than 10 seconds for a lock. Note that Appx will not wait for the PCF in an input process so you will not see the user-id in an input process unless you have an ILF READ,BEG READ, or READNEXT statement in the process. On Unix systems, you will still see a process ID if you don't use 'track locks'. There is no performance penalty for this. (#4281)
- APPX would give you a "Date Invalid" message, if you tried to blank out the contents of a date field that had a portion of its date masked out. For example, of you had a date stored as CC thru DD, with the Century masked out by a system or item date mask of "06/05/07" (excluding the 08 for "CC"), then the INPUT processor wouldn't allow you to erase a previously entered date.(#4301)
- When the connection is lost between an APPX client and server, the server could start consuming all available CPU time, and the client end would appear to hang. Under 3.5, when a client/server connection is lost, the server will exit (after releasing all locks and closing all files)(#4330)
- Sometimes, using the Oracle interface, you can coerce the operating system into starting up a second copy of APPX connected to your terminal. This has been corrected. (#4339)
- When using the AppxODBC driver from Visual Basic, the initialization function was being called more than once, resulting in poor performance. This has been corrected. (#4341)
- The Auto-commit flag is not properly set in the ODBC interface when connecting to MS SQL Server. To enable it you must set the APPX_ODBC_AUTOCOMMIT environment variable to '1' before running APPX. (#4345)
- While running a scrolling input process, if another user deletes your current record, and you switch modes from 'Inquire' to 'Change', you would receive an error message "Attempting to free freed memory", followed shortly by a hard crash. This has been corrected. (#4361)
- 3.5.1: The pivot logic added (probably in release 3.4) was not supposed to have an effect unless you define an APPX_PIVOT_YEAR. That was not the case, but has been corrected. 3.5.1: Also, the pivot logic has been changed so that IF and DATE BTW statements will pivot both operands if either operand is missing a century (but contain a year). The pivot logic is completely disabled by default. You must set APPX_PIVOT_YEAR to a value between 1 and 99 if you want dates to pivot. 3.5.2: The IF and DATE BTW statements will only pivot the operands if both operands contain a YY component. (#4421)
- As of 3.4 we have hardcoded a LOGIC 'Y' value in the ILF for the 0apps INPUT CHILD (OPT) process (and maybe other places). This does not let EMs compile when running in another language. This has been fixed so that EMs will build correctly. (#4438)
- If you run thru opt/99 or 4)Test Database, and get a runtime error in ILF (such as a zerodivide: "Error - Overflow Error"), the engine will take you to the offending ILF code, and give you the appropriate error message. Under 3.4, it would do this whether you had Application Designer (or System Administrator) rights, or not. Under 3.5, if you don't have Appl Designer or SysAdmin rights, it will give you the error message (at some point), but not display the ILF where the error occurred. This has now been fixed so that it works as it did in 3.4 (#4443)
Some users would like to be able to pivot input items without pivoting ILF code. Appx now supports this ability. If you want masked date items to pivot, you can set the environment variable APPX_PIVOT_ITEMS to a number between 1 and 99 (the value indicates which year to pivot around). If you want to pivot ILF statements, you must set the environment variable APPX_PIVOT_YEAR to a number between 1 and 99. Note that you can set *either* APPX_PIVOT_ITEMS or APPX_PIVOT_YEAR to pivot input items. APPX_PIVOT_YEAR controls ILF pivoting. (#4490)
The SET DAY command can return the incorrect day-of-week if you do not supply a century. Prior to release 3.5, SET DAY would assume a century of '19'. Release 3.5.1 assumed a century of '00' (unless you had APPX_PIVOT_YEAR defined, in which case the year would be pivoted to produce a century). With release 3.5.2, SET DAY will assume the *current* century (unless you have APPX_PIVOT_YEAR defined, in which case the year will be pivoted to produce a century). (#4491)
Designer
- If a Domain referenced by a Field had it's name changed (or the Domain was deleted), then any Fields which referred to that Domain would display a blank Domain name. This has been corrected. The invalid Domain name will be displayed, and an error reported if enter is pressed.(#2532)
- Some utilities to detect orphaned design elements have been added to APPX. These can be found in Application Design by going to "3-Utilities", "6-Toolbox", "20-Source Analysis Menu", "1-Orphan Detection". See the help text for more information. (#2910)
- "Verify All References" has been added. This will run a special version of Cross Reference All, but will only list design elements that are 1) Referenced but not defined or 2) Defined but not referenced. You can find this in "Application Design", "Toolbox", "Source Analysis Menu".(#3021)
- The "Security Profile Cross-Reference List", available from the "Security" Menu, now displays an explanation of and an optional child to archive the security codes. (#3084)
- When a field referred to a SAME AS Domain, the field's "Descriptive" and "Column Heading" fields were not being displayed. They now are displayed and editable if the domain's corresponding fields are empty. This is the same behavior that occurs if a field refers to a regular Domain.
When editing a SAME AS Domain, the "Descriptive" and "Column Heading" fields were not being displayed. They now are displayed, but protected since a SAME AS Domain is a local clone of a foreign domain.
When editing a SAME AS Domain, the "Add'l Attributes" option was incorrectly displaying. It has been made not applicable, since the values will be assumed from the foreign domain to which it refers. (#3107)
- When Application Locks, available from Application Parameters, are entered or changed, the application will now be automatically encrypted based on the new lock values. This feature is to provide software developers with the capability to restrict run-time and design access in the licensing of their APPX applications. (#3618)
- Restructuring a file no longer produces a Verify log. (#4150)
- Making any change to the "Token Table" for a Token field, or the "Validation Table" for an Alpha or Format field, did not update the Audit Information of the Field or the File. A corresponding change to a Domain, did not update the Audit Information of the Domain. This has been corrected. Audit Information (User & Date Added/Changed) are now updated in each of these cases. (#4206)
- When specifying a "Use Query" Process for a Child, APPX will now generate an error if the PCF of the query is not the same as the PCF of the Child. (#4238)
- Application Locks, available from Application Parameters, can now only be entered or changed if the specific lock is currently present and valid in the APPX system registration. Also, if the "Design Xfer Out" lock is not present and valid in the system registration, then none of the lock fields will be editable. Application Locks are used by software developers in the licensing of their APPX applications. (#4261)
- Design transfer out of an application that is locked with the "Design Xfer Out / Export" lock will now be permitted if the source and destination applications both have the same "Design Xfer Out" and "Application Design" locks.
Design transfer into an application that is locked with the "Design Xfer In / Import" lock will now be permitted if the source and destination applications both have the same "Design Xfer In", "Design Xfer Out" and "Application Design" locks.
This is part of a solution to provide software developers the capability to distribute patches to their APPX applications. (See also #4263) (#4262)
- The option, "Apply Patch With Design Transfer", has been added to the Design File Management Menu. This is part of a solution to provide software developers the capability to distribute patches to their APPX applications. (See also #4262) (#4263)
- A GOSUB statement that did not specify an application id would not be found by a Cross Reference of the subroutine process to which it referred. This has been corrected. GOSUB's will now be handled more intelligently by Cross Reference. If no matching LABEL is found in the event point, a GOSUB with a blank application id will be treated with an assumed id of the application in which it is found. Conversely, if a matching LABEL is found, a GOSUB with an application id specified will be treated with an assumed id of blank (and thus will not appear in Cross Reference results). (#4275)
- Cross Reference can fail to find ILF references that it should find if the references are in another application and the application has different application locks than the application you are currently in. This has been corrected. (#4284)
- Sometimes the interactive cross reference would not jump to the correct statement in the event point. This has been corrected. It should now initially position correctly. Note that if changes are made in the event point while still inside the interactive cross reference, subsequent attempts to jump to a statement in that event point may not position correctly until cross reference is rerun.(#4286)
- When encrypting an application, an ILF comment that went to the end of the line would lose the last two characters. This has been corrected. (#4290)
- Processing Data Dictionary work fields was updating the audit info date changed, but failed to update the user changed. This has been corrected. (#4293)
- The Cross Reference printed output now includes the Application Id for each reference. (#4300)
- When SCANing against a 0SA (System Administration) file, in order to access System Administration values in Read-Only mode, and your current application's version number was other than '00', the SCAN would fail. (#4332)
- On the Cross Reference printed output, for a Cross Reference All, the "*" indicating "Referenced but not defined" was incorrectly showing at times when it should not have been. This has been corrected. (#4333)
- A NAVIGATE API subroutine process has been added to Application Design. This is for developers who want to add "navigate" functionality to their applications. This is what is done by Interactive Cross Reference to "jump" to the design editor for a specific design component. See application 1EX/00, Subroutine, NAVIGATE API (EXAMPLE) for information. (#4346)
- You can now control which records will be included in a Dynamic Index by setting the field, --- INCLUDE RECORD, in the "Post PCF Read" event point. To allow the record to be included set the field to "Y", to exclude the record set the field to "N". (#4360)
- Several items were fixed regarding the "Security Profile Cross Reference List", which is available from the "Security" Menu.
- Security Codes below 1000 were not listed if they were entered with leading zeros.
- If multiple profiles were selected, the list would not start each one on a new page.
- Archiving security codes for all applications was not initializing the archive file (SECRARCV) prior to archiving.
- When editing a "Security Profile", the optional child to "View Uses of This Code" was not working properly if invoked multiple times within the same session. (#4375)
3.5.1: The pivot logic added (probably in release 3.4) was not supposed to have an effect unless you define an APPX_PIVOT_YEAR. That was not the case, but has been corrected. 3.5.1: Also, the pivot logic has been changed so that IF and DATE BTW statements will pivot both operands if either operand is missing a century (but contain a year). The pivot logic is completely disabled by default. You must set APPX_PIVOT_YEAR to a value between 1 and 99 if you want dates to pivot. 3.5.2: The IF and DATE BTW statements will only pivot the operands if both operands contain a YY component. (#4421)
In some instances, it is possible to receive a "You are not licensed for more designers" in error. This can happen starting with 3.5 when a designer session aborts without ending normally. It does not happen all the time - only in very unusual circumstances. Release 3.5.1 does not count ghost processes when determining license usage. (#4439)
Enhancement
- When defining a File System Group's FMS Path, you can now specify explicit directory locations and redefine filenames. Previously, APPX only allowed entry of the physical location of a tree starting-point, from which the location of the actual datafile is derived.
If the FMS Path attribute contains a "$", the explicit directory/filename is used. If there is no "$" in the Path specification, the original tree starting-point scheme is used.
You can also use these variables in Database Mgmt File Spec's "Optional Path", and in the "EM=" clause of an FMS control string (to redirect EMs):
- $(root) APPXPATH
- $(ap) application Id
- $(type) {Data, Struct, ...}
- $(uid) 3 char APPX UserID
- $(ver) version
- $(engine) (ex: "3.5")
- $(user) OS user name
- $(db) database
- $(endian) 'risc' or 'intel'
- $(pid) OS process ID
- $(file) 8 char filename
- $(host) hostname (IP Addr)
- $(scope) stack depth
(#2032)
External
- The environment variable "APPX 0SA PATH" (used to redirect the location in which APPX looks for $APPXPATH/0SA System-Administration files) now works in Unix versions of APPX. (See related ECR #3386.) (#3456)
- A syntax error in the appx submit script could cause an error about "NICENESS" when submitting a background job. This has been corrected. (#4146)
- Performing a CALL to ,RT IMPORT CGIDATA in a process could cause the process to seg fault, if run normally rather than by a web server. (#4266)
- The APPX license server was performing two functions that may cause record locking problems and therefore USAGE file corruption problems. Every few minutes it would wake up and (among other things) validate the USAGE file and clean up "ghost" entries. A "ghost" is a record of a process which no longer exists and which did not clean up after itself properly. These steps are also occuring every time a new license is acquired or forfeited, so performing them in the license server is redundant. These two functions can be re-enabled by defining the following environment variables.
- APPX_LS_GHOSTS
- APPX_LS_VALIDATE
(#4323)
- If your installation is licensed for the Extended Documentation Facility, an option for it can now be made available on the Documentation Management Menu. (#4326)
RDBMS
- Restructuring a file which was stored as an Oracle table, could result in the failure to create indexes. This has been corrected. (#4191)
- When using 3rd party RDBMS backends (Oracle, Sybase, SQL Server), you have greater control over how APPX stores null (or blank) dates within the RDBMS. See ECR #4321 for a detailed explanation of the new APPX_RDBMS_NDK environment variable and how it is used.(#4321)
GUI Client
- The ILF Rules buttons were not showing BOLD nor completely covering the option numbers on the screen. (#4264)
- Fixes to the Java Client ILF Editor:
- Buttons did not show correctly on the bottom line of the editor.
- The font was changed to fixed pitch.
- "===" is no longer changed into 3D bars.
- The Search and Search/Replace fields are now visible.
- Syntax is now color coded.
(#4265)
- Typing in the Java client drew vertical black lines between each character typed. This has been corrected. (#4272)
- The Java Client's IMAGE editor has been cleaned up. (#4276)
- The Java Client should have an About dialog box to show some important information like the current Java Client version and the server process id. (#4334)
- The Java Client should present a SCAN on a token field as a dropdown listbox. (#4335)
APPX 3.5
Important Notes
- These release notes are for patch level 3.5.2. Items fixed as part of patch 3.5.1 are marked in green and items fixed as part of patch 3.5.2 are marked in red. These are ECR #4421, #4438, #4439, #4443, #4421, #4490, #4491.
- This patch (3.5.2) contains important corrections relating to the treatment of partial date fields. You should review these release notes to understand the problems which are addressed by this patch.
- *** IMPORTANT UPGRADE NOTE *** If you are upgrading from a 3.4 version, you MUST remove ALL of the EM and DBG files for ALL applications, including the 00/0* applications.
- Some new Application Design Toolbox utilities have been added to do more analysis on design components of an application. These have been added to a Source Analysis Menu which can be found on the Toolbox menu from the Application Design menu. See related ECRs #2910, #3021.
- Some enhancements and changes have been made to the Application Locking rules APPX uses to allow application authors to lock their products. See related ECRs #3618, #4261, #4262, #4263, #4290.
- Tracking who has a record held is now a little easier. You have an option to track this by User ID. See related ECR #4281.
- Several Java Client enhancements and fixes have been made for this release. Some highlights are: ILF Syntax Coloring, Image Editor cleanup, Listboxes for Scans on Token fields, and more. See related ECRs #4264, #4265, #4272, #4276, #4334, #4335.
Run-time
- Under Unix, an "interrupt" signal (often mapped as Control-C) will allow cancellation of processes, for which "User Cancel OK?" is specified as "Y" in an OUTPUT or UPDATE's Additional Attributes. (#1952)
- APPX would accept a date of 00/00/00 but not treat it as blank (IE, if compared against a blank date in a query, it would not match). This would only occur when all fields of the date were 0's. If even one contained a valid month, day or year, APPX would not accept the entry. This has been corrected. You can no longer enter a date of all zeros. Note that this was accomplished with a change to the format of an EM so you MUST have a new EM for the fix to take effect. (#3684)
- The "Browsable" field on the Disposition screen has had it's help text made more descriptive. (#4087)
- When attempting to change Security Code Y/N flags across multiple Security Profiles, the Security Codes editor could silently fail to save changes on any profile after the first one edited. This has been corrrected. (#4196)
- When displaying a report to the screen, if you attempted to PAN beyond the left margin the display could unexpectedly end. This has been corrected. (#4252)
- You can now instruct AppxIO to track lock holders on a file-by-file or FMS Group basis. Include the text 'track locks' in an FMS control string and APPX will record extra information in the file whenever a record is locked. There is a performance penalty when you use this flag (two extra i/o operations per successful read w/ hold) so you may want to apply this flag selectively. The three character user-id will be displayed whenever Appx waits for than 10 seconds for a lock. Note that Appx will not wait for the PCF in an input process so you will not see the user-id in an input process unless you have an ILF READ,BEG READ, or READNEXT statement in the process. On Unix systems, you will still see a process ID if you don't use 'track locks'. There is no performance penalty for this. (#4281)
- APPX would give you a "Date Invalid" message, if you tried to blank out the contents of a date field that had a portion of its date masked out. For example, of you had a date stored as CC thru DD, with the Century masked out by a system or item date mask of "06/05/07" (excluding the 08 for "CC"), then the INPUT processor wouldn't allow you to erase a previously entered date. (#4301)
- When the connection is lost between an APPX client and server, the server could start consuming all available CPU time, and the client end would appear to hang. Under 3.5, when a client/server connection is lost, the server will exit (after releasing all locks and closing all files) (#4330)
- Sometimes, using the Oracle interface, you can coerce the operating system into starting up a second copy of APPX connected to your terminal. This has been corrected. (#4339)
- When using the AppxODBC driver from Visual Basic, the initialization function was being called more than once, resulting in poor performance. This has been corrected. (#4341)
- The Auto-commit flag is not properly set in the ODBC interface when connecting to MS SQL Server. To enable it you must set the APPX_ODBC_AUTOCOMMIT environment variable to '1' before running APPX. (#4345)
- While running a scrolling input process, if another user deletes your current record, and you switch modes from 'Inquire' to 'Change', you would receive an error message "Attempting to free freed memory", followed shortly by a hard crash. This has been corrected. (#4361)
- 3.5.1: The pivot logic added (probably in release 3.4) was not supposed to have an effect unless you define an APPX_PIVOT_YEAR. That was not the case, but has been corrected. 3.5.1: Also, the pivot logic has been changed so that IF and DATE BTW statements will pivot both operands if either operand is missing a century (but contain a year). The pivot logic is completely disabled by default. You must set APPX_PIVOT_YEAR to a value between 1 and 99 if you want dates to pivot. 3.5.2: The IF and DATE BTW statements will only pivot the operands if both operands contain a YY component. (#4421)
- As of 3.4 we have hardcoded a LOGIC 'Y' value in the ILF for the 0apps INPUT CHILD (OPT) process (and maybe other places). This does not let EMs compile when running in another language. This has been fixed so that EMs will build correctly. (#4438)
- If you run thru opt/99 or 4)Test Database, and get a runtime error in ILF (such as a zerodivide: "Error - Overflow Error"), the engine will take you to the offending ILF code, and give you the appropriate error message. Under 3.4, it would do this whether you had Application Designer (or System Administrator) rights, or not. Under 3.5, if you don't have Appl Designer or SysAdmin rights, it will give you the error message (at some point), but not display the ILF where the error occurred. This has now been fixed so that it works as it did in 3.4 (#4443)
Some users would like to be able to pivot input items without pivoting ILF code. Appx now supports this ability. If you want masked date items to pivot, you can set the environment variable APPX_PIVOT_ITEMS to a number between 1 and 99 (the value indicates which year to pivot around). If you want to pivot ILF statements, you must set the environment variable APPX_PIVOT_YEAR to a number between 1 and 99. Note that you can set *either* APPX_PIVOT_ITEMS or APPX_PIVOT_YEAR to pivot input items. APPX_PIVOT_YEAR controls ILF pivoting. (#4490)
The SET DAY command can return the incorrect day-of-week if you do not supply a century. Prior to release 3.5, SET DAY would assume a century of '19'. Release 3.5.1 assumed a century of '00' (unless you had APPX_PIVOT_YEAR defined, in which case the year would be pivoted to produce a century). With release 3.5.2, SET DAY will assume the *current* century (unless you have APPX_PIVOT_YEAR defined, in which case the year will be pivoted to produce a century). (#4491)
Designer
- If a Domain referenced by a Field had it's name changed (or the Domain was deleted), then any Fields which referred to that Domain would display a blank Domain name. This has been corrected. The invalid Domain name will be displayed, and an error reported if enter is pressed. (#2532)
- Some utilities to detect orphaned design elements have been added to APPX. These can be found in Application Design by going to "3-Utilities", "6-Toolbox", "20-Source Analysis Menu", "1-Orphan Detection". See the help text for more information. (#2910)
- "Verify All References" has been added. This will run a special version of Cross Reference All, but will only list design elements that are 1) Referenced but not defined or 2) Defined but not referenced. You can find this in "Application Design", "Toolbox", "Source Analysis Menu". (#3021)
- The "Security Profile Cross-Reference List", available from the "Security" Menu, now displays an explanation of and an optional child to archive the security codes. (#3084)
- When a field referred to a SAME AS Domain, the field's "Descriptive" and "Column Heading" fields were not being displayed. They now are displayed and editable if the domain's corresponding fields are empty. This is the same behavior that occurs if a field refers to a regular Domain.
When editing a SAME AS Domain, the "Descriptive" and "Column Heading" fields were not being displayed. They now are displayed, but protected since a SAME AS Domain is a local clone of a foreign domain.
When editing a SAME AS Domain, the "Add'l Attributes" option was incorrectly displaying. It has been made not applicable, since the values will be assumed from the foreign domain to which it refers. (#3107)
- When Application Locks, available from Application Parameters, are entered or changed, the application will now be automatically encrypted based on the new lock values. This feature is to provide software developers with the capability to restrict run-time and design access in the licensing of their APPX applications. (#3618)
- Restructuring a file no longer produces a Verify log. (#4150)
- Making any change to the "Token Table" for a Token field, or the "Validation Table" for an Alpha or Format field, did not update the Audit Information of the Field or the File. A corresponding change to a Domain, did not update the Audit Information of the Domain. This has been corrected. Audit Information (User & Date Added/Changed) are now updated in each of these cases. (#4206)
- When specifying a "Use Query" Process for a Child, APPX will now generate an error if the PCF of the query is not the same as the PCF of the Child. (#4238)
- Application Locks, available from Application Parameters, can now only be entered or changed if the specific lock is currently present and valid in the APPX system registration. Also, if the "Design Xfer Out" lock is not present and valid in the system registration, then none of the lock fields will be editable. Application Locks are used by software developers in the licensing of their APPX applications. (#4261)
- Design transfer out of an application that is locked with the "Design Xfer Out / Export" lock will now be permitted if the source and destination applications both have the same "Design Xfer Out" and "Application Design" locks.
Design transfer into an application that is locked with the "Design Xfer In / Import" lock will now be permitted if the source and destination applications both have the same "Design Xfer In", "Design Xfer Out" and "Application Design" locks.
This is part of a solution to provide software developers the capability to distribute patches to their APPX applications. (See also #4263) (#4262)
- The option, "Apply Patch With Design Transfer", has been added to the Design File Management Menu. This is part of a solution to provide software developers the capability to distribute patches to their APPX applications. (See also #4262) (#4263)
- A GOSUB statement that did not specify an application id would not be found by a Cross Reference of the subroutine process to which it referred. This has been corrected. GOSUB's will now be handled more intelligently by Cross Reference. If no matching LABEL is found in the event point, a GOSUB with a blank application id will be treated with an assumed id of the application in which it is found. Conversely, if a matching LABEL is found, a GOSUB with an application id specified will be treated with an assumed id of blank (and thus will not appear in Cross Reference results). (#4275)
- Cross Reference can fail to find ILF references that it should find if the references are in another application and the application has different application locks than the application you are currently in. This has been corrected. (#4284)
- Sometimes the interactive cross reference would not jump to the correct statement in the event point. This has been corrected. It should now initially position correctly. Note that if changes are made in the event point while still inside the interactive cross reference, subsequent attempts to jump to a statement in that event point may not position correctly until cross reference is rerun. (#4286)
- When encrypting an application, an ILF comment that went to the end of the line would lose the last two characters. This has been corrected. (#4290)
- Processing Data Dictionary work fields was updating the audit info date changed, but failed to update the user changed. This has been corrected. (#4293)
- The Cross Reference printed output now includes the Application Id for each reference. (#4300)
- When SCANing against a 0SA (System Administration) file, in order to access System Administration values in Read-Only mode, and your current application's version number was other than '00', the SCAN would fail. (#4332)
- On the Cross Reference printed output, for a Cross Reference All, the "*" indicating "Referenced but not defined" was incorrectly showing at times when it should not have been. This has been corrected. (#4333)
- A NAVIGATE API subroutine process has been added to Application Design. This is for developers who want to add "navigate" functionality to their applications. This is what is done by Interactive Cross Reference to "jump" to the design editor for a specific design component. See application 1EX/00, Subroutine, NAVIGATE API (EXAMPLE) for information. (#4346)
- You can now control which records will be included in a Dynamic Index by setting the field, --- INCLUDE RECORD, in the "Post PCF Read" event point. To allow the record to be included set the field to "Y", to exclude the record set the field to "N". (#4360)
- Several items were fixed regarding the "Security Profile Cross Reference List", which is available from the "Security" Menu.
- Security Codes below 1000 were not listed if they were entered with leading zeros.
- If multiple profiles were selected, the list would not start each one on a new page.
- Archiving security codes for all applications was not initializing the archive file (SECRARCV) prior to archiving.
- When editing a "Security Profile", the optional child to "View Uses of This Code" was not working properly if invoked multiple times within the same session. (#4375)
3.5.1: The pivot logic added (probably in release 3.4) was not supposed to have an effect unless you define an APPX_PIVOT_YEAR. That was not the case, but has been corrected. 3.5.1: Also, the pivot logic has been changed so that IF and DATE BTW statements will pivot both operands if either operand is missing a century (but contain a year). The pivot logic is completely disabled by default. You must set APPX_PIVOT_YEAR to a value between 1 and 99 if you want dates to pivot. 3.5.2: The IF and DATE BTW statements will only pivot the operands if both operands contain a YY component. (#4421)
In some instances, it is possible to receive a "You are not licensed for more designers" in error. This can happen starting with 3.5 when a designer session aborts without ending normally. It does not happen all the time - only in very unusual circumstances. Release 3.5.1 does not count ghost processes when determining license usage. (#4439)
Enhancement
- When defining a File System Group's FMS Path, you can now specify explicit directory locations and redefine filenames. Previously, APPX only allowed entry of the physical location of a tree starting-point, from which the location of the actual datafile is derived.
If the FMS Path attribute contains a "$", the explicit directory/filename is used. If there is no "$" in the Path specification, the original tree starting-point scheme is used.
You can also use these variables in Database Mgmt File Spec's "Optional Path", and in the "EM=" clause of an FMS control string (to redirect EMs):
- $(root) APPXPATH
- $(ap) application Id
- $(type) {Data, Struct, ...}
- $(uid) 3 char APPX UserID
- $(ver) version
- $(engine) (ex: "3.5")
- $(user) OS user name
- $(db) database
- $(endian) 'risc' or 'intel'
- $(pid) OS process ID
- $(file) 8 char filename
- $(host) hostname (IP Addr)
- $(scope) stack depth
(#2032)
External
- The environment variable "APPX 0SA PATH" (used to redirect the location in which APPX looks for $APPXPATH/0SA System-Administration files) now works in Unix versions of APPX. (See related ECR #3386.) (#3456)
- A syntax error in the appx submit script could cause an error about "NICENESS" when submitting a background job. This has been corrected. (#4146)
- Performing a CALL to ,RT IMPORT CGIDATA in a process could cause the process to seg fault, if run normally rather than by a web server. (#4266)
- The APPX license server was performing two functions that may cause record locking problems and therefore USAGE file corruption problems. Every few minutes it would wake up and (among other things) validate the USAGE file and clean up "ghost" entries. A "ghost" is a record of a process which no longer exists and which did not clean up after itself properly. These steps are also occuring every time a new license is acquired or forfeited, so performing them in the license server is redundant. These two functions can be re-enabled by defining the following environment variables.
- APPX_LS_GHOSTS
- APPX_LS_VALIDATE
(#4323)
- If your installation is licensed for the Extended Documentation Facility, an option for it can now be made available on the Documentation Management Menu. (#4326)
RDBMS
- Restructuring a file which was stored as an Oracle table, could result in the failure to create indexes. This has been corrected. (#4191)
- When using 3rd party RDBMS backends (Oracle, Sybase, SQL Server), you have greater control over how APPX stores null (or blank) dates within the RDBMS. See ECR #4321 for a detailed explanation of the new APPX_RDBMS_NDK environment variable and how it is used. (#4321)
GUI Client
- The ILF Rules buttons were not showing BOLD nor completely covering the option numbers on the screen. (#4264)
- Fixes to the Java Client ILF Editor:
- Buttons did not show correctly on the bottom line of the editor.
- The font was changed to fixed pitch.
- "===" is no longer changed into 3D bars.
- The Search and Search/Replace fields are now visible.
- Syntax is now color coded.
(#4265)
- Typing in the Java client drew vertical black lines between each character typed. This has been corrected. (#4272)
- The Java Client's IMAGE editor has been cleaned up. (#4276)
- The Java Client should have an About dialog box to show some important information like the current Java Client version and the server process id. (#4334)
- The Java Client should present a SCAN on a token field as a dropdown listbox. (#4335)
APPX 3.4
Run-time
- On a scrolling INPUT process, the user can "fill up" the last field in the current scrolling record. In APPX for Windows®, the cursor then moves forward out of the current scrolling item's IMAGE area. When the user then presses ENTER (or an optional child), any edit changes to the current record will be inadvertently lost. This has been corrected in 3.4 under the JAVA Presentation Client. This behavior remains in 3.4 under the Windows Presentation Client, and non-Presentation APPX for Windows. (#3194)
- The subroutines to allow programmatic setting of an application's "Operational Phase" did not work properly in 3.3 due to a mis-coded PASS statement. Similarly, panning capabilities could be lost after having used the print on screen feature. Both problems have been corrected. (#4045)
- Copyright dates have been updated on all screens. (#4055)
- An APPX registration can now be created as an "Application Server". This is a lower cost registration that is limited to execution of locked applications with less then 50 files. (#4129)
- In a new installation, on the first execution APPX will now automatically create the system administration files, and add a record for the installer to the User file. These actions will be logged to the file APPXINS?.log in the APPX print file directory. (#4131)
- The Windows version of APPX will now intercept "General Protection Faults" and display a message to the user rather than crashing back to the operating system. (#4132)
- Appx now implements an ODBC driver so that Appx can act as a data source for ODBC clients. (#4134)
- Using the Appx RDBMS interfaces (under release 3.3 only), inappropriate duplicate records could get returned when end-of-file was encountered. This has been corrected. (#4136)
Designer
- If you changed a process name and pressed option-1 to go into the toolbox to add some documentation, when you returned to the process it's components (ILF code, frames, images, etc.) could be lost. Also simply changing the name of a menu process would result in the position and size information to be incorrectly replaced. Both problems have been corrected. (#2983)
- Multi-occurrence "substring" fields are now definable in the APPX data dictionary. (#3207)
- After doing a Change All References, Application Ids, in an application that was just design transferred all from another app, the 'Substring of' field for SUBSTRING fields, the 'Synonym of' field for SYNONYM fields, and the 'Thru field name' for GROUP HEADERS was incorrectly cleared. This was fixed in a prior release of APPX but failed to make it into the release notes. (#3288)
- The Cross-Reference feature has been expanded so that multiple applications can be searched. Applications to be searched can be specified by accessing the "Define Applications to Search" option on the "Cross Reference Options" screen. (#3479)
- Design files could remain open after exiting Application Design. This has been corrected. (#3521)
- When you encountered a compile time error during developement, and you 'drilled down' to the offending line & fixed it, then returned & continued development/testing, APPX would not stop at any more TRAP statements. This has been corrected. (#3689)
- The "Toolbox" utility, "Comma Delimited Update" can now generate code to handle multiple occurrences of fields. (#3799)
- The interactive browsing option when doing a cross reference was not navigating properly when the hit was found in an inquiry process. This has been corrected. (#4015)
- In the Y2K application, using the option to limit the cross reference to ILF statements where a date field is interacting with a non-date field, some extraneous statements were showing up. This was when a field outside of the source application was involved and that field referred to a domain. This was corrected in release 1.1 of the Y2K application and distributed with APPX 3.4. (#4060)
- When you generated a standard output from the toolbox menu, the image size was incorrectly being set on the RECORD frame. It is now correctly being left blank, thus defaulting to the size of the frame. (#4062)
- On the main Application Design screen, if an invalid application id is entered, an option will be given allowing the application record and the design files to be created. Similarly, if design files are missing, options will be given allowing design files to be managed or created without having to exit Application Design and go to System Administration. These options will function only for APPX System Administrators. (#4064)
- In System Administration, Applications File Maintenance now provides access to Design File Management as a child process. Similarly, under Databases, Related Applications provides access to Database File Management. (#4065)
- Incorrect results could occur in data dictionary fields after running Change All References and changing the App Id to a new value if the App Id being changed was the application you were currently in. Using Change All References to change the App Id of the source application has been prohibited. See the help text of the "From App Id" field for more information. (#4089)
- On the Interactive Cross Reference screen an additional access key has been defined. The results can now be accessed by item searched for (the default key) or by where the reference was found. Accessing by the default key also remedies an earlier problem of the results not always being sorted properly. (#4107)
- Beginning around release 3.2.5, adding a token field could result in the unnecessary error message, "Error - Record Has Been Modified by Another User or Stream". This has been corrected. (#4119)
- The APPX 0-apps (0AD, 0DB, 0LA, and 0SA) will now be shipped as full applications as part of the APPX release. All source code will be shipped, but the 0-apps will be design locked. (#4135)
- ILF Verbs (BEG READ, READNEXT, BLINK, etc), along with embedded literal text (such as HOLD, FAIL, STORE AREA) can now be translated using the --- MESSAGE file. (#4138)
- As of 3.2, the 3)Utilities, 3)Design Transfer, "4)Transfer All" utility would Merge selected design elements (Data Dictionary and Processes) into the current application, individually deleting and replacing design elements inbound from the source application. The HELP text and on-screen explanatory text incorrectly stated that the destination application was initialized, and/or that design elements already on file would not be replaced. The HELP and on-screen text have been corrected to indicate that "Transfer All" is a true Merge. (#4156)
- The "Verify Integrity of UNIXIO Files" utility new in 3.3 no longer gives false-negatives. (#4184)
- Scanning for a token value in the ILF editor, no longer ignores your selection. (#4192)
External
- APPX no longer uses shared memory or semaphores. This removes the need for the semaphore undo workarounds. (#4023)
- Authorized application authors can now be given access to generate their own product registrations on the APPX web site. Contact APPX for information on how to get set up for this. (#4044)
- An import menu has been added to the System Registration screen to allow new and updated registrations to be imported rather than having to be typed. (#4061)
- The version of appx print being distributed with release 3.3 reverted to a June'95 version of appx print (9998 bytes). The 'production' version as of 3.3 should have been 10977 bytes, and is stored in hendrix:./home/ftp/misc/. The version for APPX release 3.4 should be 11597 bytes, stored in the same directory. (See ECR #4123.) (#4122)
- If the APPX Presentation Server is installed with the appxd daemon not owned by root, or the u+s bit not set, it can appear to work, but OUTPUTs submitted by users coming in thru Presentation Client can inexplicably not print. We have put additional diagnostics in 'appx print' to detect this condition. (#4123)
- In the Y2K application, "Field Cross Reference" has been enhanced to include two enhancements made to APPX Interactive Cross Reference: (1) searching across applications (ECR #3479), and (2) additional access keys (ECR #4107). This is version 1.2 of the Y2K application. It is shipped with APPX 3.4 and requires APPX 3.4 or higher. (#4124)
GUI Client
- Users running the APPX GUI client against the winappxd.exe APPX Presentation Server sometimes get DLL initialization errors, on USER32.DLL. 3.4's winappxd fixes all known resource leaks, which should prevent this from happening. (#3688)
- The Java Client login process now displays messages during the login phase to let the user know what is happening. (#4072)
- Setting ForeGround and Background colours in Menu processes now controls the colors used by the Java Client. (#4076)
- Upgraded current Java Client code from the JDK 1.0 standard to the JDK 1.1.5 standard. This provides a much stronger and more stable runtime platform as well as the ability to add new functionality more quickly using the Sun Java Foundation Classes (JFC) also code named Swing. Some initial new features gained include Tooltips, User Selectable LookAndFeel, Scan buttons on scannable fields, designer selectable screen color overrides, report viewing toolbar, and more. (#4198)
Patch 3.4.1 Changes
- If your system-wide or application level date mask includes a 'CC' (century) portion, Standard Page Headings for reports will now include the century. You can also set the APPX STD PGH MASK environment variable to a valid date mask to override all other date masks. This environment variable only affects Standard Page Headings. (#3887/#3957)
- In 3.4.0, an INPUT process with a modifiable / Invisible item (for example a password) could cause a loop, not permitting the user to get past the screen. (#4213)
- Some characteristics (such as the title bar at the top of the main menu) were lost in the Windows GUI client under release 3.4.0. (#4219)
- The first record added to an AppxODBC database was not visible to MS Access' Jet engine. The first record added to an AppxODBC database was not visible to MS Access' Jet engine. (#4220)
- When overlaying 3.4 on top of 3.3, some 3.3 0-app EMs were inadvertently not getting rebuilt, when running 0-app processes for the first time. (#4225)
- You can now select 0AD, 0DB, 0LA, 0SA, and SQL in Design File management. This allows you to build all of the executable modules for each of these applications. (#4237)
- In release 3.4, TRAP statements were enabled through Select Database if a designer first selected an application in Application Design. (#4248)
- BROWSE mode (option 33 in output processes) are now supported for version other than '00'. Also, if the file being browsed does not have a default input process, the browse request is ignored (it produced a unrecoverable error prior to release 3.4.1). (#4249)
- There is now an entry in the VERSION file for "Engine Version". (#4254)
- The Java Client has a new login dialog box that allows connections to a local copy of APPX as well as a remote server.
- The Java Client image loader has been improved so that it now loads and displays images much faster.
- The Java Client should now connect much faster to a local copy of APPX. The previous version sometimes had to wait for the nameserver to timeout before connecting.
- The Java Client will now load the toolbar images directly from the JAR file when run as a standalone application (outside of a web browser window).
- The Java Client will now correctly position images exactly over the text area they are suppose to cover. In the prior version, they were off by 2 pixels.
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.
APPX 3.3
Important Notes
-
The FMS Types for relational databases have changed - please see ECR #3121.
-
This release adds support for Dynamic Indexes - please see ECR #3845.
-
The VERIFY statement has been added to verify the contents of a file, record, or field - see ECR #1050.
-
Appx now supports dynamic linking on all platforms. You can now add functions to Appx without having to relink. Static linking is still supported but you should plan on changing to dynamic linking (it's much easier). See the man pages for 'dlopen' ( or 'shl load' under HPUX ) for information or how to construct code which can be dynamically linked.
-
Appx nows comes prelinked for RDBMS support. This means that you should not have to link a new engine just to talk to an RDBMS. The prelinked engine is called appx.prelinked and has been linked to the following
- Oracle for HPUX, Unixware, and Solaris.
- Sybase for HPUX and Solaris.
- ODBC for Windows®.
-
This release includes some tools which you may find helpful in Year-2000 conversion efforts.
-
This release includes the first version (1.0) of our new Java Client for APPX - please see ECR #4013.
-
APPX would like to thank a select group of beta testers that put in an extra effort to help us test this release.
- Cesar A. Williams, Intermark Systems
- Mohan, CAYLX Europe
- SWS EDV Software Service GmbH
- Tom Plassman, Worthington Schools
Run-time
- Pseudo-blanks are no longer displayed when an item is non-modifiable. (# 35)
- If you have a FORMAT field as a record selection criteria in a QUERY, APPX runtime produces an incorrect subset of records that are supposed to pass the Record Selection Criteria. (It's possible to get a "No Lines Were Output" for OUTPUTs that use QUERYs with Record-Selection on a FORMAT field.) This has been fixed for release 3.3.0 (#2408)
- If the designer specifies no End User or Designer Selections when building a QUERY which runs in foreground, then the background processes following and using this QUERY fail (silently, to the end user) because APPX can't open all the QUERY files. This has been fixed for release 3.3.0 (#2463)
- APPX now correctly sorts negative numbers. (#2537)
- If a file contains a field with a data lookup defined to a non-existent field, and that file is used as the PCF for an output process, the output will generate a compile time error. The error message generated was "Element Record Not Found", and was not helpful in diagnosing the problem. This error message has been changed to "Invalid Data Lookup specifications - Source Missing". If option-2, "View Error Detail" is then selected, the offending field name is identified. (#2551)
- If SCAN statements were coded for the same field to more than one file, APPX was only permitting one file to actually be scanned. This has been corrected. There remains, however, a limit of four files that can be scanned in this manner. (#2976)
- The presence of a "group character" (",") in the mask of a numeric field in an input process was sometimes causing the decimal positons of the number to be corrupted. This has been corrected. (#3038)
- Automatic Data Lookups now include the file descriptive from the data dictionary. Instead of getting an error message "Not on File", APPX will now generate a "Customer Not on File" message. (#3213)
- A parent record which is protected from deletion by a "Delete Protect" field could still have child records deleted. This has been corrected. (#3269)
- The "View Disposition" screen, accessible as option-1 while viewing a report on screen, will no longer give the incorrect error message that print mode of "HOLD is not valid on Unix Systems". (#3701)
- DATE ADD operations upon a date of 12/30/99 were sometimes returning incorrect results. This has been corrected. (#3745)
- On "Record Selection" screen, when executing a query, the editability of the relational operator and the right hand field will be respected for initial positioning of the cursor. The Option-2, "Value/Blank" would occasionally not function on certain selection lines. This has been fixed. (#3754)
- When doing division operations with the CALC statement, incorrect overflow errors could occur if a large number (10 or more) of decimal positions were necessary. This has been corrected. The CALC and COMPUTE statements now share similar division logic. (#3777)
- In input processes ERROR and WARNING statements are now suppressed in inquire mode. (#3786)
- Some occurrences of the error "RT.C.3009 - Bad scan read" have been cleaned up and will no longer occur. (#3791)
- APPX 3.3 includes a dynamic key feature. A user can create a new key path in any input process at runtime. When the process is NOT in key entry mode, you can position the cursor to a field and press the SELECT ACCESS PATH option. That field will then be added to the dynamic key and a message in the status area will indicate this. Pressing SELECT ACCESS PATH again on this field will toggle the key to descending order for this field. You can build up a multi-field key by repeating this process on multiple fields. The dynamic key is built the next time a record is read from the PCF. It's a good idea to go into key entry mode after selecting the fields. The dynamic key will not reflect records added by another user after the key was built - you can rebuild the dynamic key if you need an up-to-date view. You can also programmatically build a dynamic key. See the text of this ECR on the APPX website or contact APPX for details. (#3845)
- When an error log is produced (from an Update process) the contents of the primary key of the PCF record are included on the report. If the primary key contains tokenized fields, the tokens could contain garbage characters (or incorrect tokens). This has been corrected. (#3854)
- If you execute multiple SCAN statements in Option Intercept and the sources are different, the SCAN can return garbage and can return that garbage in the wrong field. This has been corrected. (#3858)
- The print on screen display has been expanded. It can now display up to 36 print lines per screen (the old maximum was 20). To take advantage of this you have to set your terminal (or terminal emulator) to display more than the default of 24 lines. Many other APPX screens (including process editors and ILF editor) will utilize a taller terminal window also. See text of ECR #3298 for more information. (#3864)
- A "Browsable" feature has been added to the print on screen display. When running a report, answer "Y" to the disposition fields "Display on Screen" and "Browsable". Then when the report is displayed to the screen, you can position your cursor to a record and press Option-33. APPX will then invoke the "default process" for the output's PCF file and position to the record that your cursor was on. (#3866)
- SCROLL DOWN is now disallowed in Add Mode. This eliminates an improperly handled error condition which could result in a crash on some platforms. (#3934)
Designer
- Data File Management, Design File Management, and System Administration File Management have been modified to allow you to verify the contents of a file. You can verify the contents of each record (against the data dictionary constraints) as well as verifying the file structure itself. Note that you can also see the actual pathname of AppxIO files as well as a count of the number of records currently in the file. There is also a new VERIFY statement which can verify the contents of a field or a record. (#1050)
- You can CANCEL a restructure using the asynchrounous CANCEL key (usually Ctrl-C) and the restructure will CANCEL gracefully. (#1193)
- You can now scan for process names in the COPY and GOSUB statements (#1913)
- CANCEL during restructure now cleans up after itself. (#2077)
- A "Verify Files Menu" has been added in the following places: "Database Management", Design File Management", and "System Administration File Management". It provides access to two options: 1) Verify Integrity of UNIXIO Files: For permanent UNIXIO files, this will verify the file's integrity and display the record count and the pathname. 2) Verify Data in Files: Verifies the field contents in each record, and can optionally verify referential integrity according to "data lookups" defined in the data dictionary. See the help text of each option for more information. (#2226)
- A second invocation of Synchronize Design Elements has been added to the job that converts design files from 1.8 format. It has been reported that this corrects some problems with converted query processes. (#2552)
- In "Database Management" if you selected several files then ran "Restructure", if any of the files did not need restructured and were in use by another user, the restructure process would end prematurely and return to the database management menu. This has been corrected. (#2796)
- Comma Delimited Update processes generated with the toolbox utility would contain an invalid statement for token fields. This has been corrected. (#2827)
- If a domain is modified, any SAME AS domains that reference it, and any fields that reference the SAME AS domains will now be updated. (#3033)
- The help text for field "Compress Type" on output images has been corrected. (#3304)
- In the ILF editor you can now SCAN for the value of token fields. If the left-hand field is a token field and the right-hand application id is blank, you should be able to SCAN from the right-hand field name. (#3526)
- An "unbounded" Range-Start frame in an output process (one where the Range Field is blank) is supposed to execute "once before the first record". This was correctly occurring if the output was run without a query, but was not being executed if run with a query. It now will correctly execute even if run with a query. (#3533)
- "Process Generation" of a "Scrolling Input" (available in 3-Utility 6-Toolbox, and also in the DD's toolbox) will now correctly default to "N" the fields "Blank if Zero", "Right Justify", and "Required". Also SYSTEM fields will be generated as "Modifiable" = "N". (#3592)
- The ilf PASS statement with the "FILE" option to pass the fully qualified filename was not working properly in release 3.2 if the file was not considered open by APPX. This has been corrected. (#3605)
- APPX will now respect the "Share" flag of the PASS statement. Thus for internal and external CALLs, parameters will be passed by reference if Share=Y and by value if Share=N. Note that only certain data types (binary integers, logic fields) can be passed by value. (#3614)
- The cross reference utility will no longer consider ILF statements that have been commented out. (#3635)
- A Field which did not use a Domain, would incorrectly display the "AA" indicator, even if the Additional Attributes popup contained all default values. This has been corrected. (#3704)
- The "Process Generation" utilities for Scrolling Input, Form Input, Form Output, and Standard Output, will now generate DLU's if the DLU is defined in the data dictionary. Note: only "Define" DLU's will be generated. No "Continue" DLU's are currently generated by these utilities. (#3728)
- An "unbounded" Range-Start frame in an update process (one where the Range Field is blank) is supposed to execute "once before the first record". This was correctly occurring if the update was run without a query, but was not being executed if run with a query. It now will correctly execute even if run with a query. (#3748)
- Design Transfer will now default the printing of the log to No rather than Yes. (#3750)
- Accessing the "Items Display" screen, from output images, could result in the loss of a value in the "Float Leading Spaces" field. This has been corrected. (#3753)
- The field editor was creating hidden domains which were not necessary. This has been fixed. (#3809)
- A "Cross Reference - Domains" will now correctly find fields that refer to a requested domain that is in another application. Also "Cross Reference - All" and "Cross Reference - Application IDs", will now list field references to domains in other applications. (#3829)
- The toolbox utilities to generate output processes now validate that the report width is within allowable limits. (#3838)
- In Users entry, "Security Profile Not On File" is now a WARNING instead of an ERROR. Security Profile records can now be deleted even though the Profile is specified for a user. In delete mode a MESSAGE indicating how many users point to the profile will be produced. Upon hitting ACKNOWLEDGE DELETE, if any users point to the profile, a WARNING will be issued indicating how many. (#3861)
- A designer/security administrator should be able to define a process as being "privileged". A privileged process can access all secured records regardless of which user is executing the process. This allows a designer to build input-type processes which are secured against viewing by unprivileged users and to build update-type processes which access all records to guarantee correct postings. NOTE: You cannot (currently) define a process as being privileged. This will be addressed in a future release. However, the processes which are built by the Verify and Restructure functions are privileged. (#3874)
- A new option, "Retain Link to Foreign Domains?" has been added to design transfer. It applies to the transfer of fields (both file fields and work fields). It allows the designer to have more control of domain references in fields that are transferred. See field help text for more info. (#3888)
- "Design Transfer All" from an application with the same version number would not transfer all the domains. This has been corrected. (#3915)
- Option-93, to bring up a child process in Inquire mode, now works for all process types. (#3928)
- The first character of the initial value for a word-wrapped alpha field was being lost by the data dictionary compiler - this has been corrected. (#3935)
- The options (91-94), available from the Toolbox Menu when editing an automatic or an optional child record, were not correctly respecting the Designer Rights of the designer using them. This has been fixed. (#3936)
External
- The environment variable APPX PRT FI DIR, which is used to specify the location of print files, will now function in APPX for Windows. (#3224)
- The license server will start automatically when someone runs APPX. This will only occur if the serial number of the machine running the engine matches the serial number on the registration. (#3612)
- The APPX License Server will now automatically start if it is not already running, and the serial (or hasp) number of the system on which current user is running matches the registration's serial number. (#3669)
- APPX will now produce a stack dump in Windows (appx.stk) or a core dump in Unix (./core) whenever a memory access error occurs or when a CASSERT error occurs. Please save these files and send them to APPX for analysis. (#3855)
- License server log no longer logs lookup/result for successful validations if started with default options. (#3901)
RDBMS
- New FMS type numbers have been assigned as follows: Sybase = 4 Oracle = 5 ODBC = 6 This provides for Sybase & Oracle external DBMS's to be defined concurrently. (#3121)
- When trying to create a file stored in VISION - the CREATE files process no longer ends without returning any errors or messages. (#3255)
- A WRITE command in an update process caused APPX to abort if the record being written was in an Oracle table and contained a date field defined as CCYYMMDDhhmmss. This has been corrected. (#3517)
- On Sun machines, using the Vision interface with the FD version of APPX, a segmentation fault was occurring if the primary key was made up of more than 6 fields. This has been corrected. (#3660)
- Performance of Microsoft SQL Server® (6.5 & above) with the ODBC interface can be improved with the FASTFIRSTROW option. From the SQL Server documentation: "With sorting enhanced by the new asynchronous read ahead capability, the optimizer picks table scan and sort over using a nonclustered index in many cases because the total throughput for the sort is faster. If there is a sort, the first row cannot be sent until totally sorted. With this method, if the sort is large, there may be a considerable delay before the first row appears. FASTFIRSTROW causes the optimizer to use the nonclustered index; the first row will appear quickly, but the total return time for this option may be slower." To increase performance, include the clause "select hint=(fastfirstrow):" in the FMS control string. This will cause the SQL optimizer to use the nonclustered index if one matches the ORDER BY clause. (#3794)
- When using Oracle, if a non-scrolling input process navigates to a record which has been deleted (since the first record was read), the input process switches to key-entry mode. This has been corrected, deleted records are now ignored. (#3865)
- The Oracle interface now sets both NLS DATE FORMAT and NLS NUMERIC CHARACTERS so that date formats, decimal, and group characters are properly interpreted. (#3902)
- Restructuring a data file stored in an RDBMS caused indexes to be lost. The data was still accessible, but performance would suffer. This has been corrected. (#3930)
- The RDBMS interfaces now optimize BEG AT and END AT constraints (as well as child constraints) when used with multi-part keys. (#3931)
Windows
- In APPX for Windows, an option-0 painted on an image was correctly being shown as a button, but did not execute properly when clicked with the mouse. This has been corrected. (#3053)
- In APPX for Windows, 2 character user id's caused printing problems. This has been corrected. (#3441)
- After a new install of APPX 3.2, if you attempt to add an application record before creating system administration files you correctly receive an error message, but then also a Windows GPF. This has been cleaned up. (#3656)
- On a Windows machine if you use APPX PRT SCRIPT to specify a batch file to handle the print file, an MSDOS window is visible on the screen. If you set APPX PRT SCRIPT HIDE=true (or any value other than null), when APPX runs the external print program, it will set a windows flag to have it minimize the MSDOS window. (#3868)
GUI Client
- Using APPX Presentation Client, in the image editor fields longer than 80 characters were incorrectly wrapping instead of truncating. This has been corrected. (#3758)
- The Windows presentation manager was losing some information which should appear in the status surface (such as Compiling EM, Saving EM, and keyboard mapping messages). This has been corrected. (#3795)
- Solaris 2.x systems using shadow password files now validate login ID's properly before allowing appx client users to login to appx via appxd. (#3897)
- The client/server presentation manager protocol now includes version checking so that future enhancments can be negotiated depending on the version at each end of the connection. (#3926)
- The APPX Java Client (version 1.0) is now available for general use. This initial release has most of the features of the current Windows client and some extra features. It can be run standalone or from a web browser. It can be attached to a web page for easy loading over the internet. It supports images and background image tiling. It contains an initial implementation of data scrollbars, and more. (#4013)
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.
APPX 3.2
Run-time
- APPX no longer requires all editable items on a screen to contain valid data if the user has pressed CANCEL. (# 74)
- The COPY Option on the Query Record Selection screen will now update the Selection Expression for each COPY made. (# 1284)
- APPX will now report a message in the status area whenever a request for a locked record waits for more than 10 seconds. Where possible, the message will include the process id of the process which holds the locked record. (# 1737)
- Release 3.2 introduces an "in-progress" display (rather than a true percent-complete). You can enable this display by setting the environment variable: APPX SHOW PROGRESS=true (# 1894)
- On "Cassert" displays, the descriptive error message (currently displayed by pressing the INQUIRE key) has been moved back onto the main Cassert display. (# 2001)
- On the QUERY record selection screen at run-time, an end user is allowed to enter up to 30 alphanumeric characters for their selection criteria. Entries of more than 22 characters entered on the Right Hand Side of an 'EQ' selection are now evaluated correctly. (# 2422)
- Action (error) logs for consecutive files now properly present key values. (# 2460)
- The keymap files are no longer reserved for exclusive access when the keymapper (appx -k) is being run. (# 2489)
- A particular combination of table lookups in an OUTPUT function could cause a "PCITM.C.359" (bad tdlu read - Error - No More Records), followed by a "PCITM.C.363" (bad tdlu delete - Error - No Record Currently Held), the first time an EM was being built. This has been corrected. (# 2580)
- Field level security on a key field, such that the user has READ access to that field, but does not have MODIFY access to that field, will now let the user enter the key during key-entry phase. (# 2585)
- Modification Logs will now print from INPUT processes that are called from JOBs. They will also print from children INPUT processes that are called from a Parent INPUT. (# 2665)
- QUERY processes (and IF statements) will place leading spaces in alpha fields that are right justified before making a comparison. (# 2673)
- When a user attempts to startup APPX while another user is running the keymapper (appx -k), the startup user will no longer get an error message "APPX Startup Failure: Can't find a keymap for this terminal/user". (# 2808)
- Under VMS, the Select Database menu pick no longer fails due to an internal mismatch of the Application Design PARAM file structure. (# 3188)
- An error introduced in APPX Release 3.1 that caused empty logfiles to be produced from UPDATE processes has been corrected. (# 3205)
- The 'Direction' and 'Group By' fields in APPX SQL are now toggled by pressing Option/3. (# 3244)
- New option to send report as e-mail added to the Report Display utility within APPX. Currently only implemented on UNIX platforms. While viewing the report, press option-7. (# 3295)
- When the plug is pulled on a workstation running APPX, that APPX task will now terminate. (# 3300)
- When traversing a file (using Next Record or Enter) in a non-scrolling input process and a held record is encountered, the record following the "Already Held" conditioned will no longer be displayed twice. (# 3352)
- When a workstation locked up for whatever reason sometimes not all the time an orphan process was created which chewed up cpu time and held the records that the user had held when they locked up. This has been corrected. (# 3422)
- In response to the issues of Presentation Clients not executing a .profile startup script, APPX now understands a new general config file called "appx.env" to pull environment setting from. APPX will look in two different places for this file. One is a system wide file, the other is a user override file. The system wide file should be in the $APPXPATH/data directory. If APPXPATH is not set, then APPX will assume the "/engine location/data". The user override file must be in the users home directory under UNIX and in the c: directory under Windows®. See the sample file in the "tools" directory for the correct usage. (# 3460)
- The optimized engine has been used in the field enough that we will now be shipping APPX with this as the default engine. To use the standard engine, you will need to use the "appx.slow" instead of the "appx" executable. (# 3547)
Designer
- The default Update Type for a Use Query has been changed from "Normal" to "Clear" to allow the most expected behavior when a job loops back upon itself. (# 187)
- Technical Documentation can now be printed in background. (# 933)
- Application Locking is now a feature that can control execution and design access to a locked application. See a separate document on how to use this feature. (# 1040)
- You can now use auto-sequence with one digit numeric fields. (# 1633)
- The Toolbox Option that creates a Domain from a given Field has been added back to the Domain Toolbox Menu. (# 1655)
- Printing Tech Doc on an INQUIRY process will now print all of the components of the INQUIRY process. (# 1974)
- The print out from Tech Doc of fields on an image are now in the same order as on the screen when one does an INQUIRE on an image. (# 1985)
- Running cross reference for UPDATEs now picks up UPDATEs run from within the ILF. (# 2300)
- Cross Reference on Fields will now show all references to the given field. (# 2534)
- You can now run technical documentation by date changed - e.g. for all processes changed since mm/dd/ccyy. (# 2625)
- When you convert an index in a file from "Alternate" to "Alternate/Unique", the Restructure process will now check that all records in the file are, in fact, Unique. (# 2801)
- The keyboard will now work correctly under the ILF debugger on the Sun platform. (# 2849)
- A user who is precluded via record-level security from viewing certain records in a file can now restructure that file without APPX filtering out the records that user does not have access to. (# 2892)
- If you are editing ILF code, and attempt to ADD a line, the line at the current cursor position will no longer disappear. (# 2907)
- When running "Check Images for Item Overlap", APPX will no longer freeze. (# 2909)
- When running a Cross Reference of a file, processes with the file as their PCF will now show up. (# 3042)
- Work Fields design transferred to an application where the fields already exist will now overwriting the existing fields instead of creating new fields. (# 3045)
- During ILF edit, external copy, using "SEARCH", will now search correctly. Previously, it would find anything and thus move the cursor 1 space at a time. (# 3046)
- IF EXIST statements will now return correct results on files defined in database management as using another database's file (USE DB). (# 3064)
- When a file is being designed transferred and the file already exists in the target application, all of the additional attributes for the fields will be correctly update to the new values. (# 3098)
- When printing technical documentation for Files, the file's User Documentation and Technical documentation are now included in the output. (# 3110)
- The ILF editor will no longer lock up. (# 3135)
- When a modified SUBR is Design Transferred into a local application, and another process calls that SUBR via a GOSUB stmt, that other process will now trigger rebuilding its EM. (# 3225)
- The generate OUTPUT process options in the Data Dictionary toolbox will no longer generate duplicate EM names. (# 3226)
- Printed Cross Reference reports no longer miss breaks between types of items (App Id, Domains, Files, Fields, process types, etc.). (# 3231)
- If a restructure attempt fails, an error log is produced (with a report file name of "RESTRUCxx"). The key values which are supposed to display on the error log are no longer all zeros. (# 3261)
- If you change the Default Value on a field in a file, it can no longer disable the "Delete Protect" File attribute. (# 3277)
- Upon entering Change All References for App Ids for the first time mode is CHANGE and a From and To App Id may be entered. After pressing ENTER APPX will execute the change, then redisplay the input screen prompting for another set of App Ids. Previously, at this point MODE appeared to be blank and the App Id fields were not modifiable. This has been corrected. (# 3285)
- The "Check Images for Item Overlap" utility now checks for items that also touch, but do not overlap. Direct navigation has been added to the results screen so that you can jump directly to the image in question. (# 3293)
- In the ILF Editor, TAB DOWN will now recognize a tabbable field in the left-most column. (# 3299)
- The APPX Cross Reference utility now allows interactive browsing of cross reference hits, the context information describing where the hit is found is shown, along with the ability to "jump" into the application at this location. (# 3311)
- The "Check Images for Item Overlap" utility will no longer give a "Run Time Error Detected" message and then crash. (# 3322)
- Three problems fixed with Change All References for Fields. 1)"To Field Name" is now required. 2) A warning will be given if the "To Field" does not currently exist. 3) APPX will now change the actual field itself only if the "From Application" and the "To Application" are both equal to the "Source Application" (the application currently in) and if the "To" field does not already exist. (# 3490)
- You now have a flag in System Administration, Applications to force APPX to bypass the validation of EMs. This will allow you to distribute and install applications that do not contain all of the design elements. (# 3548)
- APPX now understands how to parse CGI encoded data fed to it on stdin, pick out field names and data values, and automatically set the named APPX fields to the CGI data values of a running APPX process. See a separate document on how to use this feature. (# 3549)
External
- Importing Speed II files into APPX can sometimes cause a "bad portable date" error. This is due to the fact that Speed II would allow invalid dates to be saved via ILF code where APPX will not allow an invalid date. To disable this enhancement, set APPX PORTABLE DATE=true to block the message. (# 1423)
- There is now a new utility in the "tools" directory that will attempt to recover data from a damaged APPX data file. The new tool is called "recover". This tool can also be used to reclaim space from highly active data files. The space is reclaimed by removing and/or recovering deleted records and the overhead blocks needed to track them. Just run "recover" with no arguments to get help on how to use it. (# 3031)
- Within the 3.1 standard release files, the file rdbstub.o is now included for custom linking. (# 3170)
RDBMS
- Scratching Files stored in Sybase will no longer produce random - "Unable To Translate Message" failures. This was caused by an uninitialized return code - the scratch actually succeeded, but an improper error message was produced. (# 3147)
- The Sybase interface no longer only creates one index (the last one) when creating a table. (# 3148)
- The command buffer used by the relational interfaces will no longer overflow when creating tables with a large number of fields. The internal SQL command buffer was increased from 4096 bytes to 8192 bytes. (# 3149)
- The Sybase interface no longer leaks one file descriptor for each table opened, scratched, or created. (# 3150)
- Sybase will no longer hang when accessing multiple tables. (# 3169)
- The relational interface is now counting file/table usages correctly. The result is that tables are no longer closed when they are actually in use. The symptom was that occasional Seg Faults were encountered when traversing from children back to parents. (# 3195)
- A user will no longer receive the message "can't delete proxy - record not on file" when traversing complex input processes using the Sybase interface. (# 3196)
- When restructuring a Sybase table, a user will no longer receive the error message: *Syntax error in FMS Control String at or near (# 3198)
- When trying to create a file stored in VISION - the CREATE files process no longer ends without returning any errors or messages. (# 3255)
- Numeric Fields in Sybase no longer default to the value of 570.05. (# 3427)
Windows
- If you are editing ILF code, and DELETE a byte out of the T/F registers, APPX for Windows will now accept the edited screen. (# 2906)
- APPX for Windows: when Inserting ILF code in the middle of a bunch of lines of ILF, new lines no longer appear to get overlaid on top of the lines immediately below them. (# 2937)
- APPX for Windows will now save and remember color choices. (# 3057)
- When running APPX for Windows, the environmental variable APPX SCRIPT IN will now work correctly. (# 3090)
- In APPX for Windows, the close box in the upper corner will no longer close APPX. This type of exit, created zombie processes. (# 3142)
- APPX for Windows scrollbars have been turned off due to some problems with smaller display sizes. (# 3164)
- In APPX for Windows, the Mouse position information at the bottom of the screen and the three line status area has been replaced with a Status Bar under Windows NT® and Windows 95®. (# 3313)
GUI Client
- The APPX for Windows Presentation Manager will now remember the last user id, port number, and host name on a per-user basis. It will also remember the 10 most recently visited hosts. (# 3208)
- The APPX for Windows Presentation Manager will no longer give a dialog box stating that a HEAP ERROR has occurred, due to overruns in the network buffer. (# 3216)
- The APPX for Windows Presentation Manager will no longer generate: wm1.c.5209 "tm show failed" errors. (# 3221)
- The APPXD Application Server program has now been ported to Windows NT. (# 3451)
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.