File upload SAS EG在流程中提示上载文件

File upload SAS EG在流程中提示上载文件,file-upload,sas,prompt,enterprise-guide,File Upload,Sas,Prompt,Enterprise Guide,《SAS企业指南》相对较新。我正在寻找一种在流程执行期间提示用户上传文件的方法。该文件将在流程的后续步骤中使用 这可能吗?有哪些替代方案 SAS似乎不支持对文件打开对话框的“本机”调用,但它允许您调用Windows API,该API提供了随处可见的通用文件选择器对话框 为此,您需要使用sascbtbl文件名并调用modulec。我现在把这个答案作为存根放在这里,并将在下周尝试扩展它 同时,下面是一个示例,说明如何在windows中使用上述方法获取当前进程ID(PID): filename sas

《SAS企业指南》相对较新。我正在寻找一种在流程执行期间提示用户上传文件的方法。该文件将在流程的后续步骤中使用


这可能吗?有哪些替代方案

SAS似乎不支持对文件打开对话框的“本机”调用,但它允许您调用Windows API,该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;

上面是您需要采取的基本方法,但您可能需要调用
FileOpenDialog
类或类似的类(需要参数时更复杂)。

SAS似乎不支持对文件打开对话框的“本机”调用,但它确实允许您调用Windows API,该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;

以上是您需要采取的基本方法,但您可能需要调用
FileOpenDialog
类或类似的类(由于需要参数而更复杂)。

如果用户提供文件路径,您可以通过代码导入文件吗?或者您需要他们使用导入数据任务吗?我需要他们使用导入数据任务。静态文件路径不适用于我的目的。我希望上传就像流程中的一个中断/提示。如果用户提供了一个文件的路径,你能通过代码导入文件吗?或者您需要他们使用导入数据任务吗?我需要他们使用导入数据任务。静态文件路径不适用于我的目的。我希望上传的行为几乎像流程中的中断/提示。很有趣。我期待着你对此作进一步的思考。在此期间,我将尝试使用此代码进行测试。我期待着你对此作进一步的思考。我将在此期间尝试此代码以进行测试。