将SAS Enterprise Guide解压缩到Unix Server可运行批次?

我们在Enterprise Guide中build立了一个项目,目的是创build一个易于理解和可维护的代码。 该项目包含一组运行stream程,应按特定顺序进行。 这个项目我们需要在运行SAS元数据服务器的Linux服务器上运行。 基本的想法是将这个项目提取到SAS代码中,我们可以在Linux中作为一个批处理作业从命令行运行。

问题1:

  1. 在Linux托pipe的SAS服务器上,是否有其他方式安排批处理作业? 我已经阅读了有关调度/运行批处理作业的VBS脚本,但为了在Linux服务器上完成此操作,需要安装WINE,在已经运行许多其他重要应用程序的生产计算机上,几乎完全安装的问题。
  2. 有没有办法指定一个完整的项目导出到SAS代码,只要我给出正在运行的stream程的具体顺序? 我已经尝试了有序列表,它能够让你按顺序运行任务列表(尽pipe没有办法select整个过程stream程作为单个任务),但不幸的是,这个有序列表本身以后是不可能的作为SAS代码导出。

目前我们做的解决scheme如下:我们将SAS EG项目的每个单独的stream程导出到SAS代码中,然后用%include行创build另一个SAS代码来运行所有提取的代码。 这当然是一个可能的解决scheme,但绝对不是最优雅的一个。

问题2:

  1. 既然我不知道代码是如何输出的,那么我select的解决scheme有没有什么危险?
  2. 还有其他更优雅的方式吗?

你有几个我熟悉的选项,再加上我怀疑Dom是否会发生,他会知道更多。 这些答案基于EG 6.1,这是当前版本(附带9.4); 在以前的版本中可能有些事情是不可能的。

首先,如果您从Windows运行Enterprise Guide,则可以在本地安排作业(在任何具有Enterprise Guide的Windows计算机上)。 您不是直接调度服务器,而是安排Windows启动连接到服务器的EG进程,并发挥它的魔力。 这就是我主要与调度进行交互的原因(因为我有一个相当“轻松”的调度需求)。

其次,从博客文章“四种安排SAS任务的方式” ,选项3和4可能对您有所帮助。 SAS平台套件部分设计用于安排,而使用SAS管理控制台通过操作系统工具进行安排的选项都非常有帮助。

第三,你可能想看看SAS存储过程,这应该是可以调度的。 流程流程可以转换成存储过程。


针对您的具体问题:

  • 问题1:当您导出流程流程或项目时,至少在6.1中,您可以选择更改程序导出的顺序。 这是手动的,所以它可能不是完美的,但它确实给你的选择。 (代码在创建顺序中似乎是默认的,这是次优的。)项目导出并没有将流程组合在一起,但是您没有操作流程顺序的选项 – 您必须将每个程序周围,​​这将是乏味的。 当然,如果你需要乘以运行的程序,这当然也会降低灵活性。

  • 问题2:正如Stig Eide在评论中指出的那样,确保您的系统选项LRECL> 256(默认值),否则您会冒一些代码被切断的风险。 在9.2+这是可以修改的; 只需在您的config.sas文件中放置LRECL=32767