OUTTRAP - Meldungen auffangen

REXX TSO und MVS Built-In Funktionen

Syntax:                                 
OUTTRAP(<"OFF">/<var<,<max>,<concat>,<skipamt>>>)
OFF - Trap auschalten
var - Trap Variable
max - maximum Lines (Default * - 999.999.999)
"CONCAT"/"NOCONCAT"
skipamt - Skip Anzahl (Default 0 - max 9999.9999.999)

/* REXX OUTTRAP Copyright YCOS Yves Colliard Software 1990-2009 */
/* TRACE ?R  */
  /* einschalten des interaktiven Trace Modus */
  /* */
/* CONCAT - die Messages alle Kommandos werden gesammelt           */
resp = OUTTRAP("ycos.","*","CONCAT")
SAY resp                        /* Ausgabe: YCOS.                  */
                                /* Trap aller Messages             */
                                /*      aller Kommandos            */
"FREE FI(YCOS)"                 /* FREE TSO Kommando               */
"TIME"                          /* TIME TSO Kommando               */
  /* */
SAY "Anzahl Zeilen :" ycos.0
DO i=1 to ycos.0
   SAY "Zeile" i "    :" ycos.i /* FREE + TIME Messages            */
END
SAY "Maximum Zeilen:" ycos.MAX
SAY "Trapped Zeilen:" ycos.TRAPPED
SAY "CONCAT ?      :" ycos.CON
  /* */
/* NOCONCAT - nur die Messages des letzten Kommando werden gesammelt */
resp = OUTTRAP("ycos.",1,"NOCONCAT")
SAY resp                        /* Ausgabe: YCOS.                  */
                                /* Trap einer Message              */
                                /*      eines Kommandos            */
"FREE FI(YCOS)"                 /* FREE TSO Kommando               */
"TIME"                          /* TIME TSO Kommando <- Uber FREE  */
  /* */
SAY "Anzahl Zeilen :" ycos.0
DO i=1 to ycos.0
   SAY "Zeile" i "    :" ycos.i /* nur TIME Messages - NOCONCAT    */
END
SAY "Maximum Zeilen:" ycos.MAX
SAY "Trapped Zeilen:" ycos.TRAPPED
SAY "CONCAT ?      :" ycos.CON
  /* */
SAY OUTTRAP()                   /* Ausgabe: YCOS.                  */
  /* */
resp = OUTTRAP("OFF")           /* Trapping ausschalten            */
SAY resp                        /* Ausgabe: OFF                    */
SAY OUTTRAP()                   /* Ausgabe: OFF                    */
  /* */
/* Beispiel fuer SKIP-AMOUNT */
maxlines=20                     /* max Lines pro Verarbeitung      */
  /* */
resp = OUTTRAP("ycos.",0)       /* wie viel Zeilen?                */
SAY resp                        /* Ausgabe: YCOS.                  */
"LISTA ST H"                    /* LISTA TSO Kommando              */
SAY "Anzahl Zeilen :" ycos.0
DO i=1 to ycos.0
   SAY "Zeile" i "    :" ycos.i /* FREE + TIME Messages            */
END
SAY "Maximum Zeilen:" ycos.MAX
SAY "Trapped Zeilen:" ycos.TRAPPED
SAY "CONCAT ?      :" ycos.CON
SAY "SKIP Amount ? :" ycos.SKIPAMT
SAY "SKIPED Lines ?:" ycos.SKIPPED
  /* */
totlines=ycos.TRAPPED           /* soviel zu verarbeiten           */
anz_aufruf = 0                  /* Anzahl Aufrufe                  */
anz_zeilen = 0                  /* Anzahl Zeilen                   */
  /* */
do while totlines>0             /* no was zu tun?                  */
  resp = OUTTRAP("ycos.",maxlines,"NOCONCAT",maxlines*anz_aufruf)
                                /* Trap aller Messages             */
                                /*      eines Kommandos            */
  SAY resp                      /* Ausgabe: YCOS.                  */
  "LISTA ST H"                  /* LISTA TSO Kommando              */
  /* */
  anz_aufruf=anz_aufruf+1
  SAY "---------------" anz_aufruf "Loop"
  SAY "Anzahl Zeilen :" ycos.0
  DO i=1 to ycos.0
    anz_zeilen=anz_zeilen+1
    SAY "Zeile" anz_zeilen "    :" ycos.i /* LISTA ST H Messages   */
  END
  SAY "Maximum Zeilen:" ycos.MAX
  SAY "Trapped Zeilen:" ycos.TRAPPED
  SAY "CONCAT ?      :" ycos.CON
  SAY "SKIP Amount ? :" ycos.SKIPAMT
  SAY "SKIPED Lines ?:" ycos.SKIPPED
  totlines=totlines-maxlines
end
  /* */
resp = OUTTRAP("OFF")           /* Trapping ausschalten            */
  /* */