Build the batch CRUD matrix
ProprietaryReport which job step runs which program against which data set, and what the program does with it. Neither source says this on its own: //ACCTDD DD DSN=PROD.ACCOUNT.MASTER names a data set without saying what happens to it, and SELECT ACCT-FILE ASSIGN TO ACCTDD says what happens without saying to what. The DD name is the only word both files contain, so joining on it is what turns a pile of jobs and a pile of programs into a batch application. Every ASSIGN and every DD appears, bound or with the reason it is not: a step is a run unit rather than a program, so a subprogram's files are bound by the step that runs its caller.
io. moderne. mainframe. batch. FindBatchCrudmod run . --recipe= io. moderne. mainframe. batch. FindBatchCrudInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.