It occurred to me the wording of my last post on this topic was poor, so I'll try again.
When you use the INDATASET and OUTDATASET keywords, IDCAMS allocates the datasets with exclusive control. By using the INFILE(ddname) or OUTFILE(ddname) keywords you can specify DISP=SHR in the JCL, which allows the command to run
provided the other job or TSO user using the dataset has the dataset allocated with shared access. Your job would look like this -
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//INPUT DD DISP=SHR,DSN=input.dataset
//SYSIN DD *
REPRO INFILE(INPUT) -
OUTDATASET(output.dataset)
If the other job or TSO user has input.dataset allocated with exclusive control, your job will not run until the other job or TSO user releases the dataset or the job ends or the TSO user logs off.