OVERVIEW ________ This document covers the enhancements made to the AS/400 Connection since Version 3.0. This document describes the enhancements, how to install them and how to take advantage of them. INSTALLATION INSTRUCTIONS _________________________ To install this package, perform the following steps: 1. Download ABTTA43C.EXE as a BINARY file. 2. Change your current directory to the directory containing ABTTA43C.EXE and issue the following command: ABTTA43C -d va_directory where va_directory is the directory that contains your VisualAge image file. For example: ABTTA43C -d C:\VISUALAG 3. Verify that you have a file named ABTTA43C.CTL in the FEATURE subdirectory of the directory containing your image and a file named ABTTA43C.DAT in the IMPORT subdirectory of the directory containing your image. 4. Start up your image and go to the Options menu in the VisualAge Organizer. Choose the Load Features option and select "AS/400 Connection Fix Pack 3 (01/96)". The fix will then be loaded into your image. SUPPLEMENT TO VISUALAGE AS/400 CONNECTION USER'S GUIDE ______________________________________________________ This section describes the enhancements and how to use them. SUPPORT FOR NULL VALUES _______________________ The AS/400 file parts now support records with fields which can contain a null value. When a field containing a null value is read from the AS/400, nil is returned to your application. When writing data to the AS/400, fields can contain a nil value. The AS/400 Connection will automatically map nil to a null value. If the field is not capable of accepting null values on the AS/400, a data mapping error exception is generated. NOTE: You do not need to change your existing record descriptions in VisualAge unless you will be creating files with null capable fields. DESCRIBING NULL CAPABLE FIELDS A field within a record can be described to allow a null value. This is equivalent to the DDS ALWNULL keyword. NOTE: This version of null value support does not include the ability to specify allowNullValue on the AS400RecordDescription settings view. To designate a field to be capable of a null value, send the allowNullValue message to the datatype of the field. To do this, find your subclass of RECORD by using the record format name as the class name. The browser will display the record description similar to the following example: (RECORD subclass: #ExampleCustomerMasterRecord) field: 'customerNumber' hostField: 'CUSTNUM' type: (PACKED length: 8); field: 'lastName' hostField: 'LASTNAME' type: (CHARACTER length: 20); field: 'firstName' hostField: 'FIRSTNAME' type: (CHARACTER length: 20); field: 'addressLine1' hostField: 'ADDR1' type: (CHARACTER length: 40); field: 'addressLine2' hostField: 'ADDR2' type: (CHARACTER length: 40); field: 'city' hostField: 'CITY' type: (CHARACTER length: 20); field: 'state' hostField: 'STATE' type: (CHARACTER length: 15); field: 'country' hostField: 'COUNTRY' type: (CHARACTER length: 15); key: 'customerNumber'; endRecord To make the country field null capable, change the description to look like: (RECORD subclass: #ExampleCustomerMasterRecord) field: 'customerNumber' hostField: 'CUSTNUM' type: (PACKED length: 8); field: 'lastName' hostField: 'LASTNAME' type: (CHARACTER length: 20); field: 'firstName' hostField: 'FIRSTNAME' type: (CHARACTER length: 20); field: 'addressLine1' hostField: 'ADDR1' type: (CHARACTER length: 40); field: 'addressLine2' hostField: 'ADDR2' type: (CHARACTER length: 40); field: 'city' hostField: 'CITY' type: (CHARACTER length: 20); field: 'state' hostField: 'STATE' type: (CHARACTER length: 15); field: 'country' hostField: 'COUNTRY' type: (CHARACTER length: 15) allowNullValue; key: 'customerNumber'; endRecord After making the needed changes, save them. The class will be recompiled with the new definition. CONSIDERATIONS AND RESTRICTIONS Keyed access with a null value for a key is not supported. Null values are not supported if the recordDescription attribute of a file is a STRUCTURE. This should not affect you unless your code is based on the ENVY/400 product.