Jump to content
  • 0

met apple op pc netwerk


Zero55

Question

beste allemaal,

 

ik heb een db met allemaal records die een unit voorstellen, iedere unit of combinatie van units behoort tot een dossiernummer. Aan dat dossiernummer hangen verschillende documenten van offertes tot foto's. Van ieder dossiernummer wordt een mapje aangemaakt op een bestandsserver (gewone pc met windows2000 en gedeelde mappen). Met FM op een windows client is er geen probleem, het pad naar het dossiermapje is rap gevonden... maar hoe zit dat als ik wil dat een apple client dit mapje ook kan opendoen via FM, hoe ziet het pad er dan uit ? is dit uberhaubt mogelijk ?

Als ik op de apple naar "netwerk" ga en het juiste wachtwoord en zo ingeef dan kan ik de dossiermappen openen...

Link to comment

Recommended Posts

  • 0

dat blijkt toch niet direct te werken hier bij ons....

 

Om een lang verhaal kort te maken :

ik zou dus de inhoud van de mappen die op een pc staan, beschikbaar willen maken voor apple- en windows-clients (windows clients is geen probleem)

Maar ik weet niet hoe ik de mappen in OSX kan benaderen via Filemaker.

Link to comment
  • 0

Op windows kan je waarschijnlijk via je domein-login rechtstreeks via het pad naar de map op de server. Met MacOS X zal je die map eerst moeten mounten vooraleer je er vanuit FileMaker aankan.

Bij het openen van de database kan je checken of het huidige platform MacOSX is en in dat geval een AppleScriptje laten lopen.

Abs(Get ( SystemPlatform )) = 1 //Mac Client

Ik ben geen held in AppleScript, maar dit werkt met onze Windoos server:

Let([

docLibPath = "smb:////";

docLibName = "");

theDelay = 2

];

"set disk_list to list disks" &

"¶if " & Quote(docLibName) & " is not in disk_list then" &

"¶tell application " & Quote("Finder") &

"¶open location " & Quote(docLibPath) &

"¶delay " & theDelay &

"¶close Finder Window " & Quote(docLibName) &

"¶end tell" &

"¶end if"

 

)//End Let

 

Vervang door naam of IP van je server en door het pad naar je folder.

Op zich is Open Location genoeg. De rest van de code zorgt ervoor dat het venster van de net geconnecteerde netwerk folder niet blijft openstaan.

Link to comment
  • 0
op het pad e:/dossiers

 

Dat gaat op een Mac niet werken :D

Die e: verwijst waarschijnlijk naar een zogenaamde gemapte netwerkschijf (euh mapped netword drive) onder Windows. Neem contact op met je netwerkbeheerder en informeer naar de naam van de gedeelde map (de 'share') waar die letter e naar verwijst. Het is de naam van die folder die je moet opgeven.

 

Veel groeten,

Joris

Link to comment
  • 0

Er stond inderdaad ergens een haakje teveel. Dit is de gecorrigeerde code:

Let([

docLibPath = "smb:////";

docLibName = "";

theDelay = 2

];

"set disk_list to list disks" &

"¶if " & Quote(docLibName) & " is not in disk_list then" &

"¶tell application " & Quote("Finder") &

"¶open location " & Quote(docLibPath) &

"¶delay " & theDelay &

"¶close Finder Window " & Quote(docLibName) &

"¶end tell" &

"¶end if"

 

)//End Let

 

In jouw geval wordt het scriptje:

 

Let([

docLibPath = "smb://192.168.1.19/CBZDATA";

docLibName = "CBZDATA";

theDelay = 2

];

"set disk_list to list disks" &

"¶if " & Quote(docLibName) & " is not in disk_list then" &

"¶tell application " & Quote("Finder") &

"¶open location " & Quote(docLibPath) &

"¶delay " & theDelay &

"¶close Finder Window " & Quote(docLibName) &

"¶end tell" &

"¶end if"

 

)//End Let

 

Opgelet 1: kies bij de script step de optie 'calculated AppleScript'.

Opgelet 2: het applescript connecteert je met het netwerk volume 'CBZDATA'. Vanaf daar dien je zelf in FileMaker het pad samen te stellen naar de benodigde subfolders. In jouw voorbeeld is dat 'Dossiers'.

Een file reference naar bestand xyz.doc gaat er dan zo uitzien:

 

filemac:/CBZDATA/dossiers/xyz.doc

 

Veel groeten,

Joris

Link to comment
  • 0

volgend script is het geworden :

 

