MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Input & output dataset names

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
Pudah
Beginner


Joined: 20 Jun 2003
Posts: 27
Topics: 8
Location: East of the Rock, West of the Hard Place

PostPosted: Wed Nov 05, 2003 7:50 pm    Post subject: Input & output dataset names Reply with quote

Is there a standard method by which I can code a COBOL program to report out the dataset names of its input and output files? I've been looking thru the manuals but I can't seem to find anything. Any suggestions would be appreciated.
Back to top
View user's profile Send private message Send e-mail
Cogito-Ergo-Sum
Advanced


Joined: 15 Dec 2002
Posts: 637
Topics: 43
Location: Bengaluru, INDIA

PostPosted: Thu Nov 06, 2003 1:32 am    Post subject: Reply with quote

Why not parse the JCL that executes the COBOL program? Use REXX, DFSORT, etc. The JCL itself can be found out using 3.14
_________________
ALL opinions are welcome.

Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Thu Nov 06, 2003 7:00 am    Post subject: Reply with quote

Pudah,

I have cobol routine which will get you the step name and the dataset info.I will post it later.

kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12376
Topics: 75
Location: San Jose

PostPosted: Fri Nov 07, 2003 9:07 am    Post subject: Reply with quote

Pudah,

I am sorry to say I could not find my source. I guess it is in one of my PDS which was migratted and eventually got deleted Sad .However to redeem myself I have the following SAS code which will get you the DSNAME for the DDNAME.
Code:

DATA DB2VOLS;                               
LENGTH XFILE $ 44;                         
INFILE DDNAME1 FILENAME=XFILE END=EOF;       
INPUT @05 TYPE $CHAR2.                     
@25 SSID $CHAR4.                           
@25 DSN $CHAR44.                           
@79 VOL $CHAR6.                             
;                                           
IF EOF THEN PUT 'INPUT FILE = ' XFILE;     
$$                                         


The above code will give the DSNAME associated to DDNAME1.

Hope this helps..

cheers

kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Pudah
Beginner


Joined: 20 Jun 2003
Posts: 27
Topics: 8
Location: East of the Rock, West of the Hard Place

PostPosted: Sat Nov 08, 2003 10:51 am    Post subject: Reply with quote

Kolusu, I'll give it a try. Thanks.
Back to top
View user's profile Send private message Send e-mail
slade
Intermediate


Joined: 07 Feb 2003
Posts: 266
Topics: 1
Location: Edison, NJ USA

PostPosted: Sat Nov 08, 2003 4:18 pm    Post subject: Reply with quote

Hi Pudah,

Here's a pgm written by Gilbert St. Fleur. It does what you want plus much more.

Regards, Jack.
Code:

