When you transfer a Variable Blocked file from Mainframe to Windows or Unix ans want to keep the data unchanged you cannot use CODE=ASCII or CODE=EBCDIC as in both cases the CRLF will be placed at the end of every record thus changing the transferred data.
The only transfer mode which does not change anything is CODE=BINARY. But for Variable Blocked files the information on the length of the records (stored in the Block Descriptor Word - BDW) is lost. When retransferring the same file back to the Mainframe the result is that once separate records are glued together due to missing information on the length of the Records.
Here SYSIN01-parameter VLR comes into play. When specifying VLR=YES (only valid for FILETYPE=FILE and CODE=BINARY) on the transfer from Mainframe to Windows or Unix XCOM prefixes every recods with a four byte length field.
When you transfer back to the Mainframe you again need to specify CARRIAGE_FLAG=VLR or select 'BINARY (VLR)' in field “Encoding” of the XCOM Windows GUI for the transfer. Then the length fields are used to recreate the variable blocked file on the Mainframe.
Excellent information. Thank you for sharing this with the community!