Ga naar inhoud
  • 0

Applescript


Edwin1995

Vraag

Beste filemakers,

 

Ik probeer onderstaande applescript uit te voeren met de script-stap applescript uitvoeren.

Het onderstaande appelscript wordt uitgevoerd als een berekend applecript in filemaker.

Het script werkt als het wordt uitgevoerd als een native script.

Het probleem zit volgens mij in aanhalingstekens of het ampersand-teken

 

Ik krijg de foutmelding: Verwachtte regeleinde maar vond “set”.

De tekst bij set summary to moet uiteindelijke een filemaker veldinhoud worden!

Kan iemand mij helpen, ben al uren bezig geweest?

Alvast mijn dank

 

"tell application "& ("iCal") &"

set theDate to current date

set theCalender to calendar 1

tell theCalender

set theEvent to make new event

tell theEvent

set summary to "& ("Tekst") &"

end tell

end tell

end tell"

Link naar reactie

20 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Als een AppleScript in een berekend veld moet staan, los ik het zo op.

 

"tell application " & "\"iCal\"" & "¶" &
"set theDate to current date" & "¶" &
"set theCalender to calendar 1" & "¶" &
"tell theCalender" & "¶" &
"set theEvent to make new event" & "¶" &
"tell theEvent" & "¶" &
"set summary to " & " \"tekst\""  & "¶" &
"end tell" & "¶" &
"end tell" & "¶" &
"end tell"

 

Dre

Link naar reactie
  • 0

Interessante post!

Ik ben ook van tijd tot tijd bezig met Applescript, ik wil uiteindelijk iCal en Mail goed kunnen manipuleren.

 

Wel een opmerking: waarom zet je je hele script niet in een variabele en/of (global) veld, dan kun je met veel minder quotes en escapes toe:

 

- Je plakt de code uit Script Editor in een veld.

- De items die je wilt aansturen vanuit FileMaker vervang je door een token, bijv. %omschrijving.

de regel in je Applescript wordt dan:

set summary to "%omschrijving"

 

- in je FileMaker script neem je bijvoorbeeld de volgende regel op

 

Substitute ($code ; "%omschrijving" ; )

 

De dubbele quotes in het Applescript worden door FileMaker gewoon gerespecteerd en doorgegeven aan de Script processor.

No need for escape.

 

Hans Erik

Link naar reactie
  • 0

Beste Hans.

 

Bedankt voor jouw idee.

De token optie is zeker een goede aanvulling op mijn kennis, ga ik uitproberen

Ik moet nog veel leren over AppleScript om het echt toe te passen.

Maar mijn eerste indruk is dat je op een vrij eenvoudige manier taken kan automatiseren.

Hoe en wat ik precies ga automatiseren weet ik nog niet, maar als iemand mij kan vertellen hoe je bijvoorbeeld een macro voor excel mee kan sturen in een AppleScript dan ben ik weer goed geholpen.

Voor mijn huidige DB zou een kruistabel heel handig zijn.

Waar wellicht is dit voor nu wel iets te hoog gegrepen.

Mijn dank voor jouw reactie

 

Felix jij ook bedankt, hoe minder type werk hoe beter.

 

Groet

Edwin

Link naar reactie
  • 0

Ik ben ook bezig met AppleScript en Calendar/iCal, maar ik vraag me af: hoe krijg je de informatie terug in FileMaker?

 

Aanmaken van een iCal event gaat, maar ik wil bijv. een lijst in FileMaker samenstellen van de aanwezige kalenders, en dan de events van een bepaalde kalender opvragen en in een veld plaatsen.

Link naar reactie
  • 0

Een gedeelte van een script dat ik gebruik waarin je kunt zien hoe je van Applescript weer naar Filemaker kunt gaan.

 

	tell application "FileMaker Pro"
	tell database "WPM"
		tell table "WPM"
			set cell "g_CheckIn_AdvNummer" to Folder_AdvBestand
		end tell
		return do script "Inchecken Advertentie"
	end tell
	activate
end tell

 

Het eerste gedeelte vult het globale veld "g_CheckIn_AdvNummer" met een waarde en in het tweede gedeelte wordt het script "Inchecken Advertentie" gestart.

Link naar reactie
  • 0

