CPYTOSTMF (Copy To Stream File)

 

+
Search Tips   |   Advanced Search

 

Purpose

The Copy to Stream File (CPYTOSTMF) command copies either a database file member or a save file to a stream file.

See also: Integrated file system

To use CPYTOSTMF, have the following authority:

Authority Description
*X To directories in the path name prefix of the database file, or save file, and stream file.
*RX To the database file or save file.
*W To the stream file if the stream file already exists.
*WX To the stream file's parent directory if the stream file does not already exist.

The database-member-path-name must be of the form name.object-type. For example...

/QSYS.LIB/LIBA.LIB/FILEA.FILE/MBRA.MBR

...is the form required by the QSYS.LIB file system.

The save-file-path-name must be of the form name.object-type. For example,...

/QSYS.LIB/LIBA.LIB/SAVEFILEA.FILE

...is the form required by the QSYS.LIB file system.

 

Required Parameters

FROMMBR

Specifies the path name of the database file member or save file from which data is copied. When copying from a member, the file may be a source physical file or a program-described physical file. Source physical files with multiple data fields are not supported.

If the database file is a source physical file, the sequence number and date stamp are removed when the records are written to the stream file.

TOSTMF

Specifies the path name of the stream file to which data is copied. All directories in the path name must exist. New directories are not created. If the stream file does not exist, it is created.

CPYTOSTMF can operate on files of type *STMF and on the /dev/null character special file for the stream file parameter.

The QSYS.LIB and independent ASP QSYS.LIB > file systems do not allow attributes to be set, so if the path name specified on the TOSTMF parameter is a QSYS member, diagnostic messages will appear in the joblog. The diagnostic messages will not prevent the copy operation from completing successfully and can be ignored. information on specifying path names.

 

Optional Parameters

STMFOPT

Specifies whether the copy operation replaces, adds, or fails to copy the records in a stream file if a stream file with the specified name already exists. If the stream file does not exist, it is created.

*NONE No records are copied and an error condition is created.
*ADD The records are added to the end of the existing stream file records. This value is not allowed when copying a save file.
*REPLACE The records replace the existing stream file records.

CVTDTA

Specifies the process for converting the data from the database file member to the stream file.

This parameter is ignored when copying a save file.

AUTO The data is converted during the copy operation using the coded character set identifier (CCSID) equivalent of the stream file data code page and the database file CCSID. Single-byte and double-byte character sets are supported. The stream file data code page must be specified on the STMFCODPAG parameter, and the database file CCSID must be specified on the DBFCCSID parameter.
*TBL The data is converted using a conversion table. Only single-byte character sets are supported. The conversion table must be specified on the TBL parameter. If a conversion table is not available, an error will occur.
*NONE Only the removal of the sequence numbers and date stamp from source physical files and the optional insertion of specified line-formatting characters into the stream file are performed. Database file CCSID to stream file code page conversion of other characters is not performed.

DBFCCSID

Specifies the method of obtaining the database file CCSID.

This parameter is ignored when copying a save file.

FILE The database file CCSID is used, unless it is 65535. If the database file CCSID is 65535, the operation will fail. If the database file is a program-described file the job's CCSID is used.
coded-character-set-identifier Specify the database file CCSID. The values 0, 65534, and 65535 are not valid.

STMFCODPAG

Specifies the method of obtaining the stream file code page and the CCSID used for data conversion.

This parameter is ignored when copying a save file.

STMF If the stream file exists and data conversion is requested, the CCSID equivalent of the code page associated with the stream file is used to perform the conversion.

If the stream file does not exist, the code page equivalent of the source database file CCSID is computed and associated with the stream file.

If the data base file CCSID is a mixed encoding scheme, only the single byte code page is written to the stream file.

*STDASCII If the stream file exists, this option is valid only if the code page associated with the stream file is the same as the specified value. Otherwise, the operation will fail.

If the stream file does not exist, a code page in the IBM PC Data encoding scheme (x2100) is computed. This code page is associated with the target stream file and is used for data conversion if it is requested.

*PCASCII If the stream file exists, this option is valid only if the code page associated with the stream file is the same as the specified value. Otherwise, the operation will fail.

If the stream file does not exist, a code page in the Microsoft Windows encoding scheme (x4105) is computed. This code page is associated with the target stream file and is used for data conversion if it is requested. This option allows the resulting data to be used by Microsoft Windows applications.

code-page Specify the code page used. If the stream file exists, this option is valid only if the code page associated with the stream file is the same as the specified value. Otherwise, the operation will fail. If the stream file does not exist, the specified code page is used and associated with the stream file.

