Hur lägger man till AppleScript som beräkning?

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Jag håller på att kolla på AppleScript för att flytta information från FM till andra OSX program. Jag har testat lite med nedanstående kod som skapar ett nytt mail:

Citat:

set recipientName to "John Doe"
set recipientAddress to "nobody@nowhere.com"
set theSubject to "AppleScript Automated Email"
set theContent to "This email was created and sent using AppleScript!"

--Mail Tell Block
tell application "Mail"

--Create the message
set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

--Set a recipient
tell theMessage
make new to recipient with properties {name:recipientName, address:recipientAddress}

end tell
end tell

Jag har skapat ett manus i FM med manussteget "Utför AppleScript". Där har jag angivit ovanstående kod angivet i fältet "inbyggd AppleScript". Detta fungerar utan problem. Nu vill jag ta det ett steg till och använda fältet "Beräkna AppleScript" där jag vill sätta in variablar från den data jag har i FM i AppleScriptet - i det här fallet vilken e-post som mailet ska skickas till.

Jag klistrar in koden och lägger till min variabel - hur gör jag sedan? FM vill att man lägger hela koden inom citationstecken - vilket då blir fel när man väl kör scriptet. Hur ska man göra?

Se bifogad exempelfil.

Hej!
Du ska inte sätta hela koden inom citationstecken, bara de delar som inte är variabler eller data från FMP. Använd \ framför citationstecken som inte ska vara med i koden.

Exempel:

"set recipientName to \"" & [data från FIleMaker-fält här] & "\""

Tack! Nu förstår jag uppbyggnaden något bättre.
Jag har lagt till \" runt det fält jag vill hämta från FMP. Men får fortfarande ett fel - se bifogade bilder. Koden ser nu ut som följande:

Citat:

"set recipientName to \"John Doe\"
set recipientAddress to \""&test::epost&"\"
set theSubject to \"AppleScript Automated Email\"
set theContent to \"This email was created and sent using AppleScript!\"

--Mail Tell Block
tell application \"Mail\"

--Create the message
set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

--Set a recipient
tell theMessage
make new to recipient with properties {name:recipientName, address:recipientAddress}

end tell
end tell"

Men om det ska stå Set recipient name to "John Doe" så blir koden:

"set recipientName to \"John Doe\""

\-tecknet talar om för FileMaker att ignorera det tecken som följer omedelbart efter. Det kan vara lite förvirrande, så det gäller att tänka sig för. I exemplet ovan så vill du att FileMakers beräkning ska ignorera det första citationstecknet innan John Doe. Beräkningen ska också ignorera det första teckenet efter namnet. \"" innebär alltså att det första citationstecknet, som innesluter namnet ignoreras, men inte det andra som avslutar textsträngen.

I din kod ska alltså nästa rad vara:

set recipientAddress to \"" & test::epost & "\""

Jag rekommenderar också att du gör varje rad i scriptet till en sträng i FileMaker. Då blir det mindre risk att gå vilse bland citationstecknen. Så här:

"Set recipientName to \"John Doe\"" &
"Set recipientAddress to \"" & test::epost & "\"" &
[osv]

1
Bevaka tråden