Leo Posted April 25, 2004 Posted April 25, 2004 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} Quote
0 rmw Posted April 27, 2004 Posted April 27, 2004 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 Quote
0 Leo Posted April 27, 2004 Author Posted April 27, 2004 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 Quote
0 rmw Posted April 28, 2004 Posted April 28, 2004 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 Quote
0 Leo Posted June 8, 2004 Author Posted June 8, 2004 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 Quote
0 carl_vdm Posted August 24, 2004 Posted August 24, 2004 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 " "e& "finder" "e&"¶"& "activate" &"¶"& "open folder ""e&Naam&" "&Voornaam"e&" of folder ""e&"Dossiers""e& " of folder ""e&"Sollicitaties""e&" of folder " "e& "Nathalie" "e& "of disk " "e& "AES" "e&"¶"& "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. Quote
Question
Leo
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.