Enterprise Guide aus VBA starten (+ kleinere Unklarheiten zu EG)

Hallo,

weiß evtl. jemand, wie man mit Hilfe von VBA den Enterprise Guide starten kann? Bis jetzt verwenden wir den normalen Editor. Den können die Anwender aus VBA heraus starten und Makrovariablen übergeben, nach Ablauf des SAS-Programms wird das Logfile (immer noch von SAS) durchsucht, eine Erfolgs- bzw Fehlermeldung mit %window ausgegeben, am Ende wird SAS mit endsas beendet. Benutzerfreundlich, die Anwender sehen den Code gar nicht. Nun werden die Einzelplatzlizenzen nicht mehr verlängert, also müssen wir den Enterprise Guide verwenden.

Bis jetzt haben wir SAS-Programme (im Programmeditor!) aus VBA heraus so gestartet (kleines Beispiel):

'--------------------------------------
Private Sub but_bibbcsv_submit_Enter()

Dim olesas As Object
Dim Data As String
Dim AusData As String
Dim fso As Object

Data = Dir(Txtfolder)
AusData = Left((Data), Len(Data) - 4) & ".txt"

Set olesas = CreateObject("SAS.Application")
olesas.Submit (" %let Eingabedatei=" & Data & "; %let Ausgabedatei= " & AusData & "; ")
olesas.Submit (" %inc 'G:\p-BBS\daten\NAA3009\PROGRAM\BIBBPROG\BIBBCSV_2_LDS.sas'; ")

olesas.Visible = True
Set fso = Nothing
Set olesas = Nothing

Exit_but_bibbcsv_submit_Click:
Exit Sub

End Sub
'--------------------------------------

Wie starte ich nun den EG anstatt des Programmeditors? Ich hab's z.B. mit SASEGuide.Application anstatt SAS.Application, leider ohne Erfolg. Hat jemand eine Idee?

Zwei weitere Fragen zum Enterprise Guide hätte ich: Funktioniert %window überhaupt im EG i.V.m. einem Linux-Server? Und gibt es eine Möglichkeit, einzelne SAS-Programme im EG zu erstellen bzw. laufen zu lassen, ohne ein Projekt zu erstellen? Gewünscht ist: einzelnes Programm erstellen bzw. später starten, Programm laufen lassen (wo was gespeichert werden soll steht schon im Programm), EG beenden. Möglich?

Vielen Dank schon mal.

SEG Automation etc.

Schauen Sie mal in der Online-Hilfe von SEG 4.1 nach - Stichwort "Automation". Dort gibt es Beispielprogramme. Die Referenz für dieses Verfahren finden Sie hier, Stichwort "Automating SAS Enterprise Guide with Scripts".

%window funktioniert nicht mit Enterprise Guide, sonst ginge das Fenster auf dem Server auf.

Das, was Sie da mit dem Enterprise Guide vorhaben, ist möglicherweise der falsche Weg. Es gibt die Möglichkeit, sich mit VBA ohne Enterprise Guide direkt auf den SAS-Server zu verbinden und dort im Wesentlichen das zu tun, was Sie bisher auf dem Client mit SAS getan haben. Schauen Sie mal hier, in den "SAS Integration Technologies: Developer's Guide".

Gegebenenfalls einfach nochmal posten.

SAS-Server

Vielen Dank, muss ich mir näher anschauen. Ich kann aber z.B. mit "SAS Management Console" und "BI Manager plug−in" (unter General Requirements) nichts anfangen. Das müsste sicher extra lizensiert werden, oder?

Jetzt habe ich mit Entsetzen festgestellt, dass EG mit Server-SAS nicht mit Access-Datenbanken bzw. Office-Dateien im Allgemeinen umgehen kann. Gibt es da evtl. eine Lösung?

SAS Server

Über Lizenzfragen muss der Lizenzgeber entscheiden, aber: wenn Sie SAS Enterprise Guide mit einem SAS-Server betreiben, wird SAS Integration Technologies auf dem Server verwendet, und da ist meines Wissens auch die SAS Management Console enthalten mit den diversen Plug-Ins. Am Besten, Sie schauen auf den oben angegebenen Seiten mal nach Beispielen für den Aufruf von SAS aus VB- oder VBA-Programmen.

Sie können mit SAS Enterprise Guide sehr wohl Excel-, Access- und Textdateien einlesen. Die Dateien werden von SAS Enterprise Guide wenn nötig in das Textformat umgewandelt und auf den Server übertragen und dort in SAS-Tabellen umgewandelt. Öffnen Sie die zu importierenden Dateien einfach in SAS Enterprise Guide, Sie werden dann durch den Importprozess hindurchgeführt.

Libname auf dem Server?

Hm, stimmt, über den Importprozess geht's! Dann liegt's möglicherweise am falschen Pfad in LIBNAME, obwohl ich in diesem Fall eher ein "Library not found" als Fehlermeldung erhalten würde anstatt das:

ERROR: Library TESTDB is not in a valid format for access method RANDOM.
ERROR: Error in the LIBNAME statement.
ERROR: Libname TESTDB is not assigned.

Irgendwas stimmt da nicht.