FOCUS 7.7.09 Upgrade Considerations Found by SCANFOC

In addition to the upgrade considerations for FOCUS 7.7.06, the following 7.7.09 upgrade considerations can be found by the SCANFOC tool. The letter and number preceding the upgrade consideration description refer to the test name as displayed in the SCANFOC output report.

For information about finding upgrade issues in your applications using the SCANFOC tool, see Option 5: Scanning for Possible Upgrade Issues.

T21 - READ DOES NOT SUPPORT .D, .P, or .F VARIABLE USAGE

-READ reads a record, assigning the physical bytes to variables defined in the -READ command. Due to code tightening, only .An and .In are accepted as legitimate formats. This test identifies -READ statements that include variable formats other than the accepted types. The format .An can be used for all types.

T22 - /YYYY NOT VALID YEAR INDICATOR IN DATE

Explanation

Date formats use a single letter, D, M, or Y, to indicate two digits. Year and century is indicated with YY. The use of YYYY to indicate year and century was previously tolerated, but is now treated as an error.

Correction

Change the YYYY to YY.

T23 - SET POOL NO LONGER SUPPORTED

Explanation

Pooled TABLES is no longer supported in FOCUS. The command to control it, SET POOL, is identified by this test. Pooled TABLES collected multiple requests on the same file, created and ran a single request that covered the data required by these multiple requests, and then subdivided the retrieved data for each participating request.

Correction

If this functionality is flagged, review the participating requests, recognizing that each individual participating request will now be reading the data file, increasing I/O and CPU usage. On very large files this could be significant, especially for batch jobs.

T24 - HOLD FORMAT WP LRECL CALCULATION AND LIMIT CHANGES

Explanation

HOLD FORMAT WP record format is now VB with a settable number of bytes, no longer 368. Also we no longer add on four bytes to the value set when creating the file (required for VB, to identify the length of the record). In prior releases, if you wanted 362 bytes, you had to set 366. Now 366 means 366. This may be a problem if HOLD FORMAT WP is processed downstream by a program not understanding the variable nature of the file. Previous limits on the file were LRECL 72 - 252, RECFM VB.

Correction

This test will flag the HOLD FORMAT WP lines. Please check to be sure the allocations for those files are correct and will continue to work as required for your situation. WPMINWIDTH will not force line truncation as in the past but, rather, extend the LRECL to the required length. SET WPMINWIDTH = value (max 32K) has been added to provide a default value for this behavior. This command can be issued with ON TABLE SET WPMINWIDTH value as well. The default value is 0. If value is larger than required, it will still be used to set the LRECL.

T25 - LOG FUNCTION CALCULATIONS IMPROVED

Explanation

The LOG function built with the new IBM C runtime library is generating more accurate results. These can be seen by examining the numbers generated using the USAGE format D33.29.

Correction

Be sure to verify that the new LOG function is giving you the numeric results that you expect.

T26 - RUN BEHAVIOR IN TABLE CHANGED

Explanation

Using RUN in place of -RUN, typically following a TABLE request, is no longer supported. In 7706, a FOC227 message will be issued because the RUN is assumed to be a RUN for a compiled MODIFY, but no compiled MODIFY name was provided. A subsequent TABLE request will be run correctly. As of 7709M, the next line will be assumed to start with the name of the compiled MODIFY. This will usually result in the message FOC1517 UNRECOGNIZED COMMANDS for subsequent lines, with no output from any subsequent request.

Correction

In most cases, the RUN should be changed to a -RUN.

T27 - RUN COMPILED MODIFY NO LONGER SUPPORTED

Explanation

Compiled MODIFYs are no longer supported in 64bit FOCUS 7709M. In order to allow existing applications to continue to run, FOCUS will automatically convert RUN focexecname to EX focexecname. This will work provided the FOCEXEC library containing the original MODIFY code is included in the FOCEXEC concatenation.

Correction

Make sure the FOCEXEC library containing the original MODIFY code is included in the FOCEXEC concatenation.

T28 - FOCMAP NO LONGER SUPPORTED

Explanation

