Hi Leonid,
Many thanks for your post. Could you help me with one question about %NRSTR?
I got one tip from SAS help and listed it below. I knew the macro function %NRSTR would mask a macro statement during the execution of call execute routine when the argument was resolved by the macro processor. When the macro processor found the %NRSTR, it would mask what is included in the %NRSTR by delta character. So the '%sales('||month||')' would have leading delta character in input stack. When the data step was completed, the masked '%sales('||month||')' would be handled by macro processor again. Is it the process right? If so, will the macro processor unmark the '%sales('||month||')' automatically?

The following example uses the %NRSTR macro quoting function to mask the macro statement. This function will delay the execution of macro statements until after a step boundary.
call execute('%nrstr(%sales('||month||'))');