Ga naar inhoud
  • 0

Trigger bug in FileMaker 10


andries

Vraag

Beste clarifiers,

 

opgelet met script triggers in FileMaker 10. Zoals Peter zo mooi zei op FM Summit: doe dit nooit zonder de Script Debugger aan te zetten.

 

Maar er is een bug in FileMaker, namelijk dat niet al de scripts die getriggered worden te zien zullen zijn in de Script Debugger.

 

Ik heb een simpel voorbeeld bestandje gemaakt, met twee scripts: GoToObject en OnObjectEnter. OnObjectEnter doet 1 ding, namelijk de globale variabele $$haha aanmaken met de waarde "I am here". Dit script wordt getriggerd als het veld "Field1" wordt geselecteerd. GoToObject doet ook 1 ding: naar object 1 gaan.

 

Om de bug te reproduceren moet je het volgende doen: zet je script debugger aan en draai het script "GoToObject", en zet ook je dataviewer aan. Je zal zien dat bij de script stap: go to object [1] automatisch de globale variabele $$haha zal geplaatst worden zonder dat je het script OnObjectEnter in je script debugger heb zien verschijnen (een kleine flikkering in je scrip debugger verraadt dat er iets gebeurt). Het script heeft dus met andere woorden in de achtergrond gedraaid zonder in de script debugger te zijn verschenen (of in de script stack).

 

Als je echter in het veld OnObjectEnter de script stap "Show Custom Dialog" toevoegt, dan zal hij WEL verschijnen in de script debugger, maar pas op het moment dat hij die custom dialog moet tonen, en al de rest ervoor heeft hij wel al uitgevoerd...

 

Ik hoop dat jullie er iets mee zijn.

TriggerBug.fp7

Link naar reactie

7 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Andries,

 

Weet je het zeker:

- Als ik niet in het veld 'Field1' ga staan, dan zie ik mooi beide scripts draaien in de Script Debugger

- Als ik wel in het veld 'Field1' ga staan, en ik draai het GoToObject script, dan komt het OnObjectEnter script niet op, maar dit lijkt mij niet onlogisch, aangezien het object al in "ge-enterde" staat verkeert. Als ik in het veld sta is het OnObjectEnter al gedraaid en is de globale variabele ingesteld btw.

 

 

... of is er iets dat ik mis?

 

Jeroen

Link naar reactie
  • 0

Hoe ik het reproduceer: Ik open het bestand, sta niet in het veld, open de script debugger en run het script GoToObject.

 

Ik ben hier vrij (lees 99%) zeker van, en ben nu samen met Fabrice dit aan het onderzoeken.

 

Zou het een verschil kunnen zijn tussen Mac en Win.

 

Het gedrag doet zich ook enkel voor als je door het script gaat in de script debugger met F5 en F6 en niet met de knoppen bovenaan...

 

Voor al de duidelijkheid is het gedrag van de scripts volkomen normaal, en is volgens mij de bug enkel en alleen dat de script debugger het script niet toont.

 

Hier is een draadje op http://www.filemaker.com: http://forum-en.filemaker.com/fm/board/message?board.id=aut&thread.id=1830

Link naar reactie
  • 0

Mmm, zowel op Mac als op Win werkt het bij mij zoals het moet, in beide gevallen met de F6 toets doorheen de script debugger.

 

Als ik je bestand 1ste maal open, wordt er wel Recover.log aangemaakt met volgende inhoud btw:

 

2009-04-01 13:26:06.346 +0200	TriggerBug.fp7	0	*** Started consistency check of improperly closed file, total of 13 block(s) to check
2009-04-01 13:26:06.446 +0200	TriggerBug.fp7	0	*** Completed consistency check, checked 13 block(s)

 

Ik ben benieuwd of iemand anders je bevinding kan bevestigen....

Link naar reactie
  • 0

ik heb een screenflow gemaakt: http://demo.ovh.com/en/f4d2826c5061b4c27fb3052a1f1512f5/ ...

 

In dit voorbeeld doe ik het script voortgaan met F5 ( niet niet met F6 ). Dat wil natuurlijk zeggen ga naar volgende stap en niet zoals F6 stap in script... mss dat daar iets ligt en dat hij idd handelt zoals bij de script stap "Perform Script" en gewoon het script runt, zonder er echt in te stappen. Dat zou ook het gedrag verklaren van de custom dialog box die getoond wordt.

 

En dus is het mss geen bug, en wel logisch gedrag van FileMaker, maar daarom niet echt makkelijk...

Link naar reactie
  • 0

Mijns inziens betekent 'Step over' (F5) dat je de huidge procedure stap voor stap uitvoert, maar subroutines overslaat. Ik vind het beschreven gedrag dan ook consistent met het 'Step over' principe dat je in de meeste ontwikkelingsomgeveningen en IDE's terugvindt.

 

Benieuwd of er andere meningen zijn hieromtrent....

Link naar reactie
  • 0

idd het is geen bug, hebben we ook al vernomen. Ik schaam mij dood :-)

 

Maar als klein tegenbetoog dan toch even het volgende: OnObjectEnter is eigenlijk een after event... dus zou het script volgens de regels pas mogen getriggered worden na de "gotoobject" ( en niet tijdens... of hoe ik dit ook percipieer ) script stap... :-) Dat was iig een redenering die in mijn hoofd rondging... maar ook dit kan weer ontkracht worden door simpel even de help file na te lezen:

 

Script triggers can be activated by user actions or by scripts. For example, you could use the OnObjectEnter script trigger to activate a script to run when a field is entered either by a user clicking it or by a Go to Object script step.

 

Rest mij dus om mij terug te trekken, en te bezinnen :-)

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