Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Programming Guide

Calling PLISRTB example

Figure 51. PLISRTB—sorting from input handling routine to output data set
 //OPT14#8  JOB ...
 //STEP1 EXEC IBMZCBG
 //PLI.SYSIN DD *
  EX107:  PROC OPTIONS(MAIN);
      DCL RETURN_CODE FIXED BIN(31,0);

      CALL PLISRTB (' SORT FIELDS=(7,74,CH,A) ',
                   ' RECORD TYPE=F,LENGTH=(80) ',
                   1048576
                   RETURN_CODE,
                   E15X);
      SELECT(RETURN_CODE);
        WHEN(0)  PUT SKIP EDIT
            ('SORT COMPLETE RETURN_CODE 0') (A);
        WHEN(16) PUT SKIP EDIT
            ('SORT FAILED, RETURN_CODE 16') (A);
        WHEN(20) PUT SKIP EDIT
            ('SORT MESSAGE DATASET MISSING ') (A);
        OTHER   PUT SKIP EDIT
            ('INVALID RETURN_CODE = ',RETURN_CODE)(A,F(2));
      END /* select */;
      CALL PLIRETC(RETURN_CODE);
       /*set PL/I return code to reflect success of sort*/

  E15X:   /* INPUT HANDLING ROUTINE GETS RECORDS FROM THE INPUT
             STREAM AND PUTS THEM BEFORE THEY ARE SORTED*/
      PROC RETURNS (CHAR(80));
           DCL SYSIN FILE RECORD INPUT,
               INFIELD CHAR(80);

           ON ENDFILE(SYSIN) BEGIN;
              PUT SKIP(3) EDIT ('END OF SORT PROGRAM INPUT')(A);
              CALL PLIRETC(8);  /* signal that last record has
                                  already been sent to sort*/
              INFIELD = '';
              GOTO ENDE15;
              END;

            READ FILE (SYSIN) INTO (INFIELD);
            PUT SKIP EDIT (INFIELD)(A(80)); /*PRINT INPUT*/
            CALL PLIRETC(12);  /* request sort to include current
                                record and return for more*/
     ENDE15:
           RETURN(INFIELD);
           END E15X;
   END EX107;
 /*
 //GO.SYSIN DD *
 003329HOOKER S.W. RIVERDALE, SATCHWELL LANE, BACONSFIELD
 002886BOOKER R.R. ROTORUA, LINKEDGE LANE, TOBLEY
 003077ROOKER & SON, LITTLETON NURSERIES, SHOLTSPAR
 059334HOOK E.H. 109 ELMTREE ROAD, GANNET PARK, NORTHAMPTON
 073872HOME TAVERN, WESTLEIGH
 000931FOREST, IVER, BUCKS
 /*
 //GO.SYSPRINT DD SYSOUT=A
 //GO.SORTOUT  DD SYSOUT=A
 //GO.SYSOUT DD SYSOUT=A
 //*
 //GO.SORTCNTL DD *
    OPTION DYNALLOC=(3380,2),SKIPREC=2
 /*

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)