Thank you for explaining the compilation part in detail. I have tried different options calling macro using CALL EXECUTE like Single quotes/double quotes

but every time CALL EXECUTE is being triggered at the end of data step

Example:

input data iftp, variable ipdsn:
AAAAAAAAAAAAAA
BBBBBBBBBBBBBB

data _null_;
set iftp;
put ipdsn;
CALL EXECUTE ('%INPS(ipdsn);');
put ipdsn;
run;

%macro INPS(ipdsn);
data _NULL_;
putlog ipdsn;
run;
%mend;

Output is written as below

BBBBBBBBBBBBBBB
BBBBBBBBBBBBBBB

But the expected output should be

AAAAAAAAAAAAAAA
BBBBBBBBBBBBBBB

I want CALL EXECUTE to trigger macro every time in a loop, how can i do this? please advise