के साथ वीबीए से एसएएस चलाएं मुझे उम्मीद है कि कोई मदद कर सकता है। मैं वीबीए से एसएएस लॉन्च करने के लिए एक सबराउटिन बनाने की कोशिश कर रहा हूं। मैं एसएएस वर्कस्पेस मैनेजर के साथ ऐसा कर रहा हूं। चूंकि मैं अपने आराम क्षेत्र से बहुत दूर घूम रहा हूं, मैंने इन twosources में जो पाया है, उससे अधिकतर मैंने पीछा किया है।पूर्ण पहुंच
Public Sub SubmitSasProg(usrid As String, passid As String, path As String, sasprog As String, varinput As String, Optional logreturn)
Dim obWsMgr As New SASWorkspaceManager.WorkspaceManager
Dim obSAS As SAS.Workspace
Dim xmlInfo As String
Set obSAS = obWsMgr.Workspaces.CreateWorkspaceByServer("Local", VisibilityProcess, Nothing, usrid, passid, xmlInfo)
Dim obStoredProcessService As SAS.StoredProcessService
Set obStoredProcessService = obSAS.LanguageService.StoredProcessService
obStoredProcessService.Repository = "file:" & path
obStoredProcessService.Execute sasprog, varinput
If IsMissing(logreturn) Then logreturn = 100000
MsgBox obSAS.LanguageService.FlushLog(logreturn)
End Sub
और मैं अपने आप एक छोटे से एसएएस कार्यक्रम है, की यह कॉल "Test.sas":: यहाँ क्या मैं अब तक VBA में के साथ आया है
%let loopTimes=3;
*ProcessBody;
data a;
do x= 1 to &loopTimes;
y=x*x*x;
output;
end;
run;
अब इस लाइन जस्ट से कार्य करेंगे :
Call SubmitSasProg("myuserid", "mypassword", "somepath", "Test", "loopTimes=10")
लेकिन जब भी मैं एक एसएएस प्रक्रिया है कि फाइल को परिवर्तित कर निष्पादित करने के लिए कोशिश/libnames आदि मैं एक या तो एक "इस एसएएस सत्र के लिए अमान्य कार्रवाई" मिल जाएगा या "उपयोगकर्ता पहुँच नहीं है"। कृपया ध्यान दें कि मैं स्थानीय रूप से एसएएस का उपयोग कर रहा हूं, सर्वर पर नहीं। तो मुझे लगता है कि मैं अपने एसएएस वर्कशन और कमी की अनुमति के साथ सही ढंग से लॉग इन नहीं हूं। मैंने सोचा कि CreateWorkspaceByServer में उपयोगकर्ता आईडी और पासवर्ड पैरामीटर मुझे लॉग इन करना चाहते हैं।
तो मेरा सवाल यह होगा कि मेरे स्थानीय कंप्यूटर पर मेरे प्रमाण पत्र के साथ एसएएस सत्र सफलतापूर्वक शुरू करने के लिए और मेरे पास सामान्य पहुंच होगी खिड़कीदार वातावरण खोलकर।
बस स्पष्ट करने के लिए, इस एसएएस प्रक्रिया ठीक विडों environement में काम करेगा:
Data _NULL_;
*x del C:\WINDOWS;
x mkdir C:\Users\Myname\Desktop\NewFolder;
run;
लेकिन यह कोड एक "इस एसएएस सत्र के लिए अमान्य कार्रवाई" के साथ विफल हो जाएगा यदि VBA से शुरू कर दिया। कुछ ऐसा होता है यदि मैं एसएएस डेटासेट लिखने का प्रयास करता हूं।
मैं अब कुछ समय ढूंढ रहा हूं लेकिन अधिकांश धागे एसएएस सर्वर सत्रों के बारे में हैं। किसी भी मदद की सराहना की जाएगी।
वाह ... यह काफी बढ़त केस परिदृश्य है। मेरा अनुमान है कि एसएएस प्रक्रिया प्रक्रिया के अधिकारों के तहत चल रही है, जिसने इसे लॉन्च किया है और वीबीए प्रक्रिया ने अधिकारों को प्रतिबंधित कर दिया है (निर्दोष दिखने वाले दस्तावेजों में आपकी मशीन को लेने से दुर्भावनापूर्ण स्क्रिप्ट को रोकने के लिए)। – JDB
एसएएस और ओएस का कौन सा संस्करण आप चल रहे हैं? –
वह बेस एसएएस 9.2 और विन 7 32 बी होगा। यह भी ध्यान देने योग्य हो सकता है कि मेरे पास इस मशीन पर कोई व्यवस्थापक खाता नहीं है, हालांकि यह एसएएस खिड़की वाले वातावरण को परेशान नहीं करता है। मैं एक व्यवस्थापक खाते के साथ अपनी किस्मत आजमा रहा हूं ... कौन जानता है। – Pane