In reply to Leonid Batkhan.

Thanks, Leonid. Your reply helps me a lot. I have another question about the input stack and CALL EXECUTE.
If I have two data steps blow in one program and submit it to run. When the CALL EXECUTE sends the '%sales(10);' in the input stack, the second data step of 'data b;' is still waiting in the input stack, or it has entered the word queue within the word scanner?
I guess 'data b;' is still waiting in the input stack, as the '%sales(10);' will be invoked immediately after the 'data a', but I can't find the details in what I have read.

data a;
....
call execute('%nrstr(%sales('||month||'))');
....
run;

data b;
....
run;