2016-08-16 7 views
1

このコードはBASE SASのサーバセッションに接続していますが、サーバセッション内でこの%LETコマンドを使用することはできません。これはマクロがローカルで作成され、 RSUBMITコマンドで別の%LETステートメントを使用する必要がありますか、または%SYSLPUTのようなコマンドを使用する必要がありますか?サーバセッションでのマクロ変数の解決

編集:このコードはまだ解決していません。

%LET yymm = 1606 ; 
%PUT &yymm; 
        /* Identify the Month that you want the files to be named */ 

%LET mon = June ; 
%PUT &mon; 
        /* Specifying the Recipients of the CRA Error files */ 

%LET recip = MYEMAILs 



%MACRO CFPB(date , mon); 

%LET remhost=MYSERVER MYPORT; 
signon remhost user=&sysuserid. password= _prompt_; 
rsubmit; 

    %syslput date=&date. ; 
    %syslput mon=&mon. ; 

LIBNAME &mon "N4.BANKCRRG.CNSRLOAN.MTRO&date." disp=shr; 

    data &mon; 
     set &mon..file (keep= base_cis_id acct_num acct_type); 
    run; 

    Proc DOWNLOAD data = &mon.; 
    run; 

endrsubmit; 
signoff; 

** INSERT SAS LOCAL STATEMENTS *** 

%MEND; 

%CFPB(&YYMM.,&MON.); 

私のマクロ変数は、まだリモートセッションで解決されていません。私は、私の人生のために、エラーを見ることができません。 %LETステートメントでマクロ変数を作成した後、%SYSLPUTを使用して自分のサーバーセッション内でマクロ内に新しいマクロ変数を作成し、マクロを呼び出すと%LETステートメントで作成したマクロを使用して解決しました私が呼び出したもの、さらに%SYSLPUTで解決します。

+0

あなたのLETはあなたのRSubmitになければなりません。サーバー上で宣言されているので、それはあなたのローカルセッションにしかありません。 syslputも使用できます。あなたの心地よいものを使用してください。 – Reeza

+0

RSUBMIT文の外で%SYSLPUTを使用できますか?私は自分のコード全体でマクロ変数YYMM = 1606を使用できるようにしたいが、外部と同様にRSUBMIT内でそれを行う必要はない。 – DukeLuke

+0

リモートセッションとローカルセッションの間でマクロ変数を同期させたい場合は、 'RSUBMIT'の' CSYSRPUTSYNC'オプションをチェックしてください。 – fl0r3k

答えて

2

%syslputは、すでにリモートサーバーにサインインしている場合はrsubmitブロックの外側にあるか、またはautosignonがyesに設定されていることができます。たとえば:

%let remhost=MYSERVER MYPORT; 

signon remhost user=_prompt_ password=_prompt_; 

%syslput yymm = 1066/remote=rsession1; 

rsubmit remote=rsession1; 

    LIBNAME june "LIBNAME" disp=shr; 

    data june; 
     set june.file (keep=base_cis_id acct_num acct_type); 
    run; 

    Proc DOWNLOAD data = june; 
    run; 

endrsubmit; 
signoff;** 

等価的に、あなたはrsubmitブロック内%letステートメントを使用することができます。いずれの場合も、リモートサーバー上にグローバルマクロ変数が生成されます。私は個人的には、セッションまたはリモートセッションにどのマクロ変数があるかを視覚的に把握するために、%syslput%sysrputを好む。 rsubmitとマクロ変数はすぐにMacroceptionに変わります。

+0

Stu - 上記の私の編集を見ていただけますか? – DukeLuke

関連する問題