BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Thanu
Calcite | Level 5

Hi Everyone,

 

It would be great If somene helps me out in this.


When a macro is running, I would like an email to be sent to me after each 100 iterations have completed.
So for the example below I would receive 10 emails…one for each time it completes another 100. It has to be dynamic so that, it emails after each 100 iterations regardless of how many have run till then.


I think can we use the mod function? If so , what is the logic. How can I insert it into the below macro.

 

%macro macrhlp();
%do i=1 %to 1000;

/*when 100 have run then do following*/
filename mymail email "myemail@email.com" subject="100 have run";
data _null_;file mymail;put '100 have run';run;
/*when 200 have run then do following*/
filename mymail email "myemail@email.com" subject="200 have run";
data _null_;file mymail;put '200 have run';run;

 

%end;
%mend;

 

 

macrhlp;

 

Thanks,

Thanu.

 

1 ACCEPTED SOLUTION

Accepted Solutions
3 REPLIES 3
Kurt_Bremser
Super User
%macro macrhlp();
%do i=1 %to 1000;

  %if %sysfunc(mod(&i,100)) = 0 %then %do;
    filename mymail email "myemail@email.com" subject="&i have run";
    data _null_;file mymail;put "&i have run";run;
  %end;
 

%end;
%mend;
Thanu
Calcite | Level 5
Hello, thankyou for this solution. Could you please edit your answer : %sysfunc instead of syfunc.
🙂

TIA
Thanu

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 2294 views
  • 1 like
  • 2 in conversation