以编程方式编译SAS SCL代码
是否有在Windows中编译SAS 9.1.3 SCL代码(注意,不是普通SAS代码)的编程方法?我发现的唯一方法是使用SAS GUI:我们有一个Perl脚本,可以向UI发送击键。虽然这是可行的(有点),但它丑陋且容易出错,而且太脆弱,无法添加到我们的自动构建脚本中以编程方式编译SAS SCL代码,sas,sas-af,Sas,Sas Af,是否有在Windows中编译SAS 9.1.3 SCL代码(注意,不是普通SAS代码)的编程方法?我发现的唯一方法是使用SAS GUI:我们有一个Perl脚本,可以向UI发送击键。虽然这是可行的(有点),但它丑陋且容易出错,而且太脆弱,无法添加到我们的自动构建脚本中 编辑:我最初的问题可能有点不清楚。我知道proc build;我的问题是首先将一些纯文本作为SCL条目输入SAS目录。我发现这是一个鸡和蛋的问题。我发现只有使用已经存在的SCL条目,才能将纯文本输入SCL条目中 我有一个设置,我在目
编辑:我最初的问题可能有点不清楚。我知道
proc build
;我的问题是首先将一些纯文本作为SCL条目输入SAS目录。我发现这是一个鸡和蛋的问题。我发现只有使用已经存在的SCL条目,才能将纯文本输入SCL条目中
我有一个设置,我在目录条目中读写SCL代码,从和到纯文本文件。我将其用于修订控制目的(CVS)
虽然CVS主要用于纯文本代码,但它也可以处理二进制文件。因此,我创建了一个SCL条目(称为FILE2SCL),可以将纯文本导入其他SCL条目。然后,我将这个SCL条目处理为二进制文件,并将其签入CVS
通过这种方式,我可以始终以编程方式从CPORT文件获取此SCL条目,并使用此SCL条目将SCL代码从纯文本导入其他SCL条目。之后,我可以使用PROC BUILD编译SCL条目,就像您提到的那样
我的FILE2SCL条目如下所示:
INIT:
/***************************************************************/
/* */
/* Call this SCL like this: */
/* %let srcFile=D:\work\dummy.scl; */
/* %let dstEntry=WORK.NEW.DUMMY.SCL; */
/* proc display catalog=work.cat.file2scl.scl; */
/* run; */
/* */
/***************************************************************/
length Rc 8;
length theFile $ 200;
length theEntry $ 128;
theFile=symget('SRCFILE'); * Source file *;
theEntry=symget('DSTENTRY'); * Destination entry *;
* Assign filename *;
Rc=filename('temp',theFile);
* Include external file into preview buffer *;
Rc=PREVIEW('INCLUDE','temp');
* Save contents of preview buffer to SCL entry *;
Rc=PREVIEW('SAVE',theEntry);
Rc=PREVIEW('CLEAR');
Rc=PREVIEW('CLOSE');
* Deassign filename *;
Rc=filename('temp','');
return;
注释解释了如何使用它:
首先设置SAS宏变量“srcFile”以包含SCL源代码文件的路径,然后设置另一个宏变量“dstEntry”以包含SCL条目所在的条目路径。然后PROC显示FILE2SCL条目,它会将您的SCL源代码导入到指定的SCL条目中,然后您可以使用PROC BUILD编译它。此外,您还可以使用和签出。它是专门为此目的而设计的(将SCL代码保存在常规文件中,以便进行版本控制,并能够编译到目录中)