Jump to content
  • 0

Wie kan me aan een idee helpen voor een timer script


fmwebshop

Question

16 answers to this question

Recommended Posts

  • 0

Bedankt voor de reacties.

 

Fm 10 nog éven niet, klant heeft net geupgraded naar 9.

Er wordt gewerkt met 3 clients, geen server, dus de server oplossing kan niet gebruikt worden.

 

Probleem bij de oplossing van Yves is dat Fm dan permanent in een "onderbroken scriptstap" komt te staan en dat beperkt aanzienlijk de verdere gebruiks mogelijkheden. Of ze zijn geblokkeerd, of ze beëindigen automatisch het script.

 

Zoeken naar een plug in, of misschien nog een ander idee....

 

groeten

Harry Bakker

Link to comment
  • 0

Je kunt een work-around maken, maar dat is afhankelijk van hoe druk er met het geheel gewerkt wordt.

Ik heb een keer zo-iets gemaakt voor een database waar met 6 man aan gewerkt werd, dus veel activiteit. En de 30 minuten mocht ook best 35 of 40 minuten zijn, als het maar regelmatig was.

 

De opzet was alsvolgt:

Bij het opstarten van de database werd een globaalveld gevuld met de tijd.

In alle databases die gekoppeld waren werd steeds naar dit globaalveld verwezen.

In alle databases waren zoveel mogelijk acties via scripts gemaakt: new record via script, zoeken via script, sorteren, verwijderen, etc.

Alle scripts hadden aan het eind de berekening dat als het tijdsverschil groter dan 30 minuten was met het globaalveld, dat dan een script ging draaien om een uitdraai te maken van alle wijzigingen. Globaalveld dan aanpassen uiteraard, anders blijft het script draaien.

Maar dit werkt alleen als de 15 minuten niet precies 15 minuten hoeft te zijn. Een koffiepauze tussendoor moet dus ook kunnen.

 

Het is niet echt een fraaie oplossing, maar het heeft ons een keer gered omdat we een uitdraai hadden voordat de stoppen eruit vlogen.

 

Succes,

Hiker

Link to comment
  • 0

Bedankt Burggraaf en hiker.

 

De oplossing van hiker had ik al min of meer zo aan de gang.

Hij is hier helaas niet accuraat genoeg.

 

Ik heb begrepen dat een goede timer oplossing niet in FM te vinden is.

Ik heb een site gebouwd die draait in IWP (werkt super). Moet de mogelijkheid maken voor een bezoeker om zichzelf een mail te sturen vanuit de site als hij zijn wachtwoord vergeten is. Vanuit IWP kan ik niet direct mailen, dus wil ik een "lokale basis" iedere minuut mailing opdrachten in de site op laten halen en vervolgens lokaal laten verzenden.

 

Wil nu een toepassinkje bouwen dat slechts als taak heeft het ophaal script te triggeren in de basis.

Hiervoor heb ik nu een extern scriptje nodig dat dat toepassinkje iedere minuut opent.

In het toepassinkje maak ik een openings script dat het script in de basis triggert en vervolgens het toepassinkje af sluit.

 

Heb nog nooit eerder met Apple script gewerkt en heb gezien dat om e.e.a. voldoende te beheersen er even flink gestudeerd moet worden. Daar heb ik op dit moment geen tijd/ruimte voor. Ben nog druk aan het studeren in FM.

 

Vandaar dat ik op het forum probeer een passende simpele oplossing te vinden. Het apple scriptje lijkt me nu na al de voorgaande reacties de beste oplossing.

 

Is er iemand die zo iets "zo even opschrijft" ?

 

dank

 

Leuke toepassing van IWP

http://www.saxtrader.nl

http://www.fmwebshop.nl

Link to comment
  • 0

Ha die Harry,

 

Je kan het voor mekaar krijgen met de DoScript plug-in van myFMbutler. Die is gratis. Hiermee kan je triggers maken.

De plug-in is nogal techno-weenie uitgevallen, maar het komt er op neer dat je een trigger formule moet aangeven en dan het alarm moet aanzetten.

In de voorbeeld bestanden die bij de DosScript zitten, zijn een paar triggers uitgelegd.

Geraak je hier niet uit, dan zal ik eens een simpel voorbeeldje posten.

 

PS: de sax die je mij 10 jaar geleden gegeven hebt is nog steeds in goede handen bij een vriendin die er daadwerkelijk ook iets uitkrijgt. Ik heb toen na een paar dagen de buren te terroriseren met trillende handen en vooral lippen het ding aan haar in "onbeperkte bruikleen" gegeven.

