SAS EG在流程流程中提示上传文件

时间:2017-11-10 21:07:31

标签: file-upload sas prompt enterprise-guide

SAS Enterprise Guide相对较新。我正在寻找一种方法来提示用户在流程执行过程中上传文件。该文件将用于流程的后续步骤。

这可能吗?有哪些替代品?

1 个答案:

答案 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 &current_sas_process_id;

以上是您需要采取的基本方法,但您可能需要调用GetCurrentProcessId类或类似的东西(而不是调用FileOpenDialog类,因为它需要更复杂参数)。