SAS Enterprise Guide相对较新。我正在寻找一种方法来提示用户在流程执行过程中上传文件。该文件将用于流程的后续步骤。
这可能吗?有哪些替代品?
答案 0 :(得分:0)
SAS似乎不支持对文件打开对话框的“本机”调用,但它允许您调用Windows API,它提供了您在任何地方都能看到的公共文件选择器对话框。
您需要使用sascbtbl
文件名并调用modulec
才能执行此操作。我现在把这个答案作为一个存根,并将在下周尝试扩展它。
与此同时,这是一个如何使用上面的方法在Windows中获取当前进程ID(PID)的示例:
filename sascbtbl "%sysfunc(pathname(work))\sascbtbl.txt" lrecl=500;
data _null_;
file sascbtbl;
infile datalines;
input;
put _infile_;
datalines4;
routine GetCurrentProcessId
minarg=0
maxarg=0
stackpop=called
callseq=byvalue
module=kernel32;
;;;;
run;
%let current_sas_process_id = %sysfunc(modulen(*e,GetCurrentProcessId));
%put ¤t_sas_process_id;
以上是您需要采取的基本方法,但您可能需要调用GetCurrentProcessId
类或类似的东西(而不是调用FileOpenDialog
类,因为它需要更复杂参数)。