If the program involved always is run to refer to the previous month from the date of execution then you could stick this code inside the macro
data _null_;
sdate= intnx('month',today(),-1,'B');
edate= intnx('month',today(),-1,'E');
call symputx('begin_dt',sdate);
call symputx('end_dt',edate);
run;
Note that the values will be the numeric version of the SAS date value which should match for your uses UNLESS you are printing those directly in titles or such.
... View more