tags:

views:

51

answers:

2

I have an installation where FM Pro 9 clients open a solution from an FM Server 9.

This solution then needs to access files on a network share from the clients. So far, the network share was mounted with AFP, but an infrastructure change required it to be switched to static NFS mounts.

Their boot Volumes may have different names, but they all mount an NFS share at the same mount point in the "real" mount tree (starting from the UNIX root dir, /).

According to http://www.filemaker.com/help/html/create_db.8.32.html#1030283 it looks like there is no way to just use a full path without having a volume name as if this was Mac OS classic - is there some way to work around this?

Upgrading to a newer FileMaker is not a sought solution.

+1  A: 

All FileMaker file references silently start in /Volumes, this is why they include a volume name. To access a file on a different volume X make the reference look like filemac:/X/directoryName/fileName.

Mikhail Edoshin
+3  A: 

You can find the default volume name if you're clever. The following code (which you could use in a script or custom function) would allow you to set a variable to the file you needed.

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"
)

On my machine, my boot volume is "Macbook Pro HD". The result of calling this bit of code returns:

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

Which allows me to access that file.

If for some reason the DesktopPath isn't on the boot volume, the following Get functions may come in useful:

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
DisplacedAussie