我正在尝试将宏中的本地宏变量传递给远程会话,如下所示(此示例假设已经签署了mynode):
%macro mytest;
%do i = 1 %to 3;
%syslput mynewval = &i;
rsubmit mynode;
%let mynewval2 = &mynewval;
%put &mynewval2;
endrsubmit;
这看起来对我来说是正确的语法,然而'& mynewval2'当我尝试将其打印到日志时,它将解析为空白。谁能看到我做错了什么?
谢谢
%end;
%mend;
%mytest;
答案 0 :(得分:1)
%let mynewval2 = &mynewval;
正在客户端而不是服务器上运行。 IE,本地宏处理器正在运行代码。它不知道&mynewval
是什么 - 你用远程系统定义它。
尝试在宏中包装RSUBMIT中的代码。我没有获得SAS / CONNECT许可,所以我无法测试。
rsubmit mynode;
%macro run_on_server();
%let mynewval2 = &mynewval;
%put &mynewval2;
%mend;
%run_on_server();
endrsubmit;