Newsletters   Subscriptions  Forums  Store   Career  Media Kit  About Us  Contact  Search   Home 
fhg
Volume 5, Number 17 -- April 27, 2005

Suppress Runtime Display When Qshell Cancels


Hey, Ted:


Tahler's Qshell tip works great. If there is an error in a CL program that runs the Start Qshell command (STRQSH or QSH), I receive escape message QSH0005. Unfortunately, an error also causes the system to display the C runtime display when I run interactively. I have to press Enter to continue. Can I suppress the error display?

--John



Yes. I wish I had included that information when we ran the article you mentioned. You need to assign the value NONE to environment variable QIBM_QSH_CMD_OUTPUT.

addenvvar  envvar(QIBM_QSH_CMD_OUTPUT) value('NONE')

Here's more information I wish I had included: I have found that it's often advantageous to build the Qshell command in a character variable, which can be dumped when the program cancels. When I view the entire command in the dump, my problem is often obvious.

By way of example, here's a CL program that runs the tr (Translate) command. Let's call it CONVERT.

pgm parm(&FromFile &ToFile &Conv)

   dcl   &Conv          *char     32
   dcl   &FromFile      *char     64
   dcl   &ToFile        *char     64

   dcl   &Abending      *lgl
   dcl   &Command       *char    128
   dcl   &MsgID         *char      7
   dcl   &MsgDta        *char    256
   dcl   &MsgF          *char     10
   dcl   &MsgFLib       *char     10
   dcl   &MsgKey        *char      4
   dcl   &PgmName       *char     10
   dcl   &RtnType       *char      2
   dcl   &Sender        *char     80

   monmsg cpf0000 exec(goto ForwardMsg)

   /* retrieve the program name */
   sndpgmmsg msg(' ') topgmq(*same) msgtype(*info) keyvar(&msgkey)
   rcvmsg    pgmq(*same) msgtype(*info) sender(&sender) rmv(*yes)
   chgvar    &PgmName   %sst(&Sender 56 10)

   /* convert the data */

   chgvar  var(&Command) +
           value('tr' *bcat &Conv *bcat '<' *cat +
                 &FromFile *bcat '>' *cat &ToFile)

   addenvvar  envvar(QIBM_QSH_CMD_ESCAPE_MSG) value('Y')
   monmsg cpfa980 exec(do)
      rcvmsg msgtype(*excp) rmv(*yes)
   enddo
   addenvvar  envvar(QIBM_QSH_CMD_OUTPUT) value('NONE')
   monmsg cpfa980 exec(do)
      rcvmsg msgtype(*excp) rmv(*yes)
   enddo
   QSH cmd(&Command)
   monmsg qsh0005 exec(goto abend)

   /* normal end of job */
   sndpgmmsg  msgid(cpf9898) msgf(qcpfmsg) msgtype(*comp) +
                   msgdta('Program' *bcat &PgmName *bcat +
                          'completed normally')
      return

   /* Routine to handle unexpected errors */
Abend:
      if &Abending then(return)
      chgvar   &Abending '1'
      dmpclpgm

ForwardMsg:
      rcvmsg     msgtype(*any) msgdta(&msgdta) msgid(&msgid) +
                    rtntype(&RtnType) +
                    msgf(&msgf) sndmsgflib(&msgflib)
      if ((&RtnType *eq '02') *or   /* diagnostic */ +
          (&RtnType *eq '15') *or (&RtnType *eq '17')) do  /* *escape */
         sndpgmmsg  msgid(&msgid)  msgf(&msgflib/&msgf) msgtype(*diag) +
                   msgdta(&msgdta)
      enddo
      if (&RtnType *ne '  ') then(goto ForwardMsg)
Escape:
   sndpgmmsg  msgid(cpf9898) msgf(qcpfmsg) msgtype(*escape) +
                msgdta('Program' *bcat &PgmName *bcat +
                       'ended abnormally')
endpgm

The call from another program might look like this:


dcl   &Conv          *char     32
dcl   &FromFile      *char     64
dcl   &ToFile        *char     64

chgvar  &conv   value('[:lower:] [:upper:]')
chgvar  &FromFile +
           value('/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MBR1.MBR')
chgvar  &ToFile +
           value('/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MBR2.MBR')
call Convert parm(&FromFile &ToFile &Conv)

--Ted

Sponsored By
ADVANCED SYSTEMS CONCEPTS

SEQUEL can be used for virtually ALL data access functions on the iSeries.

A Windows-based user interface makes it easy to design queries and reports.

SEQUEL offers executive dashboards, drill-down data analysis and run-time prompts to deliver important iSeries data to managers and other non-technical users.

E-mail and FTP delivery let you deliver information to remote users and servers.

www.asc-iseries.com


Technical Editors: Howard Arner, Joe Hertvik, Ted Holt,
Shannon O'Donnell, Kevin Vandever
Contributing Technical Editors: Joel Cochran, Wayne O. Evans, Raymond Everhart,
Bruce Guetzkow, Marc Logemann, David Morris
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.


THIS ISSUE
SPONSORED BY:

WorksRight Software
Advanced Systems Concepts
Guild Companies
SoftLanding Systems


Four Hundred Guru

BACK ISSUES

TABLE OF
CONTENTS
A Simple Encryption/Decryption Algorithm for Numbers

Suppress Runtime Display When Qshell Cancels

Admin Alert: Getting Ready for Single Sign-On

Jungle Chatter--Forum Discussions:

Trying to Use OPNQRYF

Date Abbreviations

Virtual Session Runaway Job

Print Key Functions on Various Terminals

Apple in the Financial Marketplace

Subfile with Hyperlink and Want to Increase the Font Size Used



The Four Hundred
Rochester Winds Down Non-TCP/IP Networking on the iSeries

IBM's Workplace Collaboration Suite Is Almost Ready

Azul Can Make a Killer iSeries Java Co-Processor

As I See It: Who Feeds You?

Four Hundred Stuff
FalconStor Updates Virtual Tape Library Offering

Jacada Builds Foundation for SOA with Fusion 2.0

Seagull Partners with Cordys for Web Service Orchestration

All You Need for B2B is GIS 4.0, Sterling Says

Four Hundred Monitor


Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc. (formerly Midrange Server), 50 Park Terrace East, Suite 8F, New York, NY 10034
Privacy Statement