Filemaker naar iCal
16 september 2008 - 19:12   
geplaatst door: apanken
Hallo,

Ik heb een Apple-script om gegevens vanuit Filemaker over te zetten naar iCal. Dit script heeft altijd gewerkt, maar sinds ik FMPro 9 heb, krijg ik elke keer foutmeldingen.
Het script (gevonden op internet en aangepast) ziet er als volgt uit:

-- grab the data from Filemaker
tell application "FileMaker Pro Advanced"
tell document "Planning.fp7"
tell current record
set theDescription to cell "Opmerking iCal"
set theStartDateAsText to cell "Begindatum"
set theEndDateAsText to cell "Einddatum_iCal"
set theAllDay to true
end tell
set theCalendarTitle to cell "G_iCal_Kalender" -- dit is een globale var.
set theSummary to cell "G_iCal_Wie" -- dit is een globale var.
end tell
end tell
-- convert text to dates
set theStartDate to date theStartDateAsText
set theEndDate to date theEndDateAsText
-- create the event in iCal
tell application "iCal"
activate

-- make new calendar if need be
set allCalendarTitles to the title of every calendar
if allCalendarTitles contains theCalendarTitle then
set theCalendarNumber to (first calendar whose title is theCalendarTitle)
else
set theCalendarNumber to (make calendar at end of calendars with properties {title:theCalendarTitle})
end if

-- make event
set theEvent to (make event at end of events of theCalendarNumber with properties {start date:theStartDate, end date:theEndDate, allday event:theAllDay, summary:theSummary, description:theDescription}) --
show theEvent

end tell

Aan het begin gaat het elke keer fout.
Als ik met de scripteditor test, krijg ik de volgende events:

tell application "FileMaker Pro Advanced"
get cell "Begindatum" of current record of document "Planning.fp7"
"14-11-2008"
get cell "Einddatum_iCal" of current record of document "Planning.fp7"
"FileMaker Pro Advanced kreeg een fout: Object niet gevonden."

Oftewel hij kan schijnbaar "Einddatum_iCal" niet vinden.
Maar als ik kijk in de database dan zijn daar de volgende velden gedefinieerd:

Als ik in het script "Einddatum_iCal" vervang door "Einddatum" dan doet hij het wel.  :wacko:

Als ik "cellValue of" er tussen zet, krijg ik een foutmelding op "cellValue"

Iemand een idee wat er veranderd is sinds FMPro 9?
Nog belangrijker: iemand een idee hoe ik dit kan oplossen?
Alvast bedankt voor de moeite.

Have Fun
Fons
Filemaker naar iCal
16 september 2008 - 20:36    reactie #1
geplaatst door: AndreRelink
Ik wil je met alle plezier helpen, alleen zonder de Filemaker Planning.fp7 database denk ik ook niet dat ik veel verder kom. Ok.... Maak eens veld Einddatum_iCal opnieuw als Einddatum_iCal_new en gebruik veld Einddatum_iCal_new in je script. Kijk of nu je script wel juist functioneert (doorloopt).


André

Filemaker naar iCal
16 september 2008 - 21:27    reactie #2
geplaatst door: miltenb
Het is een leuk initiatief, maar ik kan alleen mee helpen met de planning.fp7 ( met het AppleScript althans )...

Ik heb wel een werkende oplossing voor je via een xml-export i.c.m. FileMaker server kan je dan zelfs subscriben op de calender met een iCal client ( of windows client )

http://www.myfmbutler.com/index.lasso?p=369


Filemaker naar iCal
16 september 2008 - 21:35    reactie #3
geplaatst door: LuckyLuke
Je schrijft dat ie het met einddatum wel doet en die einddatum met berekening niet. Staat de uitkomst van de berekening ook op uitvoer = datum?
Filemaker naar iCal
16 september 2008 - 21:37    reactie #4
geplaatst door: miltenb
Ik heb hier ook wat tests gedraaid.... Alles doet het prima...

tell application "Kantoor" ( de alias van mijn FMA 9v3 )
get cell "datum" of current record of document "test.fp7" "16-9-2008"
get cell "datum_iCal" of current record of document "test.fp7" "17-9-2009"
get cell "datum_iCal_num" of current record of document "test.fp7" "733302"
end tell
dit werkt ook....

tell application "Kantoor"
tell document "test.fp7"
tell current record
get cell "datum"
get cell "datum_iCal"
get cell "datum_iCal_num"
end tell
end tell
end tell

Wat is het datum formaat van je database ?

(Bewerkt door miltenb om 21:53, 16-09-2008)

Filemaker naar iCal
16 september 2008 - 21:43    reactie #5
geplaatst door: miltenb
Ik weet het al... ( denk ik )

Volgens mij heb je geen foundset... dan krijg je ook deze fout.

Filemaker naar iCal
17 september 2008 - 08:12    reactie #6
geplaatst door: apanken

