我想根据用户分配一个名为folder
的路径变量。我正在使用以下代码。但是我总是必须运行两次此代码才能正常工作。有什么想法吗?我是否需要以任何方式初始化userid
变量?
%global folder;
data _null_;
userid = &sysuserid.;
if userid in ('user1', 'user2') then do;
call symput('folder','<special_path>');
end;
else do;
call symput('folder',"<default_path>");
end;
%put NOTE: user is &sysuserid. path to '<standard folder>' folder assigned is &folder.;
run;
答案 0 :(得分:0)
这是事件发生的顺序:-
因此,当您提交代码时,实际提交的内容是:-
data _null_;
userid = SOME_USER_ID;
if userid in ('user1', 'user2') then do;
call symput('folder','<special_path>');
end;
else do;
call symput('folder',"<default_path>");
end;
%put NOTE: user is &sysuserid. path to '<standard folder>' folder assigned is ;
run;
这就是为什么put语句不能在第一个实例中解析宏变量文件夹的原因。
解决方案是->将%put
语句移出数据步。