/* REXX */
/**********************************************************************/
/* DESCRIPTION: EDIT MACRO TO SUBMIT CURRENT EDIT SESSION TO
     DSNTEP2 IN FOREGROUND AND BROWSE THE OUTPUT.                     */
/**********************************************************************/
/* the following statement uses dynastep to dynamically allocate the
   the db2 loadlib */
 "DS ADD('D0977.DB2.DBT1.DSNLOAD')"  FRONT NOMSG PUSH NOPROP

  ADDRESS ISPEXEC "ISREDIT MACRO"

  J = 0
/* SAVE THE CURRENT NON-EXCLUDED LINES FROM THE CURRENT EDIT SESSION */
  ADDRESS ISPEXEC "ISREDIT (LINES) = LINENUM .ZLAST"
  DO I = 1 TO LINES
    ADDRESS ISPEXEC "ISREDIT (STATUS) = XSTATUS" I
    IF STATUS = 'NX' THEN DO
      ADDRESS ISPEXEC "ISREDIT (LINE) = LINE" I
      J = J + 1
      SYSIN.J = LINE
    END
  END
/* DISPLAY A MESSAGE IF ALL THE LINES ARE EXCLUDED AND EXIT */
  IF J = 0 THEN DO
    ZEDSMSG = 'ALL LINES ARE EXCLUDED'
    ADDRESS ISPEXEC "SETMSG MSG(ISRZ001)"
    EXIT
  END

/* ALLOCATE SYSIN AND SYSPRINT DDNAMES TO TEMPORARY FILES AND WRITE
   THE SAVED EDIT SESSION LINES TO SYSIN  */
  "ALLOC DDNAME(SYSIN) NEW UNIT(DISK) SPACE(3) TRACKS REUSE"
  "EXECIO * DISKW SYSIN (STEM SYSIN. FINIS"
  "ALLOC DDNAME(SYSPRINT) NEW UNIT(DISK) SPACE(8,2) TRACKS REUSE"
  "NEWSTACK"
/* PLACE THE RUN AND END COMMANDS ON THE DATA STACK AND EXECUTE DSN */
/* change db2 plan name and loadlib as necessary */

  QUEUE "RUN PROGRAM(DSNTEP2) PLAN(DSNTEP61) LIB('SYS1.DB2.RUNLIB')"
  QUEUE "END"

  ADDRESS TSO "DSN SYSTEM(DBT1)"

  "DELSTACK"

/* BROWSE THE SYSPRINT FILE */
  ADDRESS ISPEXEC "LMINIT DATAID(IDVAR) DDNAME(SYSPRINT)"
  ADDRESS ISPEXEC "BROWSE DATAID(" || IDVAR || ")"
  ADDRESS ISPEXEC "LMFREE DATAID(" || IDVAR || ")"

/* FREE THE SYSIN AND SYSPRINT DDNAMES */
  "FREE DDNAME(SYSIN,SYSPRINT)"

  ZEDSMSG = 'MACRO COMPLETED'
  ADDRESS ISPEXEC "SETMSG MSG(ISRZ001)"

EXIT

    Source: geocities.com/swede27410