Help using Base SAS procedures

How to use RUN_MACRO?

Reply
New Contributor
Posts: 4

How to use RUN_MACRO?

Hi. Can someone help me understand why the following code hangs in SAS? Thanks!

%macro attempt_signon;
signon %sysfunc(dequote(&t.)) sascmd="!sascmdv" swait=yes cmacvar=p;
%mend;

proc fcmp
    outlib=work.func.connect
;
function attempt_signon(t $);
    rc = run_macro('attempt_signon', t, p);
    if rc = 0 then return(p);
    else return(.);
endsub;
run;

option cmplib=(work.func);

data _null_;
a = "t";
p = attempt_signon(a);
put _all_;
run;

Trusted Advisor
Posts: 1,301

Re: How to use RUN_MACRO?

Posted in reply to GiovannaEdmonds

I am not certain what you mean by 'hangs' but I am going to assume you are referring to the effect of swait=yes (signonwait).  This option will cause the client session to wait until the remote session has completed the sign on task and SAS is fully initialized before continuing to any following statements.

Ask a Question
Discussion stats
  • 1 reply
  • 274 views
  • 0 likes
  • 2 in conversation