ETL8.x/9.x: Information On Array Sizes -- Background, Debugging, Expanding Arrays.

(Doc ID 607666.1)

Last updated on JULY 13, 2016

Applies to:

PeopleSoft Enterprise HRMS Time and Labor - Version: 8 SP1 to 9.1 - Release: 8 to 9
Information in this document applies to any platform.

This document was previously published as Customer Connection Solution 41467


***Checked for relevance on 09-Mar-2012***

Goal

Customers will occasionally exceed array sizes when processing. This often manifests itself in Error 153, "Subscript Out of Range", but can also manifest itself in a number of more specific error messages as well. Other error message may be Error 51; "Table array is full".

DISCUSSION:
Arrays define the amount of storage allocated to a given process. Many of the Time & Labor processes load the entire contents of (primarily) referential tables into internal arrays to improve processing efficiency. Due to a constraint in the COBOL programming language, it is not possible to dynamically allocate storage. PeopleSoft delivers array sizes that we expect to be large enough to handle processing volumes for many of our clients, but due to the wide range of companies' data models and characteristics, it will be necessary for some clients to expand the sizes of their arrays to meet their processing requirements.

Generally speaking, the arrays are related to comparatively static information in the system such as the number of earnings codes, rules, or tasks and therefore should not need to be re-expanded on a regular basis. Clients should not expect to have to expand arrays as the number of employees hired into a company grows.

If an array size is exceeded, a client should run a trace or utilize COBOL display statements (see below for using COBOL display statements) to identify the array that needs to be expanded. Once the array is identified, the array can be modified in the copybook. To find out which copybook might contain the array, search on 'COPY' within the Cobol where the job abended. This will show the user all copybooks used by the job. The user should then search within those copybooks for the name of the array. There are usually utilities to help with this process, and most COBOL programmers will be familiar with them. Clients can look at the processing log to find out what Cobol was executing when the error occurred to find the program they should look in to find the copybooks. Because each program has the copybook PTCLIBFX in section AA001 of the code, it will write to the system log to identify what Cobol is executing. Whatever Cobol shows up last is the one that was executing at the time the array was exceeded.

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms