Example (MULTX)

This REXX example invokes the LMPUT service to process a data set in MULTX mode, writing blocks of data in segments no larger than 32 000 bytes. LMPUT pads records that are too short with blanks and truncates records that are too long for the target data set.
  /* REXX to write out some data to a VB dataset */
   REC = ''
   DLEN = 0
   DO I = 1 TO 100
     X = 5 * I
     A = 'DATA LINE 'I' '
     DO J = 1 TO X
       A = A || 'D'
     END
     RLEN = LENGTH(A)
     NLEN = DLEN + RLEN + 2
     IF NLEN > 32000 THEN DO
        /* WRITE CURRENT BUFFER BEFORE IT GETS TOO BIG */
        'LMPUT DATAID('TESTFILE') MODE(MULTX) DATALOC(REC) ,
        DATALEN('DLEN')'
        IF RC > 0 THEN I = 1000
        REC = ''
        DLEN = RLEN + 2
     END
     ELSE DLEN = NLEN
     RLEN = D2C(RLEN,2)
     REC = REC || RLEN || A
   END
   /* WRITE LAST BUFFER */
   'LMPUT DATAID('TESTFILE') MODE(MULTX) DATALOC(REC) ,
    DATALEN('DLEN')'