Hello, I am trying to automate our already developed SAS EG projects by starting them remotely via VBS. I have the following script developed: ' ------------------------------------------------
' ExtractCodeAndLog.vbs
' Uses SAS Enterprise Guide automation to read an EGP file
' and export all SAS programs and logs to subfolders
' There is a new subfolder created for each process flow
' within the project
'
' This script uses the Code.Text method, which will NOT include
' other "wrapper" code around each program that
' SAS Enterprise Guide might have inserted
'
' USAGE:
' cscript.exe ExtractCodeAndLog.vbs <path-to-EGP-file>
' EXAMPLE:
' cscript.exe ExtractCodeAndLog.vbs c:\projects\DonorsChoose.egp
'
' NOTE: use proper version of CSCRIPT.exe for your SAS Enterprise Guide
' version. For 32-bit EG on 64-bit Windows, use
' c:\Windows\SysWOW64\cscript.exe
' ------------------------------------------------
' force declaration of variables in VB Script
Option Explicit
Dim Application
Dim Project
' Change if running a different version of EG
Dim egVersion
egVersion = "SASEGObjectModel.Application.8.1"
' Simple error check - looking for a project file
If WScript.Arguments.Count = 0 Then
WScript.Echo "ERROR: Expecting the full path name of a project file"
WScript.Quit -1
End If
' Create a new SAS Enterprise Guide automation session
'On Error Resume Next
Set Application = WScript.CreateObject(egVersion)
WScript.Echo "Opening project: " & WScript.Arguments.Item(0)
' Open the EGP file with the Application
Set Project = Application.Open(WScript.Arguments.Item(0),"")
If Err.Number <> 0 Then
WScript.Echo "ERROR: Unable to open " _
& WScript.Arguments.Item(0) & " as a project file"
WScript.Quit -1
End If
WScript.Echo " " & Project.Name & ", Project Flow"
WScript.Echo " " & Project.Path & ", Project Flow"
Project.ProjectLog.Clear()
Project.ProjectLog.Enabled = True
Project.Run
Project.ProjectLog.SaveAs "\\foo\projectLog.txt"
Dim item
' Navigate the process flows in the Project object
'For Each item In Project.ProjectItems
' ProcessFlow is ContainerType of 0
' If flow.ContainerType = 0 and flow.name = "autoexec" Then
' WScript.Echo " " & item.Name & item.Type & ", Item"
' flow.Run
' End If
'Next
'Dim flow
' Navigate the process flows in the Project object
'For Each flow In Project.ContainerCollection
' ProcessFlow is ContainerType of 0
' If flow.ContainerType = 0 and flow.name = "autoexec" Then
' WScript.Echo " " & flow.Name & ", Process Flow"
' flow.Run
' End If
'Next
'For Each flow In Project.ContainerCollection
' ProcessFlow is ContainerType of 0
' If flow.ContainerType = 0 and flow.name <> "autoexec" Then
' WScript.Echo " " & flow.Name & ", Process Flow"
' flow.Run
' End If
'Next
' Close the project
Project.Close
' Quit/close the Application object
Application.Quit It does what I want it to do when started from a Citrix session on a machine SAS EG is installed, but if I ssh into the machine and try to run it, I get the error: Could not create object named "SASEGObjectModel.Application.8.1" Is it because ssh is running in headless mode? Would switching to powershell help in this regard?
... View more