Transaction field

When you cannot store every value in the database, you can use a transaction field to index input data that contains one or more columns of sorted data.

FIELDn={*,*,length,(OFFSET=(start1:end1[,start2:end2][,...start8:end8...]), MASK='@ # = ¬ ^ %'|,REGEX=‘regular expression’ [,ORDER= BYROW| BYCOL}])
Options and values
n
Specifies the field parameter identifier. The field parameter identifier. When adding a field parameter, use the next available number, beginning with 1 (one).
*
The record number where ACIF begins searching for the field. A transaction field must specify an asterisk, meaning ACIF searches every record in the group.
*
The column number where ACIF begins searching for the field. A transaction field must specify an asterisk. The OFFSET specification determines the column or columns where ACIF locates the field.
Note: If you enter a value other than an asterisk, ACIF ignores the value. When you specify OFFSET, ACIF keyword of the FIELD parameter, ACIF always uses the starting column number(s) from the OFFSET keyword to determine the location of the field value(s).
length
The number of contiguous bytes (characters) that compose the field. The supported range of values are 1 to 250. The field can extend outside the record length, if the column where it begins lies within the record length. In this case, ACIF adds padding blanks to fill out the record. If the field begins outside the maximum length of the record, ACIF reports an error condition and terminates processing.
OFFSET=(start:end)
Determines the location of the field value from the beginning of the record. The start is the column where the field begins. The end is the last column of field data. A maximum of eight pairs of beginning and ending offset values are allowed. Separate the pairs with a comma. When you specify the OFFSET keyword, you must also specify the MASK or REGEX keyword. The implied length of an OFFSET must be the same as the number of characters in the MASK or ACIF will not detect a match.
MASK='*@ # = ¬ ^ %'
Determines the pattern of symbols that ACIF matches with data located in the field columns. You can specify either a mask or a regular expression, but not both. When you specify the MASK keyword, you must also specify the OFFSET keyword. When you define a transaction field that includes a mask, an INDEX parameter based on the field cannot reference any other fields. An INDEX parameter based on a transaction field that includes a mask must create grouprange or pagegrange indexes.

Valid mask symbols include the following:

*
Not literal; matches a user-defined mask. See USERMASK.
@
Matches an alphabetic character.
#
Matches a numeric character.
=
Matches any character.
¬
Matches any non-blank character.
^
Matches any non-blank character.
%
Matches a blank character or numeric character.

Code page 850 is the default code page for the symbols in the MASK. If you specify a different code page (on the CPGID parameter), ACIF translates all characters in the MASK value, except the MASK symbols. ACIF then matches the input characters against the MASK value. For example, the following definitions cause ACIF to search columns ten through seventeen for a hexadecimal C1 followed by four numeric characters (hexadecimal F0-F9), a hexadecimal 60, and two numeric characters (hexadecimal F0-F9):

CPGID=500
FIELD3=*,*,8,(OFFSET=(10:17),MASK='A####-##',ORDER=BYROW) 

ORDER=BYROW | BYCOL
Specifies where ACIF can locate the smallest value and the largest value of a group of sorted values that are arranged in either rows or columns on the page. For ORDER=BYROW, ACIF extracts the first value in the first row and the last value in the last row that match the MASK. Data with a row orientation might appear as:
1 2 3
4 5 6
7 8

For ORDER=BYCOL, ACIF extracts the first value in the first column and the last value in the last column that match the MASK. Data with a column orientation might appear as:

1 4 7
2 5 8
3 6

The field parameter in the following example causes ACIF to locate a 10-character numeric string that begins in column three of any record in the group. This format of the FIELD parameter is used to create indexes for the beginning and ending sorted values of each group.

FIELD4=*,*,10,(OFFSET=(3:12),MASK='##########',ORDER=BYROW)