如何记录SAS初创公司的数量?

如何记录SAS初创公司的数量?,sas,Sas,我正在设计一个自动SAS程序。我希望它在我每天第一次启动SAS时执行,并且应该只执行一次。这就是说,我可能会启动SAS几次,但自动程序将只在我第一次启动SAS时执行 还有一些限制: 1.如果有一天我没有使用SAS,它将不会被执行 2.如果我碰巧在黎明时在SAS上工作,它将不会被执行 我认为记录SAS初创公司的数量是关键,但不知道如何记录。谢谢你的提示。与昆汀的评论相同 将如下代码添加到autoexec中 options nodsnferr; data _null_; if not exist

我正在设计一个自动SAS程序。我希望它在我每天第一次启动SAS时执行,并且应该只执行一次。这就是说,我可能会启动SAS几次,但自动程序将只在我第一次启动SAS时执行

还有一些限制:
1.如果有一天我没有使用SAS,它将不会被执行
2.如果我碰巧在黎明时在SAS上工作,它将不会被执行


我认为记录SAS初创公司的数量是关键,但不知道如何记录。谢谢你的提示。

与昆汀的评论相同

将如下代码添加到autoexec中

options nodsnferr;
data _null_;
  if not exist ('sasuser.laststart') then 
    call execute ('%include "my-once-a-day.sas";');

  set sasuser.laststart;

  if date < today() then
    call execute ('%include "my-once-a-day.sas";');
run;
options nodsnferr;
data sasuser.laststart;
  date = today();
run;
选项nodsnferr;
数据为空;
如果不存在('sasuser.laststart'),则
调用执行(“%include”my-one-a-day.sas“;”);
设置sasuser.laststart;
如果日期<今天(),则
调用执行(“%include”my-one-a-day.sas“;”);
跑
选项nodsnferr;
数据sasuser.laststart;
日期=今天();
跑

如果您使用不同的AutoExec和sasuser路径运行多个并发SAS会话,以上内容是不够的。

问题的标题与实际问题不同。@Lee我认为,标题是这个问题的关键。请澄清-您希望它每天只运行一次,还是最多每天运行一次?对于前者,批处理作业比autoexec条目更合适。您是否在PC SAS中?因此,当您启动PC SAS时,您希望它检查这是否是SAS在该日期第一次运行,如果是,您希望%包括另一个SAS程序?似乎每次SAS启动时都可以让autoexec将今天的日期写入perm SAS数据集,在此之前,让autoexec检查perm日期是否与&sysdate匹配。如果perm日期已与&sysdate匹配,则这不是SAS当天第一次启动。如果您的SAS会话在周二凌晨1点结束,而您在当天上午9点再次启动SAS,是否应该运行“每天一次”程序?我不考虑多个会话条件,感谢您的帮助。第二“选项”nodsnferr;“应该是”选项dsnferr;“否则就没有意义了