【发布时间】:2020-01-29 13:08:56
【问题描述】:
我正在尝试监控长 SAS 脚本的进度。一开始,我使用了类似的东西:
DATA work.dataset1;
SYSECHO "Currently working on: work.dataset1";
/* DO STUFF*/
END;
PROC SORT DATA=work.dataset1 OUT = work.work.dataset2;
SYSECHO "Currently working on: work.dataset2";
/* DO STUFF*/
END;
.....
DATA work.datasetn;
SYSECHO "Currently working on: work.datasetn";
/* DO STUFF*/
END;
但是,这很难维护并且非常冗长。因此,我尝试创建一个宏来自动获取步骤名称或步骤数据集(或任何让我知道当前正在运行的步骤的信息)并将其传递给SYSECHO:
%macro nstep;
SYSECHO "Finished Processing &SYSLAST";
%mend;
DATA work.dataset1;
%nstep;
/* DO STUFF*/
END;
但是,这实际上会打印最后一个受影响的数据集,而不是当前数据集。因此,该行为在执行的第一步中特别成问题,第一次使用 %nstep 会显示上一次执行的数据集的名称。
我正在寻找一种方法来查找当前数据/proc 语句名称,或任何独特的人类可读信息。
【问题讨论】:
标签: logging sas monitoring sas-macro