Link to comment
  • 0

Dag Peter,

 

Leuk je te "ontmoeten" op het forum.

De sax bleek dus te gevaarlijk voor jou.

Gelukkig heeft hij toch nog een goede bestemming gekregen, misschien is je buurvrouw na 10 jaar aan een upgrade toe, laat ze eens kijken op http://www.saxtrader.nl.

 

Ik heb de saxofoon zaak 8 jaar geleden aan mijn zoons over gelaten en heb me met vervroegd pensioen in Fr gevestigd.

Dor economische omstandigheden ben ik nu gedwongen alsnog weer wat bij te gaan verdienen. Wonende in het departement Creuse in midden Fr, hier woont niemand, het valt het niet mee hier zinnig werk te vinden op 62 jarige leeftijd.

 

Ik werk met Fm sinds 1992 en daarom besloten om me hier verder in te storten.

Ben hard aan het studeren en aan het ontwerpen van toepassinkjes voor kleine gebruikers.

Volgend jaar Certified...

De detailhandel kén ik.

Voor jullie de kruimeltjes, mocht je iets tegenkomen...

 

Wat betreft het scriptje, je doet me zeker een plezier met een simpel voorbeeldje !

Een goed voorbeeld spreekt veel effectiever dan een droge uitleg.

 

Bedankt en met hartelijke groet

Harry

Link to comment
  • 0

Overigens,

Heb het idee van Peter nog niet doorgrond. Teveel "onbekenden".

 

Heb mijn timer probleempje tijdelijk opgelost met een Apple scriptje en een Fm script.

Werkt prima. De constructie stoort nagenoeg niet in het gebruik van de computer.

 

Hieronder het Apple timer script en een bijlage met het Fm script om het apple script aan/uit te zetten met een button.

 

Apple script:

on idle

tell application "FileMaker Pro Advanced"

do script FileMaker script "*BASIS_12_download_alle_bezoek"

end tell

return 600 ((dit is de interval tijd))

end idle

 

Het Apple script opslaan als: "application" en " niet sluiten"

5a758dca0adf6_Foto2009-01-1413-19-57.jpg.6b648705c4a6f4dd7c9f10e42d58d4e3.jpg

Link to comment
  • 0

Peter Wagemans schreef:

Dit voorbeeldje zou voor zichzelf moeten spreken.

 

Dag Peter,

 

Het voorbeeldje spreekt voor mij helaas niet voor zichzelf, ik zie slechts iets schemeren.

Ben je bereid hierover meer uit te leggen.

Bijvoorbeeld:

hoe kun je een script triggeren vanuit een formule, dat doorzie ik nog niet.

in het voorbeeld zijn, zo lijkt mij, een aantal paramaters niet ingevuld, als het script compleet werkend zou zijn zou ik het mogelijk makkelijker kunnen doorgronden.

 

Daaank

Harry

 

Laat me proberen dit nog iets duidelijker te maken.

Het voorbeeldje heeft 3 velden: "volgende alarm", "formule" en "triggerCalc".

"volgende alarm" is een globaal veld van het type TimeStamp, dat is een datum en een tijd gecombineerd dus.

Op de layout staat een knopje dat de huidige "timestamp" + 5 seconden in dat globaal veld invult.

Als je er op klikt wordt volgende instructie uitgevoerd:

"stel veld in [volgende alarm] -> Get ( CurrentTimeStamp ) + 5 // 5 seconden

Deze instructie past het globaal veld dus aan, maar er gebeurt hierdoor ook iets meer:

Het triggert het "formule" veld, want dat gebruikt het "volgende alarm" veld in haar calculatie.

Die formule is:

"If ( Get ( CurrentTimeStamp ) > GetAsTimestamp ( " &
Quote ( volgende alarm ) & 
") ; mfmb_DoScript ( \"wekker gaat af\" ; " & Quote ( Get ( FileName ) ) & " )  ; false )"

Het resultaat van die formule is een gewone tekst, waarin wederom een formule staat.

Je moet die formule als volgt interpreteren:

Als de huidige datum en tijd groter is dan de timestamp die tussen aanhalingstekens staat - en dat is het volgende alarm - dan moet je een script uitvoeren dat "wekker gaat af" heet, en dat script staat in de huidige file. Als dat niet zo is, geef dan als resultaat False.

We zijn er bijna.