//IBMUSERJ JOB (ACCT#),COB2JOB,
// NOTIFY=&SYSUID,
// CLASS=A,MSGCLASS=X,COND=(0,NE)
//*
//COB2 EXEC PGM=IGYCRCTL
 CBL NOLIB,APOST,NODECK,OBJECT,NOSEQ,BUF(10000),NONAME
 CBL NOMAP,NOLIST,NOOFFSET,NOXREF
       Identification Division.
         Program-ID. Cob2Job.
         Author. Gilbert Saint-Flour <gsf@pobox.com>.
      *----------------------------------------------------------------*
      *                                                                *
      *    This program retrieves specific job-related data from MVS   *
      *    control blocks and moves it to Working-storage.             *
      *                                                                *
      *    The name of the control-block is indicated in pos 1-6 of    *
      *    the Procedure Division lines.                               *
      *    The layout of the MVS control blocks is described in the    *
      *    MVS Data Areas manuals, which can be found on any MVS or    *
      *    OS/390 CD collection or viewed on-line by going to:         *
      *        http://www.s390.ibm.com/bookmgr-cgi/bookmgr.cmd/library *
      *    and searching for:                                          *
      *        MVS DATA AREAS                                          *
      *----------------------------------------------------------------*
       Data Division.
        Working-Storage Section.
         01 Results.
           05 job-name Pic x(8).
           05 proc-step Pic x(8).
           05 step-name Pic x(8).
           05 program-name Pic x(8).
           05 program-name2 Pic x(8).
           05 job-number Pic x(8).
           05 job-class Pic x.
           05 msg-class Pic x.
           05 programmer-name Pic x(20).
           05 user-id Pic x(8).
           05 group-name Pic x(8).
           05 user-name Pic x(20).
           05 batch-or-cics Pic x(5).
              88 Batch Value 'BATCH'.
              88 CICS  Value 'CICS '.
           05 micro-seconds Pic S9(15) COMP-3.
         01 four-bytes.
           05 full-word Pic s9(8) Comp.
           05 ptr4      Redefines full-word Pointer.
        Linkage Section.
         01 cb1.  05 ptr1 Pointer Occurs 256.
         01 cb2.  05 ptr2 Pointer Occurs 256.
       Procedure Division.
 PSA       SET Address of cb1 to NULL
 TCB       SET Address of cb1 to ptr1(136)
           SET ptr4 to ptr1(83)
           COMPUTE micro-seconds = full-word * 1048576
           SET ptr4 to ptr1(84)
           COMPUTE micro-seconds = micro-seconds + (full-word / 1024)
 TIOT      SET Address of cb2 to ptr1(4)
           MOVE cb2(1:8) to job-name
           MOVE cb2(9:8) to proc-step
           MOVE cb2(17:8) to step-name
 JSCB      SET Address of cb2 to ptr1(46)
           MOVE cb2(361:8) to program-name
 SSIB      SET Address of cb2 to ptr2(80)
           MOVE cb2(13:8) to job-number
 PRB       SET Address of cb2 to ptr1(1)
           MOVE cb2(97:8) to program-name2
 JSCB      SET Address of cb2 to ptr1(46)
 JCT       SET Address of cb2 to ptr2(66)
           MOVE cb2(48:1) to job-class
           MOVE cb2(23:1) to msg-class
 ACT       MOVE zero to full-word
           MOVE cb2(57:3) to four-bytes(2:3)
           SET Address of cb2 to ptr4
           MOVE cb2(25:20) to programmer-name
 EXT2      SET Address of cb2 to ptr1(53)
 CAUF      IF cb2(21:4) = low-values THEN
             SET Batch to TRUE
           ELSE
             SET CICS to TRUE
           END-IF
 PSA       SET Address of cb1 to NULL
 ASCB      SET Address of cb1 to ptr1(138)
 ASXB      SET Address of cb2 to ptr1(28)
           MOVE cb2(193:8) to user-id
 ACEE      SET Address of cb2 to ptr2(51)
           MOVE cb2(31:8) to group-name
 UNAM      SET Address of cb1 to ptr2(26)
           MOVE zero to full-word
           MOVE cb1(1:1) to four-bytes(4:1)
           MOVE cb1(2:full-word) to user-name
           DISPLAY job-name ' '
                   proc-step ' '
                   step-name ' '
                   program-name ' '
                   program-name2 ' '
                   job-number ' '
                   job-class ' '
                   msg-class ' '
                   micro-seconds ' '
           DISPLAY quote programmer-name  quote ' '
                   batch-or-cics ' '
                   user-id ' '
                   group-name  ' '
                   quote user-name  quote ' '
           GOBACK.
/*
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT2 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT3 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT4 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT5 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT6 DD UNIT=VIO,SPACE=(TRK,1)
//SYSUT7 DD UNIT=VIO,SPACE=(TRK,1)
//SYSLIN DD UNIT=VIO,SPACE=(TRK,1),DISP=(,PASS),BLKSIZE=3200
//*
//GOPROC PROC
//GO    EXEC PGM=LOADER,PARM=PRINT
//SYSLIN DD DISP=(OLD,PASS),DSN=*.COB2.SYSLIN
//SYSLIB DD DISP=SHR,DSN=CEE.SCEELKED
//SYSLOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//GOPROC PEND
//*
//GOPROC EXEC GOPROC
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group