Jump to content
  • 0

AppleScriptje in FM


Leo

Question

Posted

Hallo,

 

Ik probeer dit AppleScriptje in FM te steken maar dat werkt niet.

Als je dit AS gewoon in AS bewaart werkt het wel.

Mag ik vragen of er iemand weet wat ik moet wijzigen om dit in FM te laten werken?

 

De databank "untitled.fp5 is een datbank met een tekstveld "PathAttachmentHTMl" met daarin een padnaam naar een HTML-bestand.

 

Lijkt me iets triviaal ...

 

Bedankt,

Leo

 

set attachmenthtml to ""

 

tell application "FileMaker Pro"

go to database "untitled.fp5"

set attachmenthtml to cell "PathAttachmentHTML" of current record as string

end tell

 

set filealias to attachmenthtml as alias

set AppleScript's text item delimiters to {":" as Unicode text}

set fileName to text item -1 of (filealias as Unicode text)

set AppleScript's text item delimiters to {""}

try

set FileRefnum to (open for access filealias without write permission) -- open the file

set theSource to read FileRefnum

close access FileRefnum

 

on error strError number numberError

try

close access filealias

end try

error (strError & return & return & numberError)

end try

return {theSource, fileName}

5 answers to this question

Recommended Posts

  • 0
Posted

Het lijkt erop dat je informatie uit FM wilt gebruiken in je script.

 

Voor zover ik weet heeft FM nooit vanuit zich zelf via AppleScript tegen zich zelf kunnen praten. FM is dan bezig met de uitvoering van een script en kan niet reageren op een apple-event.

 

De oplossing is een global tekst veld te maken met daarin de samenstelling van een scripttekst waarin je wel FM veld info kan verwerken en dan het uitvoeren van het applescript op basis van de veldwaarde te doen.

Let erop dat de scripttekst als tekst moet worden opgenomen, dat is dus tussen aanhanlingstekens.

Omdat er ook aanhalingstekens in de scripttekst kunnen voorkomen moet je die vervangen door twee stuks.

 

Bijvoorbeeld:

"tell application ""Finder""¶

if not exists item """ & corFolder & Year(corCreation) & Right("00" & Month(corCreation); 2) & """ then¶

error -2700¶

end if¶

end tell"

 

Hierin zijn corFolder en corCreation velden uit FM en Year en Month functies uit FM

Als deze tekst in een veld wordt gezet (SetField) en je voert dat veld uit als AppleSript kan je FM info verwerken in je script.

 

rmw

  • 0
Posted

Bedankt voor de reactie rmw.

 

Ik heb al AS van 4/5 pagina's volledig in FM opgenomen die spreken met verschillende FM db, met Entourage, met de Finder en andere ... die allemaal werken.

 

Het enige dat ik hier van FM nodig heb is de padnaam naar het bestand.

 

Alle HTML wordt dan uitgelezen uit het opgesomde bestand en opgeslagen in een AS variabele. Deze HTML code wordt op zijn beurt gestuurd naar entourage waar ik dan op de MAC een HTML geformateerde Mail met images en al kan opstellen.

 

Het probleem is hier toch wel wat anders denk je opgeeft ( wat ook correct is).

 

In het voorbeeld wordt de "FileRefNum" niet wordt herkend. Ik vermoed doordat dit komt omdat het inlezen van de inhoud van een file en het werken met andere Text Delimiters gebonden is aan het AppleScript Object en enkel vanuit AS zelf kan uitgevoerd worden. Ik dacht dat het er aan lag dat ik geen expliciete applicatie aanspreek om dit te doen en FM dus denkt dat ie dat zelf moet doen.

 

Extern werkt dit script dus wel.

 

Als ik nu zou weten welke applicatie ik zou kunnen aanspreken om dit alsnog uit te voeren. Bestaat er zoiets zoals Applescript SystemEvent Object?

 

Mvg,

Leo

  • 0
Posted

Welke foutmelding krijg je als het in FM wordt uigevoerd? Of gebeurd er dan gewoon niks?

Als je, even om te testen, een volledige padnaam in het script opneemt en die niet laat opvragen uit FM, lukt het dan wel?

 

Even terzijde:

Het opvragen van een fileNaam kan ook door

 

tell application "Finder" to set fileNaam to name of item fileAlias

 

Dan heb je in elk geval je text delimiters niet meer nodig.

 

rmw

  • 0
Posted

Weer geruimere tijd stil geweest. Ik wou toch nog even zeggen hoe ik het opgelost heb.

Ik heb het script dan toch maar extern gelaten en op een server geplaatst. Het Applescript is bewaard als Applicatie.

 

Binnen FM ben ik er niet uitgeraakt.

 

Moest er nog iemand interesse hebben: ik wil de oplossing wel doormailen.

 

Leo

  • 0
Posted

:D Ik had onlangs precies hetzelfde probleem en ik ben er wél uit geraakt.

 

Ik laat het 'appleScript' tekstje genereren in een calculation field. Voor de " gebruikte ik een globalField waarin ik de aanhalingstekens gezet had.

 

De berekening waarmee de tekst gemaakt werd ziet er als volgt uit:

"tell application " &quote& "finder" &quote&"¶"&

"activate" &"¶"&

"open folder "&quote&Naam&" "&Voornaam&quote&" of folder "&quote&"Dossiers"&quote&

" of folder "&quote&"Sollicitaties"&quote&" of folder " &quote& "Nathalie" &quote& "of disk " &quote& "AES" &quote&"¶"&

"end tell"

In de script-editor roep ik dan de waarde van dit veld op waarmee een map aangemaakt wordt waarvan de naam een samenstelling is van de velden 'Naam' en 'Voornaam'.

De plaats van de map is vooraf bepaald en is een constante (AES:Nathalie:Sollicitaties:Dossiers:)

 

Carl.

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...