Het calculatieveld "TriggerCalc" wordt door het "formule" veld getriggerd.

Het bevat volgende formule:

mFMb_DS_SetTrigger ( formule ) & mFMb_DS_SetAlarm ( True )

Je moet deze formule als volgt interpreteren:

Stel een DoScript trigger in. Die trigger evalueert elke seconde een formule, en die formule moet de trigger éénmalig ophalen uit het formule veld. Nadat die trigger ingesteld is, kan je hem activeren.

 

Ik geef toe, dit hoort niet thuis hoort in hoofdstuk 1 van "FileMaker Pro voor Dummies". Maar het is eigenlijk eenvoudiger dan het eruit ziet, en zal beter werken dan je AppleScript zoals het er nu uitziet.

Het AppleScript is goed, maar kijk eens naar volgende suggesties:

on idle
try
	tell application "FileMaker Pro Advanced"
		do script FileMaker script "*BASIS_12_download_alle_bezoek" of database "Huppeldepup"
	end tell
end try
return 600 -- ((dit is de interval tijd)) 
end idle

Door de code in een "try" block te steken, vermijd je dat je AppleScript in de penarie komt als je een tijdje in de velddefinties moet zijn, of als FileMaker Pro zegt dat er een update beschikbaar is ( om maar iets zots te noemen ).

Voorts is het ook verstandig om je database als extra parameter mee te geven. Slecht gedocumenteerd in de AppleScript dictionary, maar logisch als je de object hierarchie bekijkt. Hierdoor vemijd je dat de zaken niet meer werken als een ander bestand op de voorgrond staat in FileMaker.

 

Je oplossing werkt, en dat is uiteindelijk wat telt. De DoScript oplossing is bruikbaar op MacOS én op Windows, natuurlijk kan je zoiets ook maken op Windows met Visual Basic...:-)

Link to comment
  • 0

Bedankt Peter voor je uitleg.

 

Snap alles prima tot aan de laatse "we zijn er bijna"

Daar ben ik er helemaal niet meer.

 

"Het calculatieveld TriggerCalc wordt door het formule veld getriggerd."

 

"mFMb_DS_SetTrigger (formule) & mFMb_DS_SetAlarm (True)"

 

*Waar komt dit vandaan, (hiervan vind ik niets in het voorbeeld)(het voorbeeld werkt niet) ?

*Wat doet het ?

*Hoe kun je een script uitvoeren van uit een formule?

Ik kan alleen scripts doen uitvoeren van uit het script menu of met een button.

*Waarom werkt het voorbeeld niet?

 

groeten

Harry

Link to comment
  • 0

Harry, ik denk dat je de DoScript plug-in niet geinstalleerd hebt. Die gratis plug-in kan je downloaden van http://www.myfmbutler.com/ en moet je dan even in je FileMaker extensions map plaatsen.

 

Vanaf FileMaker Pro 8.5 is de locatie van je plug-ins deze map:

(je hebt een Mac, dus even in "mac speak")

~/Library/Application Support/FileMaker/Extensions/

(hierbij is ~ het pad naar je gebruikersmap, die in /Users/ zit)

De oude locatie is de extensions map in je FileMaker applicatie map. Niet meer gebruiken, werkt nog wel maar is niet meer aan te raden.

 

De DoScript plug-in breidt de mogelijkheden van FileMaker verder uit, zodat je wel degelijk een script kan uitvoeren vanuit een formule.

Als je begrijpt hoe plug-ins werken, en je geraakt er wat mee vertrouwd, dan zal er een heel nieuwe wereld van mogelijkheden voor je open gaan in FileMaker.

Omdat Clarify een forum is dat acommercieel wil blijven, wordt er heel weinig gesproken over FileMaker plug-ins, omdat deze vrijwel altijd commerciele producten zijn. De DoScript plug-in is echter freeware, dus ik denk dat de moderators dit wel even zullen toelaten...:-)

Link to comment
  • 0

Dat veranderd alles Peter!!!

 

Ik heb nu een heel lief klein mFMb timertje, dat ik met een knopje aan en uit kan zetten, dat iedere minuut braaf bestellingen van de Server ophaalt en vervolgens ook nog lokaal email bevestigingen verstuurd.

Geen super dure ( $1300,-) email plugin nodig om dat in een IWP situatie vanaf de server te doen.

Ben ik dus heel blij mee.

 

Bedankt voor je moeite.

 

Vriendelijke groeten,

Harry

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...