Let([

docLibPath = "smb://192.168.1.19/CBZDATA/Dossiers/" & Unit Details::Dossiernr;

docLibName = "CBZDATA";

theDelay = 2

];

"set disk_list to list disks" &

"¶if " & Quote(docLibName) & " is not in disk_list then" &

"¶tell application " & Quote("Finder") &

"¶open location " & Quote(docLibPath) &

"¶activate" &

"¶end tell" &

"¶end if"

 

)//End Let

 

werkt goed mits 2 puntjes waar misschien aan gewerkt kan worden :

1) als voor de eerste keer de dossiermap is opgevraagd, dan blijft CBZDATA "gemount" staan op het bureaublad. Als nu van een ander record de dossiermap wordt opgevraagd krijgen we niks te zien.

Als we echter voordat we een andere dossiermap willen openen CBZDATA "unmounten" lukt het wel zoals het moet....

 

2)als we het script uitvoeren, moeten we steeds een gebruikersnaam en wachtwoord opgeven om op de CBZDATA te mogen...kunnen deze logingegevens ergens bewaard worden ??

Link to comment
  • 0
werkt goed mits 2 puntjes waar misschien aan gewerkt kan worden

We gaan op dit forum niet werken he. Het moet leuk blijven. :lol:

 

Je moet een onderscheid maken tussen:

1) connectie maken met netwerk volume. Dat is het enige wat mijn Applescriptje doet. Die procedure is eenmalig per keer dat die Mac client wordt opgestart.

 

2) op dat volume een submap openen. Die procedure heb je elke keer nodig als je een andere map wil openen. Daarvoor gebruik je best een ander AppleScriptje. Ik kan dat niet uit mijn hoofd, maar er zijn vast forumgebruikers die dat wel kunnen :wink:

 

Groeten,

Joris

Link to comment
  • 0
Zou het een simpelere oplossing kunnen zijn als we de foto's en documenten op een ftp-lokatie opslaan ?

Iemand ervaring hoe OSX hiermee omkan ?

 

Het kan zeker, maar is niet eenvoudiger in jouw situatie.

 

Wat ik me afvroeg (bij gebrek aan windoos) : waarom niet met Open URL werken ? Ik zou denken dat het smb/afp-volume dan automatisch gemount wordt (na authenticatie).

Link to comment
  • 0

even terug omhoog halen :-)

 

