Salut les SE,
J'ai besoin d'écrire une ligne de JSL qui fait ce que cette ligne est censée faire :
open("smb://jmpsmd.na.sas.com/E/Data/etl code/JMP DataMart 3/GOBUCKS.txt")
À savoir, ouvrez un fichier qui réside sur un serveur Cary.
Le code doit fonctionner sur Windows et Mac.
Le code doit fonctionner pour les personnes à Cary et pour les employés distants. (Il est supposé que la personne peut y accéder via VPN, peu importe.) Il est normal que l'utilisateur soit invité à fournir des informations d'identification.
J'ai aussi essayé avec le %20 au lieu d'espaces, ce qui n'a pas fonctionné. Je sais que c'est ridiculement simple, mais je ne vais pas le découvrir par hasard - j'ai déjà essayé 
Des idées? En prime, lorsque j'exécute le code ci-dessus, mon Mac ajoute le répertoire local au chemin (Cadeau de Noël ?), Ce que je ne veux PAS non plus.
Le chemin que le mac veut que j'utilise, c'est-à-dire ce que j'obtiens en utilisant pickdirectory() pour identifier le dossier, est
"/Volumes/E/Données/code etl/JMP DataMart 3/".
Ceci est totalement hors de question, car on ne peut pas s'attendre à ce que les utilisateurs se connectent au serveur de leur propre initiative, avant que ce code ne soit exécuté.
Merci pour toute suggestion !!
Acclamations,
brady
Michael Hecht a fourni une solution; après l'avoir lu, je ne me sentais pas si mal que je n'avais pas compris cela. C'est en dessous.
MERCI, Michel !!
-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" ));