Troubleshooting the UPLOAD and DOWNLOAD Procedures

Symbol Is Not Recognized

During a PROC DOWNLOAD or a PROC UPLOAD step, you receive the following error message:
 ERROR 200-322: The symbol is not recognized.
This problem occurs if the file on the server that is being referenced by the INFILE= or the OUTFILE= option begins with a special character and is specified as FILEREF(filename). For example:
 PROC UPLOAD INFILE=pcflref 
    OUTFILE=hstflref($filname); 
 run;
To avoid the problem, enclose the filename with single quotation marks, as shown in the following example:
 PROC UPLOAD INFILE=pcflref 
    OUTFILE=hstflref('$filname'); 
 run;

Variable-Block Binary File LRECL Value Exceeds 256 Bytes

You transfer a variable-block binary file that has a record length (LRECL) that is greater than 256 bytes, and SAS/CONNECT segments the file into multiple 256-byte records. For example, downloading a binary file that has an LRECL of 1024 results in four 256-byte records.
The data is not lost when the file is segmented by SAS/CONNECT. Using the LRECL option in the FILENAME statement that is processed at the client or the server does not prevent the problem. To solve the problem, follow these steps:
  1. Define the z/OS FILENAME statement by using the RECFM=U parameter.
    FILENAME VFILE 'VARIABLE.BLOCK.FILE' RECFM=U;
  2. Use the DOWNLOAD procedure with the BINARY option to transfer the file. Information about the transfer that is displayed in the local Log windows shows how many bytes were transferred. For example:
    NOTE:  1231 bytes were transferred at 
           1231 bytes/second.
  3. At the client, use the RECFM= and the LRECL= options in the INFILE statement that is used to read in the transferred file, where RECFM= is set to S370VB and LRECL= is set to the number of bytes that are transferred.

Fixed-Block Binary File LRECL Value Exceeds 256 Bytes

You transfer a fixed-block binary file that has a record length (LRECL) that is greater than 256 bytes, and SAS/CONNECT segments the file into multiple 256-byte records. For example, downloading a binary file that has an LRECL of 1024 results in four 256-byte records.
The data is not lost when the file is segmented by SAS/CONNECT. Using the LRECL= option in the FILENAME statement at the client or the server does not prevent the problem. To solve the problem, follow these steps:
  1. Use the DOWNLOAD procedure with the BINARY= option to transfer the file.
  2. The INFILE statement that is used to read the transferred file must contain the options RECFM=F and LRECL=xxxx, where xxxx is equal to the LRECL parameter at the server.
Note: The RECFM= and LRECL= options in the FILENAME statement are supported only under z/OS operating environments. For details, see the FILENAME Statement: z/OS in SAS Companion for z/OS.

EBCDIC CC-Control Is Not Downloaded

When you use PROC DOWNLOAD on a print file, the EBCDIC carriage-control character 'F1'x is not downloaded.
To avoid the problem, change the SAS system option FILECC to NOFILECC.
Note: The FILECC system option is supported only under z/OS operating environments. For details, see FILECC System Option: z/OS in SAS Companion for z/OS.
The NOFILECC option indicates that the data in column 1 of a printer file should be treated as data and not carriage control. Releases of SAS later than SAS 6 use FILECC as the default setting, which you must change to NOFILECC in order to successfully download 'F1'x. In addition, the DCB characteristics of the print file must include a value for RECFM= of FBA or VBA.