是否有任何通用建议来识别正在执行的SAS代码/程序?
我的代码将在通用宏中执行,因此可以在存储过程,另一个宏,客户端SAS程序或甚至通过使用IOM的中间层生成的SAS代码中调用。我希望最高级别的标识符可能..(如果再次运行相同的程序,将会返回相同的结果 - 因此进程ID将没有用)。
环境不是Windows,因此此代码没有用处:
%put %sysget(SAS_EXECFILENAME);
此外,宏不一定是第一个调用的程序(如果它甚至是一个程序) - 所以这段代码也没有用:
proc sql noprint;
select xpath into :progname
from sashelp.vextfl where upcase(xpath) like '%.SAS';
%put &progname;
答案 0 :(得分:1)
在我看来,你可能需要思考一下如何使用它。如果同一个用户打开两个运行相同代码的会话怎么办?那应该使用相同的文件名吗?
您是否可以简单地要求您的代码片段在代码运行之前必须指定某个变量?否则返回错误/中止进一步处理?
回答你原来的问题,虽然我觉得这不可能。