The use of "&" in this fashion indicates a symbolic parameter
. Such a parameter can be given a value in a number of ways, which will then be substituted for it when the JCL is interpreted.
The lines beginning with "XX" are an expansion of the JCL procedure (often referred to simply as a "proc"). Note that the first two lines are
XX PROC RGN=64M,DPTY='(14,15)',SOUT=A,
Other than the keyword PROC these are all symbolic parameters having values assigned to them.
Later in the JCL is the line
XXRECON1 DD DSN=&SYS..&SYS2..RECON1,DISP=SHR
This will have the values given for SYS and SYS2 substituted at interpretation time, giving
//RECON1 DD DSN=IMSV11.ACT.RECON1,DISP=SHR
The dot or period acts as a delimiter to the parameter, so that &SYS2 can be distinguished from &SYS2RECON. As the period is also
used in data set names, two consecutive periods are coded, one of which is consumed by the interpreter DSP.
Read more about symbolic parameters here
"You have sat too long for any good you have been doing lately ... Depart, I say; and let us have done with you. In the name of God, go!" -- what I say to a junior programmer at least once a day