Reformatting data elements

During ACCEPT, APPLY, and RESTORE processing, SMP/E must sometimes reformat a data element to be make it compatible with the library into which it is to be installed. This can happen when the data element is being installed from:
  • a variable-length record format to a fixed-length record format or from a fixed-length record format to a variable-length record format.
  • a fixed-length record format to a fixed-length record format and the input and output record lengths are not equal.
  • a variable-length record format to a variable-length record format and the input record length is greater than the output record length.
SMP/E uses these rules when reformatting:
  • If the input record length is greater than the output record length, and SMP/E can truncate the record to the correct length by removing only trailing blanks, then SMP/E will reformat the record. Otherwise, SMP/E will issue an error message and terminate the reformatting operation.
  • If the input record length is less than the output record length and the output record format is fixed, the record will be padded with blanks.
  • Sequence numbers (if present) will be preserved.
Table 1 describes the combinations of the supported record formats, appropriate actions, and identifies when reformatting or copying is necessary.
Table 1. Installation actions for input and output data sets
Input format Output format Condition Action
  • F,FB
  • F/FB
  • FS/FBS
  • Fx/FBx
  • V/VB
  • Vx,VBx
  • All others
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • N/A
  • N/A
  • N/A
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Reformat
  • Reformat
  • Error
  • FS,FBS
  • FS/FBS
  • F/FB
  • Fx/FBx
  • V/VB
  • Vx/VBx
  • All others
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • N/A
  • N/A
  • N/A
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Reformat
  • Reformat
  • Error
  • Fx,FBx
  • Fx/FBx
  • F/FB
  • FS/FBS
  • V/VB
  • Vx/VBx
  • Vy/VBy
  • Fy/FBy
  • All others
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • Output LRECL = Input
  • Output LRECL ¬= Input
  • N/A
  • N/A
  • N/A
  • N/A
  • N/A
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Reformat
  • Reformat
  • Error
  • Error
  • Error
  • V/VB
  • V/VB
  • Vx/VBx
  • F/FB
  • FS/FBS
  • Fx/FBx
  • All others
  • Output LRECL >= Input
  • Output LRECL < Input
  • Output LRECL >= Input
  • Output LRECL < Input
  • N/A
  • N/A
  • N/A
  • N/A
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Reformat
  • Reformat
  • Reformat
  • Error
  • Vx/VBx
  • Vx/VBx
  • V/VB
  • F/FB
  • FS/FBS
  • Fx/FBx
  • Fy/FBy
  • Vy/VBy
  • All others
  • Output LRECL >= Input
  • Output LRECL < Input
  • Output LRECL >= Input
  • Output LRECL < Input
  • N/A
  • N/A
  • N/A
  • N/A
  • N/A
  • N/A
  • Copy
  • Reformat
  • Copy
  • Reformat
  • Reformat
  • Reformat
  • Reformat
  • Error
  • Error
  • Error
VS
  • VS
  • All others
  • Output LRECL >= Input
  • Output LRECL < Input
  • N/A
  • Copy
  • Error
  • Error
VBS
  • VBS
  • All others
  • Output BLKSIZE = Input
  • Output BLKSIZE ¬= Input
  • N/A
  • Copy
  • Error
  • Error
  • any other format
  • any format
  • N/A
  • Error
Legend:
Data Set Format Descriptors
x
control character; A (ANSI) or M (machine)
y
control character; can be A (ANSI) or M (machine), but not the same as x
Actions
Copy
If the input data element is a member of a PDS (or PDSE) and the output element is a member of a PDS (or PDSE), SMP/E uses the copy utility to install the element. If output is a sequential data set, SMP/E installs the element itself.
Reformat
SMP/E installs the element with reformatting.
Error
Incompatible input/output RECFM combination. Installation fails.

At the end of processing, SMP/E issues a message indicating whether the data element has been replaced successfully.