The FOCMAP utility that provided reporting access to z/OS PDS member information is no longer supported in 7709M. This test will report instances of its use. Each case should be examined to determine the type information being requested. Much of this information can be secured by using the suffix FMI master files to provide TABLE access to OS-level information. SYSFILES for example can be used to secure a list of FOCEXEC names or Master names. For example:

DYNAM ALLOC FI MYFEX DA EDASYS.EDAPORT.MVSAPP.FOCEXEC.DATA SHR REU     
                                                                       
SQL FMI SET SYSFILES MYFEX                                             
                                                                       
DEFINE FILE SYSFILES                                                   
SHORT_PHNAME/A36 = SUBSTR(80,PHNAME,1,80,36,SHORT_PHNAME);             
END                                                                    
                                                                       
TABLE FILE SYSFILES                                                    
HEADING CENTER                                                         
" SYSFILE STATISTICS FOR <SHORT_PHNAME "                               
" ALLOCATED TO DDNAME <LGNAME "                                        
" "                                                                    
PRINT FILENAME/A8 USERID/A8 VERSION MOD LINECNT SIZE DATE TIME         
END

Correction

Change any FOCMAP requests to requests against the system tables.

T29 - RECORDLIMIT NEEDS OUTPUTLIMIT TO COVER BY TOTAL

Explanation

When using SET RECORDLIMIT = {RECORDLIMI|OUTPUTLIMIT} with RECORDLIMIT, or when using WHERE OUTPUTLIMIT, the number of rows returned with the RECORDLIMIT may now be different. OUTPUTLIMIT processing has been adjusted so that the actual output will be demonstrated with a minimum number of lines.

OUTPUTLIMIT will use as many records as is required to exercise all of the code in the FOCEXEC and will have the same first n rows as RECORDLIMIT. This is useful when there are WHERE TOTAL or IF TOTAL phrases.

Correction

Change the SET command to use OUTPUTLIMIT instead of RECORDLIMIT.

T30 - Mt DATE FORMAT NOW NUMERIC IF NOT P2, P6, P8, I2, I6, or I8

Explanation

Packed or integer date formats using only the date format Mt to translate month to three-character upper/lower case will be respected as dates only for formats P6, P8, I6, or I8. The meaning of M depends on the field type. For a date in 6- or 8-byte fields, it will represent month, which can include the edit format t for translation. On non-date numeric fields, with the advent of the data abbreviation t to represent trillions, M will be treated as a floating currency symbol. While it is unlikely that this error will appear, if it does, consider using smart dates, or reformatting to a 6- or 8-byte field, in order to retain the date character of the field.

Correction

Consider using smart dates, or reformatting the date field to a 6- or 8-byte field, in order to retain the date character of the field.

T31 - COMPILING MODIFY NOT SUPPORTED. FOCCOMP UNNECESSARY

Explanation

FOCUS no longer supports compiling MODIFY procedures. The COMPILE command is no longer functional, and is ignored. An error message FOC1885 PLATFORM CURRENTLY DOES NOT SUPPORT FOCUS COMPILED MODIFY is generated. RUN modifyname will be automatically converted to EX modifyname. Also, LOAD modifyname will now load the FOCEXEC version of the MODIFY, ignoring the FOCCOMP file. It is important to verify that the original FOCEXEC for the compiled MODIFY is included in the FOCEXEC concatenation.

Correction

Verify that the original FOCEXEC for the compiled MODIFY is included in the FOCEXEC concatenation.

T32 - FOCERRNUM 1049 REPLACED WITH FOCCERRNUM 1271

Explanation

Prior to release 7.7, data exceptions involving DFIX files would generate the fatal FOC1049 error message, ending the request and placing the fatal error number 1049 in FOCERRNUM. This behavior has been replaced with a non-fatal warning message, FOC1271, which will allow the request to continue to run to completion (excluding the records with exceptions), while providing information about the truncated fields. The warning number 1271 is not placed in FOCERRNUM. If you are testing for the FOCUS error 1049, that test will no longer succeed.

Correction

Review the purpose of your test, and either eliminate the test, as the request is now continuing to completion, or change the 1271 message to a fatal error using SET ERROROUT=OVERRIDE/filename, then test for that new value.


Information Builders