I have a COBOL compile job which I didn't write and I am trying to understand how that works. It looks something like this:
//COB EXEC PGM=IGYCRCTL,COND=(0,NE,TRN),
// PARM=('DTR,NUMPROC(PFD),NOADV,LIST,LIB,TRUNC(BIN)', *
// 'NOSEQ,DYN,RMODE(ANY),OUT(SYSPRINT),MAP')
//STEPLIB DD DISP=SHR,DSN=SYS1.IGY.SIGYCOMP
//SYSPRINT DD DSN=xxx..xxx..xxx.LST(&NAME),DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(460,(1700,1000))
...
//SYSLIB DD DISP=SHR,DSN=xxx..xxx..xxx.CPY
// DD DISP=SHR,DSN=SYSQ.MQS710A.SCSQCOBC MQ-SERIES
It is not the real Job, I changed some parts to "xxx" because I can't give out the real code. I understand that the datasets after SYSLIB are the dependencies of the program I am compiling. What I don't understand is how versioning works here for the Copybooks. It will pull anything in that is in the dataset under the qualifier "xxx..xxx..xxx.CPY". How do I know that there are all Copybooks needed (compile error?) and that they are the right version, that the original programmer intended to use. For the MQ-Series Copybook dataset there seems to be a version-number in the name "MQS710A". Is that the way it is supposed to be on z/OS? The other dataset "xxx..xxx..xxx.CPY" doesn't have anything like a version in the name, the "xxx" were just a bunch of letters.