De afbeeldingen die op de (pc)server staan, worden op de clients(pc) mooi weergegeven in een veld (verwijst naar image://Server/CBZDATA/Dossiers/20082595/20082595.PCT)

maar als ik de apple-clients deze afbeelding ook wil voorschotelen lukt dat niet...heb al vanalles geprobeerd waaronder smb://192.168.1.19/CBZDATA/Dossiers/20082595/20082595.PCT maar dit werkt dus niet.

Als ik OpenURL gebruik en hier smb://192.168.1.19/CBZDATA/Dossiers/20082595/ in invul opent de apple netjes de netwerkmap.

 

Tips zijn welkom !

Link to comment
  • 0

Een alternatief Applescriptje dat ik soms gebruik in een gelijkaardige situatie is het volgende:

- aangezien er geen uit te rekenen variabelen in het netwerkpad gebruikt worden opteer ik voor "native applescript" ipv "Calculated Applescript"

- hierin volgend applescriptje plakken: (meestal plak en compile ik deze eerst in Script Editor, dan ben ik zeker dat er geen domme fouten inzitten en komt de formatting mooi mee..)

 

tell application "Finder"

if not (exists "CBZDATA") then

mount volume "smb://username:paswoord@192.168.1.19/CBZDATA"

delay 1

end if

end tell

 

(username en paswoord aanpassen aan je eigen gegevens...)

 

 

om dan vanuit filemaker aan de beelden te geraken geef je in filemaker volgend pad mee:

 

filemac:/CBZDATA/Dossiers/20082595/20082595.PCT

 

kan uiteraard via calculation samengesteld worden...

 

(mocht dit niet lukken kan je eventueel eens

filemac:/Volumes/CBZDATA/Dossiers/20082595/20082595.PCT

proberen)

 

vriendelijke groeten,

Tom

Link to comment
  • 0

tuurlijk, en zelfs in één lijntje :

 

do shell script "mkdir '/Volumes/schijfnaam/pad/van/nieuwe/map/naam/'"

 

- verbrand je vingers niet aan de enkele en dubbele aanhalingstekens in de berekening (je gaat dit bijna zeker in een berekend applescriptje willen);

- schrijfbevoegdheid is vanzelfsprekend noodzakelijk.

Link to comment
  • 0
Charlie,

 

Ik ben maar een beetje dom hoor, maar wanneer was het voor de laatste keer dat je serieus naar de mogelijkheden van IWP hebt gekeken ?

 

Niemand hoeft zich dommer voor te doen dan hij is;

maar tot nader order zal 'perform applescript' niets uitrichten op het web, en dat is maar goed ook.

Link to comment
  • 0

sorry, maar ik ben niet zo'n applescriptkenner en als ik dat lijntje (met de nodige aanpassingen natuurlijk) in een applescript zet, dan krijg ik de melding "opgegeven tabel niet gevonden" en dan verwijst FM naar "do shell script"...

Moet er nog het eea bij dit lijntje staan ?

Link to comment
  • 0

Ik denk dat je zo ongeveer hiernaartoe wil :

Let ( [
mapnaam = "Nieuwe map"     //aanpassen met een echte berekening of veld
] ;
"do shell script \"mkdir '/Volumes/pad/naar/gedeelde/map/" & mapnaam & "/'\""
)

de voorwaardse slashes zijn voor het unix-pad; de achterwaartse dienen om de dubbele aanhalingstekens van hun speciale betekenis in FileMaker te ontdoen. Gecombineerd met de enkelvoudige aanhalingstekens (om eventuele spaties in het pad op te vangen) ziet het er nogal geeky uit, vandaar mijn eerdere waarschuwing over aanhalingstekens.

Vooropgesteld dat je het gedeelte achter '/Volumes/...' aanpast aan de werkelijkheid (Terminal.app is uw vriend !) zou het kopieer-plak moeten werken.

Link to comment
  • 0

ik krijg het maar niet aan de praat... maar eerst moet de schijf "gemount" worden op een apple zeker, niet ?

meen mij zoiets te herinneren van forummer Jeroen Aerts die mij dit script eens gemaakt heeft om een gedeelde map op een pc te openen via apple :

Let([

docLibPath = "smb://192.168.1.19/CBZDATA/Dossiers/" & Unit Details::Dossiernr;

docLibName = "CBZDATA";

theDelay = 2

];

"set disk_list to list disks" &

"¶if " & Quote(docLibName) & " is not in disk_list then" &

"¶tell application " & Quote("Finder") &

"¶open location " & Quote(docLibPath) &

"¶activate" &

"¶end tell" &

"¶end if"

 

)//End Let

 

de nieuwe map zou dus aangemaakt moeten worden in de bestaande map op de server (192.168.1.19/CBZDATA/Handlings/)

de naam van de nieuwe map komt uit het veld "Serial"

Zou dus onderdstaande geven :

 

Let ( [

mapnaam = Unit Details::Serial  //aanpassen met een echte berekening of veld

] ;

"do shell script \"mkdir '/192.168.1.19/CBZDATA/Handlings/" & mapnaam & "/'\""

)

 

Hier krijg ik dus de melding "no such file or directory", zelfs als ik CBZDATA al mount...

Link to comment
  • 0

Daarom is Terminal.app dus je vriend. Volg even mee :

-1- mount de netwerkschijf, om het even hoe (*)

-2- open terminal, typ 'cd /Volumes/;ls'

waarschijnlijk staat daar dan CBZDATA Dossiers of Handlings, in dat laatste geval wordt dat dan

Let ( [
mapnaam = Unit Details::Serial  //aanpassen met een echte berekening of veld
] ;
"do shell script \"mkdir '/Volumes/Handlings/" & mapnaam & "/'\""
)

 

(*) ik heb het al eens eerder gesuggereerd, maar ik kan het niet testen bij gebrek aan smb-volume : wat gebeurt er als je in je FileMaker-script de scriptstap open URL gebruikt :

Open URL ["smb://192.168.1.19/CBZDATA/Handlings/"]

Het zou wel eens kunnen dat dit een heel eenvoudige (applescript-vrije) manier is om volumes te mounten vanuit FileMaker.

Als dat werkt, wordt je script dan :

Open URL [ "smb://192.168.1.19/CBZDATA/Handlings/" ] 
Perform AppleScript [ Calculated AppleScript: Let ( [ 
mapnaam = Unit Details::Serial
] ; 
"do shell script \"mkdir '/Volumes/Handlings/" & mapnaam & "/'\"" 
) ] 

 

***UPDATE***

Heb net een buitenkansje gehad om mijn stelling omtrent Open URL te testen. :cry: werkt voor geen meter.

maar het do shell script werkt zeker wel. 8)

***

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...