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 cannot 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.
- Solaris 8 - SunOS 5.8
- AIX 4.3.3
- NCR SRV4 MP-RAS Version/Release 03.02.00.39
- 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.
- APPX now supports Oracle 8 by default. We do still support Oracle 7 but you will need to use the Oracle 8 client software provided by Oracle. If you want to connect to an Oracle 7 server, you must set the environment variable APPX_ORACLE7_SERVER=1 before running APPX.
- Release 4.1 does not support the Sybase database interface. We are not dropping support for Sybase and will issue an update in the near future which implements new features and performance improvements for Sybase.
- 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.
Known Outstanding Cosmetic Issues
- In some cases, after exiting Option-Help, the screen is mistakenly panned up one row.
- When entering a color specification using the Java client, you can see the RGB value for that string and the field also changes it's background to display the selected color. If the color you choose is similar to the color used to display foreground text, you will not be able to see the RGB value. For example, choosing the RGB value for blank will result in black text displaying in a black background.
- The buttons in Cross-Reference (All) aren't lined up properly.
- If you choose the Database management option from the toolbox (in query processes), the buttons are not all the same size.
- When using the auto generated output processes, the edit field/item generation seq screen has extra Y/N boxes under the "Query ?" field that extend beyond the last field listed for the file the report is being generated for.
- The process level toolbox menu has some buttons that are shorter than others. Doesn't look neat.
- If you select Additional Attributes when you are in the Frames level of the Input Process Editor, the titlebar in the background changes it's text to read "Fram".
- After running create file in design file management, there are leftover white and black cursor look-alikes in the lower left hand corner.
- The range check for an Alpha field (in Additional attributes, when you are adding a field)is squished by the scan indicator. The blanks allowed indicator is truncated by the scan indicator. There is an extra box at the bottom of the popup (near Translate).
- In Enduser Selections, when adding a query, the buttons at the bottom are not well aligned.
- For a date field - the binos to select the date types to store overlap the word "thru". It also looks like the field that defaults to CC is smaller than the one that defaults to DD. In additional attributes, the storage type "packed Decimal" is truncated, but there is plenty of room to write it out. There are also binos on the left scan and a scan arrow on the right side.
- Using the "Move Rows" option in the image editor will cause all GUI attributes to be lost for the row (or rows) being moved.
- When running the Java Client with the -font=fixed option, in Application Design, the "Process Management" menu title is truncated to "Process Manage...".
- The Java Client displays hidden Y/N fields. An example can be found by looking at a DOMAIN for a numeric field where the checkbox for seq number is displayed as disabled with no label to the left of it. Another example of this can be found when you press INQUIRE on the image editor to view/edit the field attributes.
- The image editor displays widgets which are defined as a checkbox with random values. Sometimes it displays checked, sometimes it displays with a ? and sometimes it displays blank.
Other Known Outstanding Issues
- If you use ILF code to update widgets with the --- WIDGET file, these changes remain in effect until the EM is removed from memory and reloaded from disk. This reload only happens when an EM must be rebuilt, you exit the APPX session, or the EM is pushed out of memory and must be reloaded. To deal with this issues, just make sure you set both side of a test. Don't assume a widget will have a certain value and only set it on the exception condition. Always set it.
The PRINTER file in 0SA has System ID defined as a Unique Alternate key. This is going to cause a problem when defining local printers for client side printing. This means that only one printer can be defined with a blank System ID. The Blank system id indicates that the default printer is to be used.
- It also means that no two users can have the same "named" printer. Essentially, you cannot define user-specific PRINTER records. So, if two users both have a local printer named "HP Laserjet 4", they will need to both user the same printer definition record or one of them will need to change the name of the printer as defined on their client PC.
- The BROWSE button on the Local login tab is not fully implemented - when you change directories, the list of file in the new directory will not be displayed.
- It has been reported that a menu built with design buttons and a drop down menu "feels slower" than an Auto-GUI menu.
- SCAN on the cached instance of a file does not return values from the selected record.
- If you edit a process description, an Em rebuild is not triggered for processes which access that process via an optional child which means that the "Process" pull-down menu item will not reflect the new process description.
- If you Add a named resource through the Gui Attributes screen (by scanning and choosing the option to add), after the resource has been added, it isn't selectable from the list by use of mouse. It does behave normally if you type in the name.
- If you have multiple date fields on an image, but only one uses a date/calendar chooser, when you invoke the process, all the date fields call for data entry via date choosers.
- When adding a border to a picture, the Border Color option isn't working.
- When adding a named resource - the file chooser won't take you "Up one level" to search for a file throughout the machine.
- In the Java client when entering an In Progress Message for a job process - When all the spaces available in the field are used, the cursor erases what has been entered and returns to the start of the field.
- In an input process where a work field painted on the image contains the text of a generated button, and the work field has read security rights upon it so that the button should only appear for certain users, the Java client displays the button for all users.
- An Xref on ILF Statements presents a screen of statements to choose from. This list does not include some of the new statements which were added in release 4.1.
- You can control the frequency of COMMIT operations when importaing data into an RDBMS. Set the APPX IMPORT COMMIT environment variable to the number of records you would like to import before commiting changes to the database. The default value for commit frequency is 1. You can drastically reduce the amount of time required to import large tables by setting this environment variable to a large number (1000 or more). We have not provided a way to control the commit frequency for RDBMS restructures.
- The GUI Client option to Always Dock Scrollbar does not seem to work.
- When scanning with the Java client, a single click will select a record and return it to the data entry screen unless the desired record is the first record listed on the scan screen. In that case, a double click is required. The first record is already "selected" when the scan screen is initially displayed.
- When using the image editor's "Paint a box or line" tool, it does not seem possible to paint a line.
- The At Appearance clause of the ENABLE/DISABLE commands seems to be ignored. Only the last appearance of widgets with the same name are being acted on.
- A left click to select a widget on the image editor followed quickly by a right click to show the popup menu executes a double click and also displays the popup menu.
- The "Invis?" attribute does not seem to be honored for a button widget when set to N. Setting it in the WIDGET record also does not work.
- The help "?" always appears on the title bar of a menu even when you specify that it should not.
Items Fixed or Added in this Release
- Restructuring a file, then running processes utilizing that file without exiting APPX does not give the error "Cannot write to cache, invalid prototype record". (#318)
- Performing a QUERY on a very large file does not result in a PBUTIL.3231 "oops - Error - Position Undefined" on the subsequent OUTPUT or UPDATE process. (#2873)
- Cached I/O - APPX 4.1 introduces the ability to create and access cached instances of files in memory. This can result in significant reductions in File I/O during posting and reporting processes. See this document for further explanation and an example of the use of this feature. (#5024)
- Printing to the O/S print spooler thru appx print can intermittently die at occasional customer sites, due to operating system anamolies.
- In 4.1, we are publishing source code for a compiled version of 'appx print' (appx print.c), that can be customized and compiled by distributors and endusers, to deal with these anamolies when they occur. (#5079)
- Starting with release 4.1.0, you no longer need a GCS registration to start a local copy of an Appx server (when using an Appx client). (#5196)
- Starting with 4.1.0, if you try to start an Appx client and you don't have a valid GCS registration, the client will still start, but it will display a screen telling the user that a GCS registration is not present. (#5244)
- You can position the cursor on the file name portion of a READ statement (or any other I/O statements) and invoke OPTION 94. You will immediately be taken to the DD constrained to that file, where you'll have access to the file event points. (#5269)
- When editting the Date Mask override under System Administration's "Applications" editor, if you enter the string, am, to indicate that am/pm should be displayed, it was erroneously saved with double quotes surrounding the am. This was also occurring in the "Languages" editor. This has been corrected in both places. (#2598)
- The APPX Client now displays multi-line APPX text fields as Windows® type text controls. The text cursor stays within the text field until you are done entering and editing the entire text field. Since it is a "true" text control, all of the standard Windows editing features are available including the ability to cut & past the entire field. (#2640)
- When using option-99 to invoke a menu process, from which an input process was invoked, when eventually ending the menu process it was possible to receive "Error - Missing or Invalid Process Definition Record". This has been corrected. (#3557)
Release 4.1 increases the maximum APPX/IO file size on the following platforms: (#3639)
- AIX & Solaris increased to 4 Gb from 2 Gb
- Windows increased to 2 Gb from 1 Gb
SET statements involving GROUP HEADER fields which contain SYNONYM's will now respect the fact that the component fields may not be contiguous.
Two minor issues to point out regarding GROUP HEADER fields which are made up of fields which are not contiguous:
- The GROUP HEADER may not appear to have the correct contents when viewed in the debugger.
- A SET into the GROUP HEADER can not be a constant, but must be a field.
(#3746, 3608, 4392, 4745, 4991)
- On a Disposition screen, the "Printer ID" and "Form ID" fields are scannable. From the scan screen the default processes can be accessed for editing these files. These default processes are now accessible only to APPX security administrators. (#4059)
- The Java client will now display a scan indicator for image items which are scanable due to a SCAN statement. For this to occur, the field must be mentioned in both an AT FIELD statement and on the left hand side of a SCAN statement. A scan indicator will also be present for key fields during the KEY ENTRY phase, indicating a PCF scan is available. (#4620)
- You can now scan from Query Setup, Record Selection even if your query process is defined in an application with a version other than '00'. (#4758)
- Restructure of a file does not incorrectly generate "Can't write LFN record - Error - Already on file". (#4803)
- In certain instances a query/output could generate "Error - Cannot Access Required File; Unable to translate message: 37 (200450,0)". This problem has been corrected. (#4804)
- An error, "Error - DEFINE Statement Error" could sometimes occur when using Scan. This has been corrected. (#4874)
- A data lookup scan, a statement scan, or a token scan, if performed on a non-modifiable item will display the scan screen but not return a selected value to the screen. (#5063)
- The new (4.0) scan processor would not display a field from the scan file if the field's contents exceed the defined maximum width of the scan record (132). The old scan processor (3.5 and prior) would truncate this field. This behavior has been corrected for certain field types. Fields which are type alpha, substring, or format, will now be displayed and truncated in this situation. (#5136)
- Using the Win32 client, you can paste accented characters. (#5203)
- The "Print Totals" question on the field level AA popup, will now be used to default the item level "Auto-Total Type" field on output images. (#2113)
- On automatic and optional children the "AA" indicator was not being set properly with respect to the "Default Mode" field. It was also not being set at all for the "Hidden Child" field. These have been corrected. (#2807)
- If design transfer was used to overwrite part of a process (by transferring either a frame or an image), this did not update the destination process' date changed. Thus the EM for that process was not obsoleted by the transfer. This has been corrected. (#3105)
Change All References of a Domain had several problems. It wasn't working properly if you changed from a local domain to a foreign domain. Also, the domain itself (not the references to it) will now only be changed if the following conditions are met: (#3140)
- From App Id & To App Id must both be equal to the Source App Id.
- The To domain must not already exist.
- Using END to exit the image editor would always update the audit info of the image, frame, and process. This has been corrected. The image editor will now cause audit info to be updated after END'g only when changes have been made. (#3467)
- Design transfer of processes has a new option, "Retain Audit Info". This can be used to retain the audit info of the source rather than to set it to the transfer date. See the field's help text for more information. (#3468)
- After doing a design transfer, the input screen will now be repeated for an additional transfer rather than ending. The field values will also be preserved for subsequent transfers. (#4431)
- If a Restructure operation failed for some reason, subsequent Restructures could fail with errors like "Element file write - error already on file". This has been corrected. Failed Restructures will now do a better job of cleanup. (#4966 and #4570)
- If two fields on an image had a statement scan defined, it was possible to scan on one of them and have the selected value be returned into both fields. This has been corrected. (#4667)
- Year 2000 dates are displayed incorrectly on all technical documentation reports. (#4711)
- An "IPC Listings" menu has been added to the Toolbox, "Source Analysis" menu. IPC (Inter Process Communication) fields are internal fields which control the sharing characteristics of APPX design elements. The utilities on this menu can find and fix exceptions from standard values. (#4794)
- When defining a box, a box type of "NONE" is now available. This can be used to remove an existing box. Box placement on the image will now be adjusted if the row/column where the box starts is moved by inserting or deleting rows/columns. Note that the size of a box can not yet be changed by inserting or deleting rows/columns, but the location can be changed. (#4820)
- "Quick Restructures" have been added. For a file which is defined in the data dictionary as variable length (file level AA popup), fields added at the end of the record will not require a regular restructure. The restructure process must still be run, but only the file header will be processed, not each individual record. (#4832)
- An image where a field appeared multiple times, each of which had DLU's coded to different files, could result in not being able to SCAN on these fields. This has been corrected. (#4870)
- When adding fields to a file, the Display Sequence will no longer default to "1". (#4887)
- An exit confirmation screen has been added to the Interactive Cross Reference to reduce the chance of accidently exiting and having to then re-run the cross reference. (#4906)
- On Intel platforms, using the "Convert Field to Domain" option on a token field will not lose the token records. (#4927)
- The "Renumber Fields" option available from the File level toolbox and also from the Application Design Toolbox can cause problems with the File level "Record Protection" fields. The record protection fields are stored at the file level by their sequence number. These utilities are now updating these sequence numbers. This has been corrected. (#4928)
- The "Renumber Fields in This File" option in the File level toolbox was supposed to renumber a single file only. It was incorrectly renumbering other files also, beginning with the current file. This has been corrected. (#4930)
- On optional children the "AA" indicator is now being set properly with respect to the "Invocation Type" field. (#4931)
- A Query generated from one of the Toolbox "Process Generation" utilities, did not have it's "Enduser Selection's" additional attributes fields generated properly. They were different then if you added a selection record manually. This has been corrected. (#4937)
- The frame level toolbox option to generate a column heading frame in input processes is now also available for output processes. (#4943)
- The "Reference Browser" utility has been added to the process level, toolbox menu. This utility provides a convenient tool to list each design component referenced by the selected process. The results are similar to the "Interactive Cross Reference", and provide for "jumping" to the references and to the referenced item itself. One use of this is to identify the files used by a process and to optionally edit the file level event points for those files. (#4971)
- The Cross Reference utilities now has an option to include ILF statements which have been commented out. (#4978)
- In the System Administration, Users file, the "System Id" column has been retitled to "0/S Login Id". This title better describes the field. (#5014)
- The ILF code generated in a comma delimited update to handle multi-occurrance fields was not being generated properly on Intel platorms. This has been corrected. (#5017)
- A new utility, "Recalculate Dictionary Hash ID's", has been added to the Language Translation menus in both System Admiistration and Application Design. You should run this job if you edit certain fields in any language record for which entries are present in the dictionary. See help text for more info. (#5053)
- While editing a field, using option-2 to view the "Data Lookup" popup, then proceeding with three RETURN's could unnecessarily bring up the "Key Control" popup. This has been corrected. (#5074)
- When adding optional or automatic children to a process, the warning of "This Process is Invoking Itself" was not respecting the application id of the child. This has been corrected. (#5129)
- Using "Change All References" on a field name where the utility would change the references and the field itself to a new name, would result in token records being orphaned under the old field name. This has been corrected. (#5188)
- Boxes were originally implemented as CHR records in 4.0. With 4.1 they have been re-implemented as records in the WIDGET file. CHR boxes can be converted to WIDGET boxes by running a new utility on the Source Analysis Menu. (#5234)
- If you made a change in the ILF editor, then decided to discard the changes by pressing CANCEL, the changes were correctly discarded, but the audit info was still updated. This has been corrected. (#5235)
- Design transfer of domains now provides for processing the data dictionary. It's not technically necessary if transferring a new domain into the destination application. But if replacing an existing domain, processing the data dictionary should be done to update fields dependent on the domain. (#5255)
--- subroutine processes have been created to simplify the usage of some of the more popular rt function calls. For examples on how to use them, see the following subroutines in the 1EX application.
- GET CMD LINE PARM (EXAMPLE)
- GET ENV VAR (EXAMPLE)
- GET FILE FROM CLIENT (EXAMPLE)
- LOAD URL ON CLIENT (EXAMPLE)
- SEND FILE TO CLIENT (EXAMPLE)
- STREAM FILE (EXAMPLE)
- A Design Transfer API has been added. This is for developers who want to issue transfer requests from within their applications. See the 1EX/00, subroutine process, DESIGN XFER API (EXAMPLE) for more information. (#5297)
- Query processes will now respect key fields in the PCF. This can significantly increase query performance by reducing the number of records which the query needs to process. (#4199)
- A "Copy Fields" option has been added to the field level Toolbox menu. It can be used to copy one or more fields into the currently selected file. Fields can be copied from the same file or a different file. (#4830)
Event points can now be defined at the file level. ILF in these event points will be executed by APPX at appropriate points based on file access by processes. The new event points and when they are executed are as follows:
- FILE OPEN, immediately after APPX opens the file
- POST READ, immediately after APPX reads a record
- PRE UPDATE, just before APPX writes or rewrites a record
- POST UPDATE, just after APPX writes, rewrites, or deletes a record
- FILE CLOSE, will happen when the file is last closed.
Access to the file level event points for the PCF has been integrated into the "Rules" popups for processes, frames, and images. (#4836)
An "Identity" system administration file has been added. An Identity is used to store login information for various external interfaces. An Identity can exist for each FMS Group/User combination.
File maintenance for Identities is available as an option when editing "Users" or when editing "File System Groups". (#4849)
- In "Database Management", "File Specifications", there is a new optional child, "Field Overrides". Field Overrides are used by the RDBMS interfaces (Oracle, Sybase, ODBC, etc.). With Field Overrides an administrator can specify field level parameters (such as column name and data type) to be used by the engine in communicating with the RDBMS. (#4853)
The FMS Control String (which was accessible in System Administration for FMS Groups and in Data Base Management for individual files) has been retitled. It is now referred to as FMS Group Attributes and as File Attributes, respectively.
Additionally, the attributes are now prompted for as individual specifications instead of as a control string for certain FMS Types (Oracle, Sybase, ODBC, APPX/Net).
The older control string is still supported, but the specification based entries is the preferred method of providing this information. (#4857)
AppxODBC will now enforce the following APPX security features.
- File & Field level read security code
- File & Field level modify security code
- Record Access Protection
- Record Delete Protection
- Record Key Protection
(Not in first beta.) (#4919)
- There is a new field in "System Parameters" called "Auto Select All Files". By setting this to "N", Database Management, Design File Management, and System Administration File Management, will default to no files selected and present the file selection screen, instead of automatically selecting all files. (Not in first beta.) (#5021)
- File level event points should now execute when files are accessed using AppxODBC. (#5089)
- The field "Require Table Value?" has been added to the AA popup of an alpha or format field/domain whenever a validation table is present. Setting it to "N" will cause the validation table to be "advisory only". This means that when editing the field, SCAN will present the validation table and allow selection, however the user can make an entry into the field which is not defined in the validation table. (#5177)
Two new environment variables have been added to aid in debugging situations:
APPX IO LOG=filename
causes AppxIO to log all file I/O.
APPX FMT IO LOG=1
causes the IO log to be formatted for human readability. The human readable format has numeric result codes from I/Os. They are keys to the 0LA MESSAGE file.
Keystrokes and process names are included in the IO log as well.
- APPX IO LOG=filename
- APPX for SCO and LINUX didn't honor shadow-passwords, generating an 'Incorrect Login Information' error. This has been corrected. (#4848)
- A debugging statement ('whoami') not supported by all flavors of UNIX was commented out of appx print. (#4959)
The 0UT application, distributed with APPX release 4.1, introduces the following features:
- Importing table definitions from certain back end databases
- Importing file definitions from a text file
- Generating an APPX data dictionary from these imported definitions
- Generating a template application from a data dictionary
Additional information is available in a separate document and in the online help of the 0UT application. (#4979)
- Sample subroutines dealing with upper/lower case conversions have been added to the 1EX/00 application. See the subroutine, CNV EXAMPLE, for information. (#5004