TBL

Specifies the path name of the conversion table used to convert data from the database file member to the stream file. See path names for more information on specifying path names.

This parameter is required and valid only if CVTDTA(*TBL) is specified. This parameter is ignored when copying a save file.

ENDLINFMT

Specifies the end-of-line characters to insert into the stream file during the copying of records.

This parameter is ignored when copying a save file.

If one of the end-of-line character options is selected (ENDLINFMT(*FIXED) is not specified) the database file records are transformed to variable-length stream file text lines as they are copied. Each database file record is trimmed of any trailing blanks. Then, the data is converted to the destination data format (if specified) and the end-of-line character is appended to the end of the text line. The text line is copied to the stream file.

CRLF Carriage-return followed by line-feed is appended to the end of each line.
*LF Line-feed is appended to the end of each line.
*CR Carriage-return is appended to the end of each line.
*LFCR Line-feed followed by carriage-return is appended to the end of each line.
*FIXED The lines in the stream file are written as fixed length records. CR and LF characters are not added at the end of each line, trailing blanks are not removed from the end of each record. The length of the stream file records equals the length of the database file records.

Only stream files and database files with compatible encoding schemes which do not result in the expansion of data record lengths are valid with this option. If an incompatible combination of encoding schemes is detected, the operation will fail.

The following encoding scheme combinations are supported:

  • Single-byte to single-byte

  • Double-byte to double-byte

  • Mixed ASCII to mixed ASCII

  • Mixed EBCDIC to mixed EBCDIC

 


 

Examples for CPYTOSTMF

 

Copy Data from a Database File Member to a Stream File Using Automatic Conversion

 
    CPYTOSTMF FROMMBR('/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYMBR.MBR')
              TOSTMF('STMF.TXT')

CPYTOSTMF copies the data contained in database file member...

/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYMBR.MBR

...to a stream file named STMF.TXT in the current working directory. Automatic data conversion uses the database file CCSID and the code page equivalent of the database file CCSID. The database file member records are stripped of trailing blanks, and CR and LF characters are inserted at the end of each record since ENDLINFMT(*CRLF) is the default value. If the stream file STMF.TXT already exists in the current working directory, the copy operation is not performed since STMFOPT(*NONE) is the default value.

 

Copy Data from a Database File Member to a Stream File Using a Conversion Table

    CPYTOSTMF FROMMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
              TOSTMF('/MYDIR/FINANCE.MNG')  
              CVTDTA(*TBL)
              DBFCCSID(37)  
              STMFCODPAG(437)
              TBL('/QSYS.LIB/QUSRSYS.LIB/TBL1.TBL')
              ENDLINFMT(*CRLF)

CPYTOSTMF copies the data contained in database file member /QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR to a stream file named FINANCE.MNG in the user directory /MYDIR. The data is converted using the conversion table TBL1.TBL contained in the directory /QSYS.LIB/QUSRSYS.LIB. The records in the database file member are trimmed of any trailing blanks, appended with CR and LF characters, and written to the stream file. The blank characters in the database file member are recognized from CCSID 37 specified on the DBFCCSID parameter. The inserted line-formatting characters: CR and LF, correspond to those of code page 437 specified on the STMFCODPAG parameter. If the stream file exists, it must have a code page of 437.

 

Copy Data from a Database File Member to a Stream File Without Data Conversion

    CPYTOSTMF FROMMBR('/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR')
              TOSTMF('/MYDIR/FINANCE.MNG')  
              CVTDTA(*NONE)
              ENDLINFMT(*FIXED)

CPYTOSTMF copies the data contained in database file member....

/QSYS.LIB/FINANCE.LIB/STAFF.FILE/MNGR.MBR

...to the stream file FINANCE.MNG in the user directory MYDIR without data conversion. The stream file data is written as fixed-length records of the same length as the database file records. No line-formatting characters are inserted since ENDLINFMT(*FIXED) is specified. If the encoding scheme of the stream file and the database file differ, the copy ends with an error message.

Copy Data from a Save File to a Stream File

   CPYTOSTMF FROMMBR('/QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILE')
             TOSTMF('/MYDIR/SOFTWARE')

CPYTOSTMF copies the data contained in save file...

/QSYS.LIB/PACKAGE.LIB/SOFTWARE.FILE

...to the stream file /MYDIR/SOFTWARE. The stream file data is written as fixed-length records of the same length as the save file records. No line-formatting characters are inserted, nor is any data conversion performed.

Error messages for CPYTOSTMF

*ESCAPE Messages

CPFA085

Home directory not found for user &1.

CPFA097

Object not copied.