我编写了一些通过x命令调用R的SAS代码(我使用的是SAS 9.1.3,所以R没有本机SAS接口)。
OPTIONS XWAIT XSYNC;
X """&r_path."" --no-save --quiet < ""&out_code_folder.\code.r"" > ""&out_code_folder.\abba.log""";
当我在SAS IDE中运行此代码时,但是当我尝试在VBA中运行相同的代码时(此处strSAScode包含上述SAS代码),此代码正常工作。
Dim obWM As SASWorkspaceManager.WorkspaceManager
Dim temp_dispaly_alert As Boolean
Dim sm As SAS_Management
Debug.Print strSASCode
Set sm = New SAS_Management
'Set obServerDef = New SASWorkspaceManagerServerDef
Set obWM = New SASWorkspaceManager.WorkspaceManager
Set obSAS = obWM.Workspaces.CreateWorkspaceByServer("MyServerName", VisibilityProcess, Nothing, "", "", "")
Set sm.obLS = obSAS.LanguageService
temp_dispaly_alert = Application.DisplayAlerts
Application.DisplayAlerts = False
sm.obLS.Submit strSASCode
现在除x命令外,其他每个代码都有效。请帮助。
答案 0 :(得分:3)
默认情况下,由于潜在的安全风险,使用集成技术访问时禁用SYSTEM和X命令。
您是否按照this使用说明中所述的Windows上的9.1.3步骤进行操作? 它描述了如何在SAS服务器上启用此功能;您可能需要调整工作区所描述的内容,而不是存储过程,服务器。