NicC is correct: your initial subject read "How can I pass a value from a program being run by JCL to influence the remainder of the JCL?" Well, that's how I read it, anyway. Other people read it as, "How can I insert a value (or values) into JCL being submitted for another job?" This is a whole different thing: you just have to alter the JCL text before submitting it, and there are many, many ways to do this. From the early days of OS/360 through early MVS releases the system programmer prepared a system description using Assembler macro calls, and then ran this description through the Assembler. The output from this assembly was a very large job that used the Assembler, linkage editor and other system utility programs to create the system libraries. Regardless of methods, the final result was identical to what you propose. At various times in my career I used the exact same technique to generate JCL.