2017-11-10 21 views
1

SAS Enterprise Guide에서 새로운 기능입니다. 프로세스 흐름 실행 중에 사용자에게 파일 업로드를 요청하는 방법을 찾고 있습니다. 이 파일은 프로세스 흐름의 다음 단계에서 사용됩니다.SAS EG 프로세스 흐름 중에 파일을 업로드하라는 메시지

이것이 가능합니까? 어떤 대안을 사용할 수 있습니까?

+0

사용자가 파일 경로를 제공하는 경우 코드를 통해 파일을 가져올 수 있습니까? 또는 데이터 가져 오기 작업을 사용해야합니까? – Reeza

+0

데이터 가져 오기 작업을 사용해야합니다. 정적 인 파일 경로는 내 용도로 사용되지 않습니다. 업로드가 프로세스 흐름에서 인터럽트/프롬프트와 거의 비슷하게 작동하도록하고 싶습니다. – SQALEX101

답변

0

SAS는 파일 열기 대화 상자에 대한 '네이티브'호출을 지원하지 않지만 모든 곳에서 볼 수있는 공용 파일 선택기 대화 상자를 제공하는 Windows API를 호출 할 수 있습니다.

이렇게하려면 sascbtbl 파일 이름을 사용하고 modulec으로 전화해야합니다. 나는이 답을 잠깐 스텁으로 여기에 넣었고 다음주에 시도하고 확장 할 것입니다. 위의

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; 

는하지만, 대신에 응시해야합니다 기본적인 방법은 다음과 같습니다 한편

, 여기 창에서 현재 프로세스 ID (PID)를 얻기 위해 위의 사용 방법의 예 GetCurrentProcessId 클래스를 호출하면 아마도 FileOpenDialog 클래스 나 그와 비슷한 것을 호출해야 할 것입니다 (매개 변수를 취함에 따라 더 복잡합니다).

+0

흥미를 자아냅니다. 이것에 대한 당신의 더 깊은 생각을 고대합니다. 그 동안 테스트를 위해이 코드를 사용해 보겠습니다. – SQALEX101