FST

/*                                               2011/2015  MCSERRA  */
/* ----------------------------------------------------------------- */
/*                                             NAO ALTERAR POR FAVOR */
/* FST
     TSO/ISPF COMMAND - DESCRICAO SUMARIA DE FILE STATUS CODES
     SINTAX:
        TSO FST <FILE_SATAUS_CODE>
        EXEMPLO:  TSO FST 39
*/
/* ----------------------------------------------------------------- */
PARSE ARG FILESTA
   "ISPEXEC CONTROL ERRORS RETURN"
   FILESTA = STRIP(FILESTA)
   IF FILESTA = "" THEN
      DO
        "ISPEXEC VIEW DATASET('DES.CCS.EXEC(Z#FILEST)')"
        EXIT
      END
   IF LENGTH(FILESTA) = 1 THEN
      FILESTA = STRIP(FILESTA)' '
   IF DATATYPE(SUBSTR(FILESTA, 1, ), NUMBER) <> 1 THEN
      DO
         ZEDSMSG = FILESTA ' INVALIDO'
         ZEDLMSG = 'FILESTA ' FILESTA ' DEVE SER NUMERICO'
         "ISPEXEC SETMSG MSG(ISRZ001)"
         EXIT
      END

   FST.0 = 0
   "ALLOC DA('DES.CCS.EXEC(Z#FILEST)') FI(DIN) SHR REU"
   "EXECIO * DISKR DIN (STEM FST. OPEN FINIS"
   IF RC > 4 THEN
      DO
         ZEDSMSG = 'ERRO FICH. FILESTAS'
         ZEDLMSG = 'ERRO ABERTURA DO FICHEIRO FILESTAS: ' RC
         "ISPEXEC SETMSG MSG(ISRZ001)"
         EXIT
      END
   "FREE FI(DIN)"
   TOTL = FST.0

   IF TOTL = 0 THEN
      DO
        ZEDSMSG = 'FICH. FILESTAS VAZIO'
        ZEDLMSG = 'FICHEIRO FILESTAS SEM DADOS'
        "ISPEXEC SETMSG MSG(ISRZ001)"
        EXIT
      END
   RESULT = ""
   DO N = 1 TO TOTL
      FSTCF = SUBSTR(FST.N, 1, 2)
      IF FILESTA = FSTCF THEN
      DO
          /* SAY FST.N  */
          ZEDLMSG = STRIP(FST.N)
          "ISPEXEC SETMSG MSG(ISRZ001)"
          EXIT
      END
   END
   ZEDSMSG =  FILESTA ' INEXISTENTE'
   ZEDLMSG = 'FILESTA ' FILESTA ' NAO ENCONTRADO NO FICHEIRO'
   "ISPEXEC SETMSG MSG(ISRZ001)"
 EXIT
/*                                 */
/*                                               2011/2015  MCSERRA  */

Comentários

Mensagens populares deste blogue

CC

ED

Z#SQLCOD