2010-05-20 9 views
0

J'ai une installation où les clients FM Pro 9 ouvrent une solution à partir d'un serveur FM 9.Filemaker Pro 9 (Mac): Comment l'obtenir pour gérer les chemins absolus?

Cette solution doit ensuite accéder aux fichiers sur un partage réseau depuis les clients. Jusqu'à présent, le partage réseau était monté avec AFP, mais un changement d'infrastructure nécessitait qu'il soit basculé sur des montages statiques NFS. Leurs volumes de démarrage peuvent avoir des noms différents, mais ils montent tous un partage NFS au même point de montage dans l'arbre de montage "réel" (à partir du répertoire racine UNIX, /).

Selon http://www.filemaker.com/help/html/create_db.8.32.html#1030283, il semble qu'il n'y ait aucun moyen d'utiliser un chemin d'accès complet sans avoir un nom de volume comme s'il s'agissait de Mac OS classic - est-il possible de contourner ce problème?

La mise à niveau vers un FileMaker plus récent n'est pas une solution recherchée.

Répondre

4

Vous pouvez trouver le nom de volume par défaut si vous êtes intelligent. Le code suivant (que vous pourriez utiliser dans un script ou une fonction personnalisée) vous permettrait de définir une variable dans le fichier dont vous aviez besoin.

Let([ 
    desktop_path = Get(DesktopPath); 
    second_slash = Position (desktop_path ; "/" ; 1 ; 2); 
    volume = Middle(desktop_path; 2; second_slash - 2) 
]; 
"filemac:/" & volume & "/path_to_share/file.xls" 
) 

Sur mon ordinateur, mon volume de démarrage est «Macbook Pro HD». Le résultat de l'appel de ce bit de code renvoie:

filemac:/Macbook Pro HD/path_to_share/file.xls 

Ce qui me permet d'accéder à ce fichier.

Si pour une raison quelconque le DesktopPath est pas sur le volume de démarrage, les fonctions Obtenir suivantes peuvent bien utile:

Get(DocumentsPath) -- returns the path to the users Documents folder 
Get(FileMakerPath) -- returns the path to the folder of the currently 
         running version of FileMaker 
1

Toutes les références de fichier FileMaker démarrent silencieusement dans /Volumes, c'est pourquoi elles incluent un nom de volume. Pour accéder à un fichier sur un volume différent X, faites référence à filemac:/X/directoryName/fileName.