Posted on behalf of one of my developers, Dave Loveluck, who does not recall
his logon credentials..

***************

Ray,

There are several ways to do this.

The first question I have is whether your ISPF application is running under
its own application ID?  To answer this: how was your application invoked...
is there, somewhere in a Clist or REXX exec, an ISPEXEC START command
referencing an APPLID. It would look like (in REXX): ADDRESS ISPEXEC "SELECT
... NEWAPPL(xxxx) ...";

If there is, is there a command table member for that application? You need
to check the libraries allocated to ISPTLIB - do not forget those
dynamically added by LIBDEF statements during execution. To check for
LIBDEFs, start your application and enter ISPLIBD on the command line (PF3
to exit). To check the ISPTLIB members, enter DDLIST FIND ISPTLIB on the
command line, and enter B or whatever against the first data set in the
concatenation, then, on being shown the member list, enter L xxxxCMDS where
xxxx is your application ID (application IDs do not have to be four bytes).

If there is no command table currently being used, the quick and dirty
method is to muscle in on the standard table - ISPCMDS; otherwise, use your
application's table.

You may look at the content of any table by using the following REXX exec:
/* REXX - the home of the helpful hardware man */                  /* REXX
exec permitting the viewing and modification of existing  */
/* ISPF command tables - the table is shown in DTL                */
APPLID = '';              do while(APPLID = '');               say "Enter
application id:";               pull APPLID;               APPLID =
strip(APPLID,b);               if length(APPLID) > 4 then                
do;                 say "Invalid applid entered, try again";               
 APPLID = '';                 end;              end;              FOUND = 0;
if \FOUND then
 do forever;
   say "Enter library containing commmand table";
   say "If fully qualified, enter in apostrophes";
   pull LIBRARY;
   LIBRARY = strip(LIBRARY,b);
   if substr(LIBRARY,1,1) = "'" then
     do;
     LIBRARY = strip(strip(LIBRARY,b,"'"),t);
     end;
   else
     do;
     LIBRARY = sysvar(syspref)"."LIBRARY;
     end;
   if sysdsn("'"LIBRARY"("APPLID"CMDS)'") = OK then
     do;
     address ispexec "libdef isptlib dataset id('"LIBRARY"')";
     leave;
     end;
   say APPLID"CMDS not found in: '"LIBRARY"'.";
   say "Try another library? (Y or N)";
   do forever;
     pull REPLY;
     if REPLY = N then
       exit;
     if REPLY = Y then
       leave;
     say "Enter Y or N, not" REPLY;
   end;
 end;
address tso "ispcmdtb" APPLID;
address ispexec "tbclose" APPLID"CMDS REPLCOPY";
if \FOUND then
 do;
 address ispexec "libdef isptlib";
 end;
exit;

You can, of course, use ISPF option 7.4 and play there instead; look for the
needed ZCTVERB values.

Check the command table to ensure it has the entries you need (ISPCMDS,
being the standard command table, will have LEFT and RIGHT).

The table entry has four fields per command: ZCTVERB, ZCTTRUNC, ZCTACT and
ZCTDESC.

To enable LEFT or RIGHT (or both) you need to search the table, looking for
ZCTVERB = LEFT or ZCTVERB = RIGHT, if the verb is found, you need to change
ZCTACT to PASSTHRU (enable) or SETVERB (disable). Be kind, if you enable,
please disable after use. Use the standard table handling commands to do
this - TBSCAN to locate, TBPUT to update.
If there is no entry, you must create and entry suppling values for the four
fields as appropriate, and use TBADD. (The other good thing about using
ISPCMDS is that you do not have to bother with the TBOPEN/TBCLOSE as it is
already open.)

If you do not have a command table, and do not want to muscle in on ISPCMDS,
well...

I hope this has been of some help.


Dave Loveluck 

DINO Software

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to