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