2017-11-10 24 views
1

SAS Enterprise Guideの新機能です。私はプロセスフローの実行中にファイルをアップロードするようにユーザーに促す方法を探しています。このファイルは、プロセスフローの次のステップで使用されます。SAS EGプロセスフロー中にファイルをアップロードするように促すメッセージ

これは可能ですか?どのような選択肢がありますか?

+0

ユーザーがファイルへのパスを提供している場合、コードを使用してファイルをインポートできますか?または、インポート・データ・タスクを使用する必要がありますか? – Reeza

+0

私はそれらにインポートデータタスクを使用する必要があります。静的なファイルパスは私の目的のためには行いません。アップロードがプロセスフローの中の割り込み/プロンプトとほぼ同じように動作するようにしたい。 – SQALEX101

答えて

0

SASはファイルオープンダイアログボックスの「ネイティブ」呼び出しをサポートしていないようですが、どこにでも表示される共通ファイルピッカーダイアログボックスを提供するWindows APIを呼び出すことができます。

sascbtblファイル名を使用し、modulecを呼び出す必要があります。私はこの答えをここでスタブとして入れており、来週にそれを試してみる予定です。一方

は、ここでは窓に現在のプロセス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クラスなどを呼び出す必要があります(パラメータをとるほど複雑です)。

+0

興味深い。私はこれについてあなたのさらなる考えを楽しみにしています。その間にこのコードを試してテストします。 – SQALEX101

関連する問題