Yerel makinemde bir .sas dosyasında oluşturduğum bir makro var. Makroyu test etmek için kullanmakta olan bir yerel veri kümem var. Bu veri kümesi, uzak bir veri kümesiyle aynı tanımlayıcılara sahiptir, ancak yalnızca daha az gözlem vardır. Şimdi, yerel makroyu uzak veri kümesine karşı çalıştırmaya çalışıyorum. İşte ne temelde:RSUBMIT bloğunda yerel SAS makrosunu arayın?
Bu beklendiği gibi çalışır:
%include "C:\my_sas_macro.sas";
%my_sas_macro(my_data=work.localdata)
ama sonra bu bir hata (hata takip) oluşturur:
125 %include "C:\my_sas_macro.sas";
136
137 rsubmit;
NOTE: Remote submit to REMOTEID.__7551 commencing.
WARNING: Apparent invocation of macro MY_SAS_MACRO not resolved.
83 %my_sas_macro(my_data=remotelib.remotedata)
-
180
ERROR 180-322: Statement is not valid or it is used out of proper order.
84 endrsubmit;
NOTE: Remote submit to REMOTEID.__7551 complete.
: hatasıyla
%include "C:\my_sas_macro.sas";
rsubmit;
%my_sas_macro(my_data=remotelib.remotedata)
endrsubmit;
günlüğü
Eminim ki% makrosu /% ipucu bloğunu sunucuya aktarmam gerekiyor, ancak nasıl olduğunu. %SYSLPUT
'u gördüm, ancak makro değişkenleri ve tam makrolar için değil.
kod üzerinde sadece SSH kalmadan sunucuda benim makro çalıştırmak ve orada %include
o yine de var mı?
Teşekkürler!
Çözüm Uygulanan
[Düzenle] Bu yüzden şimdiye kadar benim için oldukça iyi çalışıyor ki şu makro ile geldi @ CarolinaJay65 'ın Yanıta göre.
%macro include_on_server(file=);
%let server_file = ~/temp.sas;
%SYSLPUT macro_file=&file;
%SYSLPUT server_file = &server_file;
rsubmit;
proc upload
infile= "¯o_file."
outfile= "&server_file."
; run;
%include "&server_file.";
endrsubmit;
%mend include_on_server;
Bu bana sadece %include_on_server(file="C:\my_file.sas")
olabilmesinin önünü ve sonra şimdi benim uzak oturumda dahildir.
Teşekkür:
Sonra SAS aşağıdaki çalıştırın 'Proc Upload; 'ibaresini kontrol edin, tamlığı için" makroyu bir makro değişkene atamak "için doğru yolu gösterebilecek misiniz? –
Teşekkürler, bu benim için çalışıyor, ancak bir PITA türü çünkü sunucudaki dizin yapısını yönetmem gerekiyor (bu, otomatik olarak var olmayan dizinleri oluşturmaz). Sunucu tarafında dosyaları yönetmemi gerektirmeyen başka bir çözüm ortaya çıkmadığı sürece bunu yetkili cevap olarak tutacağım. –
Endrsubmit'i ekleyebilirim; Sonunda her şeyin uzaktan yürütüldüğünü açıklamak için. – vasja