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')'