Я пытаюсь следить за ходом длинного сценария 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;
Однако , это фактически печатает последний измененный набор данных, а не текущий. Следовательно, поведение особенно проблематично c при выполнении первого шага, при первом использовании %nstep
отображается имя набора данных из предыдущего выполнения.
Я ищу способ найти текущие данные / pro c имя оператора или любая различимая информация, читаемая человеком.