$LstFld: Difference between revisions
No edit summary |
No edit summary |
||
Line 54: | Line 54: | ||
<tr> | <tr> | ||
<td>z/OS</td> | <td>z/OS</td> | ||
<td>The JCL library</td> | <td>V7.5 and later: The distributed macro library <br>Pre-V7.5: The distributed JCL library </td> | ||
</tr> | </tr> | ||
<tr> | <tr> |
Revision as of 08:43, 14 June 2018
The $LSTFLD function returns field names in alphabetical order and the field description for each field in a file into an image. $LSTFLD requires that you have an image prepared with which Model 204 can create the field description. $LSTFLD works only for files (not groups).
Syntax
The format for the $LSTFLD function is:
%variable = $LSTFLD([FILE] filename [AT location],imagename,loopvar)
where:
- %variable is the %variable in which the return codes are stored. The return codes are:
- filename (required) is the name of the file that contains the fields. A file synonym name can also be used. If you do not enter a location, specifying a null argument, Model 204 uses the reference context (at compile time) of the statement which calls the function. When filename=groupname the $LSTFLD function assumes that the name passed is a file name, not a group name.
- imagename (required) is the name of the image where the information is to return.
- loopvar (required) is the loop variable of the image. You must initialize the loop variable (as in the sample image shown with the $FDef function) before invoking $LSTFLD. The value returned in loopvar is used the next time $LSTFLD is invoked to retrieve subsequent field names.
Setting | Meaning |
---|---|
0 | Success |
1 | End of field list reached |
2 | Requested file not available, or is not open, or is not initialized |
3 | VTBL full or sort not available |
4 | Error occurred during function processing |
Note
Like $LSTPROC, changing any of the loop control information in the $LSTFLD loop variable after the image is initialized is not allowed and might cause the run to snap.
Locating the ZFIELD image
An image is required by the $FDef and $LSTFLD functions. The ZFIELD image is provided with the Model 204 installation. It can give you complete field attribute information; see the discussion on $FDef. The size of the name field for the ZFIELD image is 255 bytes. The location of ZFIELD for your site is listed in this table:
Operating system | Storage location of the ZFIELD image |
---|---|
z/OS | V7.5 and later: The distributed macro library Pre-V7.5: The distributed JCL library |
z/VM | On the 193 MAINT204 disk as an EXEC |
z/VSE | The JCL library |
Example
In this example, the procedure DFIELDS displays the name and definition of each field in the file specified by %FILE.
PROCEDURE DFIELDS BEGIN * * include ZFIELD IMAGE as defined for $FDef * * PRINT 'DFIELDS STARTS' %FILE = '??FILE' NP PREPARE ZFIELD %ZFIELD:BIN1 = 0 %ZFIELD:BIN2 = 0 %ZFIELD:BIN3 = 0 %ZFIELD:BIN4 = 0 %X = 0 REPEAT WHILE %X = 0 %X = $LSTFLD(%FILE,'ZFIELD',%ZFIELD:LOOPVAR) IF %X = 0 THEN PRINT %ZFIELD:NAME PRINT %ZFIELD:FDEF END IF END REPEAT PRINT '-- END OF FIELDS RC=' %X END END PROCEDURE