Citaat
AndreRelink om 20:36, 16-09-2008
Ik wil je met alle plezier helpen, alleen zonder de Filemaker Planning.fp7 database denk ik ook niet dat ik veel verder kom. Ok.... Maak eens veld Einddatum_iCal opnieuw als Einddatum_iCal_new en gebruik veld Einddatum_iCal_new in je script. Kijk of nu je script wel juist functioneert (doorloopt).

André


Heb ik gedaan en ook dat werkt niet
Have Fun
Fons
Filemaker naar iCal
17 september 2008 - 08:16    reactie #7
geplaatst door: apanken

Citaat
LuckyLuke om 21:35, 16-09-2008
Je schrijft dat ie het met einddatum wel doet en die einddatum met berekening niet. Staat de uitkomst van de berekening ook op uitvoer = datum?

Ja, zelfs als ik van die berekening gewoon een datumveld maakt werkt het niet.

Have Fun
Fons
Filemaker naar iCal
17 september 2008 - 08:21    reactie #8
geplaatst door: apanken

Citaat
miltenb om 21:37, 16-09-2008
Ik heb hier ook wat tests gedraaid.... Alles doet het prima...

tell application "Kantoor" ( de alias van mijn FMA 9v3 )
get cell "datum" of current record of document "test.fp7" "16-9-2008"
get cell "datum_iCal" of current record of document "test.fp7" "17-9-2009"
get cell "datum_iCal_num" of current record of document "test.fp7" "733302"
end tell
dit werkt ook....

tell application "Kantoor"
tell document "test.fp7"
tell current record
get cell "datum"
get cell "datum_iCal"
get cell "datum_iCal_num"
end tell
end tell
end tell

Wat is het datum formaat van je database ?

(Bewerkt door miltenb om 21:53, 16-09-2008)

Het formaat is gewoon standaard; 01-01-2008
Uiteraard ben ik zelf ook nog bezig geweest en .......... ineens werkte het zonder dat ik echt wezenlijk iets gewijzigd had (volgorde gewijzigd). :wacko:
Dus daarna het script weer in het FMP-script ingebouwd en het werkte!
Daarna voor de zekerheid nog maar een paar keer geprobeerd en na 2 keer keer ik wéér die foutmeldingen. :mad:
En als ik het nu weer in het Scripteditor test gaat het daar ook nu weer fout. Ik snap er niets meer van.

(Bewerkt door apanken om 8:28, 17-09-2008)

Have Fun
Fons
Filemaker naar iCal
17 september 2008 - 08:25    reactie #9
geplaatst door: apanken

Citaat
miltenb om 21:43, 16-09-2008
Ik weet het al... ( denk ik )

Volgens mij heb je geen foundset... dan krijg je ook deze fout.


Wat bedoel je met "foundset"?
Have Fun
Fons
Filemaker naar iCal
17 september 2008 - 10:15    reactie #10
geplaatst door: miltenb
geen records actief , 0 records gevonden. Error 401 na een zoek oftewel in filemakers : get( foundcount ) = 0

Maar ik lees dus dat je een applescript draait binnen een filemaker script ; dat kan op zich prima, maar dan krijg je nog wel eens fouten is ook mijn ervaring. Je moet dan echt context vrije applescripts make, maar volgens mij doe je dat wel doordat je vrij specifiek een programma aanroept met je tell's.

HTH

Filemaker naar iCal
17 september 2008 - 10:21    reactie #11
geplaatst door: Nicky
Misschien moet je nu de tabelnaam erbij zetten?
Filemaker naar iCal
17 september 2008 - 11:14    reactie #12
geplaatst door: AndreRelink
Mogelijk is veld Einddatum_iCal niet geplaatst op de active layout.
Gebruik een Filemaker layout waarin alle velden zichtbaar zijn.
Voeg daartoe de tell layout "Jouw Layout Naam" toe.

tell application "FileMaker Pro Advanced"
tell document "Planning.fp7"
tell layout "Planning" -- let op! vul de juiste layout naam in.
tell current record
set theDescription to cell "Opmerking iCal"
set theStartDateAsText to cell "Begindatum"
set theEndDateAsText to cell "Einddatum_iCal"
set theAllDay to true
end tell
end tell
set theCalendarTitle to cell "G_iCal_Kalender" -- dit is een globale var.
set theSummary to cell "G_iCal_Wie" -- dit is een globale var.
end tell
end tell


André

Filemaker naar iCal
17 september 2008 - 14:35    reactie #13
geplaatst door: apanken

Citaat
AndreRelink om 11:14, 17-09-2008
Mogelijk is veld Einddatum_iCal niet geplaatst op de active layout.
Gebruik een Filemaker layout waarin alle velden zichtbaar zijn.
Voeg daartoe de tell layout "Jouw Layout Naam" toe.
André

André, dat is het  :thumbs-up: Meteen toen ik jouw suggestie las, dacht ik dat is het. En na even uittesten blijkt het dus inderdaad ook zo te zijn!
Dat verklaart ook waarom het de ene keer wel werkte en de andere keer niet!
Mijn hartelijke dank!! :worship:
Weer een mysterie opgelost!  
Iedereen bedankt voor het meedenken!

(Bewerkt door apanken om 17:36, 17-09-2008)

Have Fun
Fons