Depends what you mean by allocate a dataset at runtime. Your CJL is finished with before the job runs. Passing a datasetname as a parameter to a program is not allocating via JCL - the program does a dynamic allocate of the dataset when it starts.

Really, it is unclear as to what TS is wanting - a clearer definition of the problem would be helpful.