RXS_ProcessStmf()

This subprocedure can be used to create, copy, move, rename, or delete a specified IFS stream file.

Subprocedure Prototype

D RXS_ProcessStmf...
D                 PR                  Extproc('RXS_ProcessStmf') Opdesc
 
D  pDS                                Like(RXS_Var64K_t)
D                                     Options(*Varsize)

Contains the IFS file path as well as configuration options to control how the data is written. May be one of a few possible data structures, listed below.

Example Code

*--------------------------------------------------------------
* This example code creates a stream file named new_file.xml in 
* the IFS directory /tmp with CCSID 819.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D CreateStmfDS    DS                  LikeDS(RXS_CreateStmfDS_t)
D                                     Inz(*LikeDS)
 /free

   RXS_ResetDS( CreateStmfDS : RXS_DS_TYPE_CREATESTMF );
   CreateStmfDS.Stmf = '/tmp/new_file.xml';
   CreateStmfDS.Ccsid = RXS_CCISD_ISO88591;
   RXS_ProcessStmf( CreateStmfDS );

   *INLR = *ON;
 /end-free
*--------------------------------------------------------------
* This example code copies an IFS file from /tmp/new_file.xml to 
* /tmp/copied_new_file.xml.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D CopyStmfDS      DS                  LikeDS(RXS_CopyStmfDS_t)
D                                     Inz(*LikeDS)
 /free

   RXS_ResetDS( CopyStmfDS : RXS_DS_TYPE_COPYSTMF );
   CopyStmfDS.FromStmf = '/tmp/new_file.xml';
   CopyStmfDS.ToStmf = '/tmp/copied_new_file.xml';
   RXS_ProcessStmf( CopyStmfDS );

   *INLR = *ON;
 /end-free
*--------------------------------------------------------------
* This example code moves an IFS file from /tmp/new_file.xml 
* to /tmpdir/new_file.xml. Note that this can only be used
* to move the file to a new directory, not to rename the file.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D MoveStmfDS      DS                  LikeDS(RXS_MoveStmfDS_t)
D                                     Inz(*LikeDS)
 /free

   RXS_ResetDS( MoveStmfDS : RXS_DS_TYPE_MOVESTMF );
   MoveStmfDS.Stmf = '/tmp/new_file.xml';
   MoveStmfDS.ToDir = '/tmpdir/new_file.xml';
   RXS_ProcessStmf( MoveStmfDS );

   *INLR = *ON;
 /end-free
*--------------------------------------------------------------
* This example code deletes an IFS file named /tmp/moved_new_file.xml.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D DeleteStmfDS    DS                  LikeDS(RXS_DeleteStmfDS_t)
D                                     Inz(*LikeDS)
 /free

   RXS_ResetDS( DeleteStmfDS : RXS_DS_TYPE_DELETESTMF );
   DeleteStmfDS.Stmf = '/tmp/new_file.xml';
   RXS_ProcessStmf( DeleteStmfDS );

   *INLR = *ON;
 /end-free
*--------------------------------------------------------------
* This example code renames an IFS file from /tmp/new_file.xml 
* to /tmp/renamed_new_file.xml. Note that this can only be used
* to rename the file, not move it to a new directory.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D RenameStmfDS    DS                  LikeDS(RXS_RenameStmfDS_t)
D                                     Inz(*LikeDS)
 /free

   RXS_ResetDS( RenameStmfDS : RXS_DS_TYPE_RENAMESTMF );
   RenameStmfDS.FromStmf = '/tmp/new_file.xml';
   RenameStmfDS.ToStmf = '/tmp/renamed_new_file.xml';
   RXS_ProcessStmf( RenameStmfDS );

   *INLR = *ON;
 /end-free

Data Structures

D RXS_CopyStmfDS_t...
D                 DS                  Qualified Template Inz
 
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
 
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_COPYSTMF)

Internal use only

D   OnErrorMessageType...
D                                5I 0
 
D   FromStmf                          Like(RXS_Var1Kv_t)

Specify the IFS file path to copy from.

D   ToStmf                            Like(RXS_Var1Kv_t)

Specify the IFS file path to copy to.

D   ToCcsid                     10I 0

Specify the CCSID the copied file will use.

D   Reserved                  2048A

Internal use only

D RXS_CreateStmfDS_t...
D                 DS                  Qualified Template Inz
 
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
 
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_CREATESTMF)

Internal use only

D   OnErrorMessageType...
D                                5I 0
 
D   Stmf                              Like(RXS_Var1Kv_t)

Specify IFS path where the file will be created.

D   Ccsid                       10I 0

Specify the CCSID to create the file with.

D   Reserved                  2048A

Internal use only

D RXS_DeleteStmfDS_t...
D                 DS                  Qualified Template Inz
 
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
 
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_DELETESTMF)

Internal use only

D   OnErrorMessageType...
D                                5I 0
 
D   Stmf                              Like(RXS_Var1Kv_t)

Specify the IFS file path to delete.

D   Reserved                  2048A

Internal use only

D RXS_MoveStmfDS_t...
D                 DS                  Qualified Template Inz
 
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
 
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_MOVESTMF)

Internal use only

D   OnErrorMessageType...
D                                5I 0
 
D   Stmf                              Like(RXS_Var1Kv_t)

Specify the IFS file path to move from.

D   ToDir                             Like(RXS_Var1Kv_t)

Specify an IFS file directory to move to. Note: You should only specify a directory path, not a full path to a file.

D   Reserved                  2048A

Internal use only

D RXS_RenameStmfDS_t...
D                 DS                  Qualified Template Inz
 
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
 
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_RENAMESTMF)

Internal use only

D   OnErrorMessageType...
D                                5I 0
 
D   FromStmf                          Like(RXS_Var1Kv_t)

Specify the IFS file path to rename from.

D   ToStmf                            Like(RXS_Var1Kv_t)

Specify the IFS file path to rename to.

D   Reserved                  2048A

Internal use only