我刚写了一个宏来登录远程服务器,当然是一个简单的宏
%macro sign(servername);
%put ;
%put ********* You are now entering the server ********* ;
%put ********* ********* ;
signon &servername user=_promopt_ password=_prompt_;
%if error %then
%put There is a problem in logging in;
%else
%put ********* ********* ;
%put ********* ********* ;
%put ********* You are now ready to use server ********* ;
%put ********* ********* ;
%put ********* ********* ;
%mend;
所以我想在日志中写一些内容,如果它因任何原因抛出错误。,这可能是错误的密码或连接或任何东西,我想在%Put的帮助下打印声明但不确定如何。
答案 0 :(得分:3)
您应该能够在SIGNON语句中使用CMACVAR选项。
signon &servername user=_promopt_ password=_prompt_ cmacvar=cerror;
%if &cerror %then
CMACVAR =值
指定宏变量的名称,其中SAS存储指示当前登录状态的代码。执行SIGNON时,SAS会检查登录状态,并在指定的CMACVAR变量中存储返回码0,1或2。
在SIGNON处理完成后生成返回代码,并且您指定的名称将成为当前服务器会话的默认名称。然后可以通过编程方式查询CMACVAR宏变量以了解登录的处理状态(已完成,失败或正在进行中。有关每个返回码的含义的说明,请参阅SIGNON中的CMACVAR宏变量值。
CMACVAR Macro Variable Values in SIGNON Value Description 0 The sign-on is complete. 1 The sign-on failed. 2 You have already signed on to the current server session. 3 The sign-on is in progress.
注意:如果SIGNON命令或语句因语法错误而失败,则不会设置宏变量。