CALL DATA statement
CALL DATA statements provide IMS with information normally supplied in the I/O area for that type of call function.
CALL DATA statements must follow the last CALL FUNCTION statement. You must enter an L in column 1, the keyword DATA in columns 10 through 13, and code the necessary data in columns 16 through 71. You can continue data by entering a nonblank character in column 72. On the continuation statement, columns 1 through 15 are blank and the data resumes in column 16. The following table shows the format for a CALL DATA statement.
Column | Function | Code | Description |
---|---|---|---|
1 | Identifies control statement | L | CALL DATA statement. |
2 | Increase segment length | K | Adds 2500 bytes to the length of data defined in columns 5 through 8. |
3 | Propagate remaining I/O indicator | P | Causes 50 bytes (columns 16 through 65) to be propagated
through remaining I/O area. Note: This must be the last data statement
and cannot be continued.
|
4 | Format options | b | Not a variable-length segment. |
V | For the first statement describing the only variable-length segment or the first variable-length segment of multiple variable-length segments, LL field is added before the segment data. | ||
M | For statements describing the second through the last variable-length segments, LL field is added before the segment data. | ||
P | For the first statement describing a fixed-length segment in a path call. | ||
Z | For message segment, LLZZ field is added before the data. | ||
U | Undefined record format for GSAM records. The length of segment for an ISRT is placed in the DB PCB key feedback area. | ||
5-8 | Length of data in segment | nnnn | This value must be right justified but need not contain leading zeros. If you do not specify a length, DFSDDLT0 will use the number of DATA statements read multiplied by 56 to derive the length. |
9 | Reserved | b | |
10-13 | Identifies CALL DATA statement | DATA | Identifies this as a DATA statement. |
14-15 | Reserved | b | |
16-71 or |
Data area | xxxx | Data that goes in the I/O area. |
16-23 or |
Checkpoint ID | Checkpoint ID (SYNC). | |
16-23 or |
Destination name | Destination name (CHNG). | |
16 | DEQ option | DEQ options (A,B,C,D,E,F,G,H,I, or J). | |
72 | Continuation column | b | If no more continuations for this segment. |
x | If more data for this segment or more segments. | ||
73-80 | Sequence indication | nnnnnnnn | For SYSIN2 statement override. |
When inserting variable-length segments or including variable-length data for a CHKP or LOG call:
- You must use a V or M in column 4 of the CALL DATA statement.
- Use V if only one variable-length segment is being processed.
- You must enter the length of the data with leading zeros, right justified, in columns 5 through 8. The value is converted to binary and becomes the first 2 bytes of the segment data.
- You can continue a CALL DATA statement into the next CALL DATA statement by entering a nonblank character in column 72. For subsequent statements, leave columns 1 through 15 blank, and start the data in column 16.
If multiple variable-length segments are required (that is, concatenation of logical child and logical parent segments, both of which are variable-length) for the first segment:
- You must enter a V in column 4.
- You must enter the length of the first segment in columns 5 through 8.
- If the first segment is longer than 56 bytes, continue the data
as described for inserting variable-length segments. Exceptions:
- The last CALL DATA statement to contain data for this segment must have a nonblank character in column 72.
- The next CALL DATA statement applies to the next variable-length statement and must contain an M in column 4 and the length of the segment in columns 5 through 8.
You can concatenate any number of variable-length segments in this manner. Enter M or V and the length (only in CALL DATA statements that begin data for a variable-length segment).
When a program is inserting or replacing through path calls:
- Enter a P in column 4 to specify that the length field is to be used as the length the segment will occupy in the user I/O area.
- You only need to use P in the first statement of fixed-length-segment CALL DATA statements in path calls that contain both variable- and fixed-length segments.
- You can use V, M, and P in successive CALL DATA statements.
For INIT, SETS, ROLS, and LOG calls:
- The format of the I/O area is
where LL is the length of the data in the I/O area, including the length of the LLZZ portion.LLZZuser-data
- If you want the program to use this format for the I/O area, enter a Z in column 4 and the length of the data in columns 5 through 8. The length in columns 5 through 8 is the length of the data, not including the 4-byte length of LLZZ.