Bedacht nog: je kunt in AppleScript natuurlijk ook een iCal / Calendar event naar een tekstbestand wegschrijven (hoe?).

 

En dat kun je dan weer inlezen, met een import of een plugin.

Lijkt omslachtig en foutgevoelig maar dat dat valt wel mee.

 

Toch wel jammer dat ondersteuning voor iCal, AppleMail en Addressbook niet gewoon in de OSX versie van FileMaker ingebouwd zijn . Het zijn toch de pijlers van de digital hub.

Maar de vele fabrikanten van plugins verdienen er weer een boterham mee...

Link naar reactie
  • 0

Valt misschien een beetje buiten de scope van dit forum, maar ik probeer van alles uit met AppleScript (vanuit FileMaker, dat weer wel), maar het lukt me niet om de Calendar van een Event (oftewel: de agenda waartoe een afspraak behoort) te veranderen.

 

Op zich begrijp ik dat wel, want de hierarchie is dat iCal/Calendar 1 of meer agenda's bevat en een agenda bevat 1 of meer afspraken. En de agenda is dus niet een eigenschap (property) van een afspraak en kun je niet veranderen.

 

Maar in de Calendar App van OSX kan ik wel de afspraak van de ene agenda naar de andere omzetten, waarbij de UID gelijk blijft.

Iemand een tip?

 

NB Toepassing: ik zou bijvoorbeeld in FileMaker de status van een afspraak of Todo willen omzetten, wat via een Applescript resulteert in een andere agenda in iCal. Daardoor zou je in iCal op de iPhone via een kleur de status kunnen aflezen.

aangepast door Gast
Link naar reactie
  • 0

Op deze site kwam ik daarvoor een voorzet tegen.

En dit werkt bij mij:

tell application "Calendar"
set vanCal to "zzz"
set naarCal to "yyy"
set x to first event of calendar vanCal whose uid is "1F1E48E6-1C7C-48DF-89A6-6764BF0BC24D"
copy x to end of events of calendar naarCal
delete x
end tell

En als ik na uitvoer 'vanCal' en 'naarCal' omdraai gaat het event weer netjes terug.

 

Dit zou vanuit FileMaker ook gewoon moeten werken, maar dat heb ik nog niet geprobeerd....

 

HTH

 

rmw

Link naar reactie
  • 0

Ja, dat zou inderdaad moeten werken.

 

Je moet dan wel na de omzetting de UID weer opvragen en in FileMaker bijwerken, want je maakt een nieuw event aan zo te zien.

 

Wat ik wel raar vind is dat je in iCal een event van de ene agenda naar de andere kunt verplaatsen waarbij het UID gelijk blijft.

Helaas is de iCal app niet recordable, dus het is niet duidelijk wat er gebeurt.

Link naar reactie
  • 0
Je moet dan wel na de omzetting de UID weer opvragen en in FileMaker bijwerken, want je maakt een nieuw event aan zo te zien.

 

Dat is dus niet nodig.

Bijgaand een voorbeeld.

Zorg dat je je agenda al open hebt staan.

Lees dan je kalenders/events in en verplaats dan een event.

Het uid van het event blijft gelijk.

Zoals in het script VerplaatsEvent is te zien, pas ik na verplaatsing alleen het id van de kalender aan.

 

rmw

 

PS bedankt voor de uitdaging, ik was al langer van plan wat met iCal en applescript te gaan doen, maar daar kwam maar niet van :lol:

Calendar.fmp12

Link naar reactie
  • 0

Ah, ik snap het. Je moet de kalender / agenda natuurlijk identificeren aan de hand van het UID, niet alleen de naam. Dank!

 

Want er kunnen wel 20 kalenders zijn met dezelfde naam, maar ze hebben allemaal een eigen UID.

 

Overigens: het gebruik van UID's is in FileMaker 12 vrij geruisloos geïntroduceerd. Eén van de toepassingen is natuurlijk een betere synchronisatie tussen FileMaker Pro en FileMaker Go, omdat de UID een ondubbelzinnige identificatie mogelijk maakt.

 

Maar een andere toepassing in een toekomstige versie van FIleMaker zou natuurlijk ook de synchronisatie met Mail, Addressbook en iCal kunnen zijn.

 

 

Hoop doet leven.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...