IEBGENER isn't doing anything for you in the example (yes it is copying nothing to the sysut1, but the effect of that is -- nothing).
You could get the same effect calling anything, including a program that doesn't even exist. You'd get an S806 abend, but you would still end up with empty OUTPUT.FILE1 and OUTPUT.FILE2 data sets (ignoring the ,,DELETE for the purposes of illustration, of course).
The point is that IEBGENER isn't allocating the files. JES is and they will get allocated whether the program works (or exists) or not. That's how JCL works. So the answer to your question is "as many dd statements as you can specify" which in most cases that is 3273 minus the required IEBGENER statements (sysin,sysprint, and a dummy sysut1) so 3270. Your JCL has a bunch of useless dd statements. IEBGENER doesn'tuse sysout, sysdump, or sortlist and I'm too lazy to lookup sysut3
Also, there is no term "NULL file" in z/OS. In fact, the term "file" itself is ambiguous since in the MVS file system it refers to a ddname (a logical thing) and in the Unix for z/OS file systems it refers to a Unix file (a physical thing)
(that's one answer. Another answer is "as many as you want", since you can use IEBGENER to copy any number of new jobs read from an instream //SYSIN statement to the internal reader. If you use that answer on a test, even though it is correct, you will, and should, fail )
Joined: 23 Nov 2006 Posts: 19270 Location: Inside the Matrix
Is this homework of some kind?
How many NULL files we can create using a single IEBGENER step.
My guess would be "none" as per the info from MBabu - there is no such thing as a "NULL file" in this enviaonment. When one plays in some technical environment they must be sure to use the proper terminology of that environment and not create some of their own. . .
Also, i believe you misunderstand how IEBGENER works (or maybe i do). When SYSIN is DUMMY, the content of SYSUT1 is copied to SYSUT2. The content of SYSUT1 is not copied to the other "output" datasets coded in the JCL. So, SYSUT2 will be opened and closed by IEBGENER and the others will not (which can cause problems if the "output" datasets are not sms-managed and some process tries to read them).