Hallo SEs,
Ich muss eine Zeile von JSL schreiben, die das tut, was diese Zeile tun soll:
open("smb://jmpsmd.na.sas.com/E/Data/etl code/JMP DataMart 3/GOBUCKS.txt")
Öffnen Sie nämlich eine Datei, die sich auf einem Cary-Server befindet.
Der Code muss unter Windows und Mac funktionieren.
Der Code muss für Mitarbeiter in Cary und für entfernte Mitarbeiter funktionieren. (Es wird davon ausgegangen, dass die Person über VPN auf diese zugreifen kann.) Es ist in Ordnung, wenn der Benutzer zur Eingabe von Anmeldeinformationen aufgefordert wird.
Ich habe es auch mit %20 anstelle von Leerzeichen versucht, was nicht funktioniert hat. Ich weiß, das ist lächerlich einfach, aber ich werde es nicht zufällig entdecken - ich habe es bereits versucht 
Irgendwelche Ideen? Als Bonus stellt mein Mac, wenn ich den obigen Code ausführe, das lokale Verzeichnis dem Pfad (Weihnachtsgeschenk?) voran, was ich auch NICHT möchte.
Der Pfad, den der Mac von mir will, dh was ich bekomme, wenn ich pickdirectory() verwende, um den Ordner zu identifizieren, ist
"/Volumes/E/Data/etl code/JMP DataMart 3/".
Dies ist völlig ausgeschlossen, da von den Benutzern nicht erwartet werden kann, dass sie sich von sich aus mit dem Server verbinden, bevor dieser Code ausgeführt wird.
Danke für alle Vorschläge!!
Beifall,
Brady
Michael Hecht lieferte eine Lösung; Nachdem ich es gelesen hatte, fühlte ich mich nicht so schlecht, dass ich das nicht herausgefunden hatte. Es ist unten.
DANKE Michael!!
-Brady
mount = Function({server}, {Default Local},
If( Host Is( Mac ),
Run Program( Executable( "/usr/bin/osascript" ),
Options( { "-e", Eval Insert( "mount volume \!"smb://^server^\!"" )}),
Read Function( "text" ));
server = Concat Items( Remove( Words( server, "/" ), 1 ), "/" );
Eval Insert( "/Volumes/^server^" );
,
Eval Insert( "\!\\!\^server^" )
)
);
users = mount( "jmpsrv01.na.sas.com/Users" );
Files In Directory( Eval Insert( "^users^/Drake" ));