En av nyheterna i FileMaker 2023 är möjligheten att utföra script på servern med återanrop ("callback"). Till exempel kan du få meddelande när scriptet som du startat på servern är klart. Det finns som vanligt flera sätt att visa notiser på, både i FileMaker och i macOS/Windows.
Förutsättningen för att utföra script på servern med återanrop ska fungera är att du har FileMaker 2023 både på klient och server.
I databasen behöver du:
- Ett script som utförs på servern som du inte vill vänta på, men vill få meddelande om att det är klart.
- Ett script, eller knapp, för att starta scriptet på servern.
- En layout som visar notisen i ett eget fönster.
- Ett script som utförs när server-scriptet är klart.
- Ett script för att stänga notisen, antingen efter en viss tid eller när du klickar på den.
Scriptet på servern startas med det nya scriptsteget Utför script på server med återanrop. Redan i detta script anger jag vad som kommer att stå i notisen. Det gör jag med en parameter som i det här exemplet är i JSON-format och består av en rubrik och en text:
JSONSetElement ( ""; ["rubrik"; "Serverscript"; JSONString]; ["text"; "Scriptet på servern är nu klart!"; JSONString] )
Layouten gör du ganska liten, mindre än fönstret som ska visa notisen. Jag har gjort en layout där den vita ytan är 360x150 px. Jag har lagt in en bild på den nya FileMaker-symbolen och 2 st textramar som kommer att visa rubriken och texten. Koderna "<<$notis.rubrik>>" och "<<$notis.text>>" kommer att ersättas med informationen du angav som parameter när du startade server-scriptet.
Scriptet som utförs när server-scriptet är klart ser ut enligt bild:
Första raden i scriptet hämtar script-parametern till en variabel som sedan används i rad 2 och 3 för att hämta rubriken och informationstexten som ska visas i notisen. På rad 4 gör jag ett nytt fönster av typen "Flytande dokument" som är 400x200 px. Det visas i övre högra hörnet på din bildskärm och lägger sig ovanpå dina FileMaker-fönster.
På rad 5 uppdaterar jag fönstret för att texterna ska visas på layouten. Ritas fönstret upp medan scriptet körs kan $-variabler användas. De försvinner normalt när scriptet är klart, men med Uppdatera fönster ritas fönstret upp medan variablerna fortfarande finns. Det går också bra att använda $$-variabler som finns kvar även efter det att scriptet är klart, men i det här fallet onödigt att de ska finnas kvar så länge databasen är öppen.
Den sista raden, rad 6, i scriptet startar scriptet "Stäng notis" om 5 sekunder med scriptsteget "Installera OnTimer-script". Det betyder att notis-fönstret automatiskt stängs efter 5 sekunder. Om du vill låta användaren stänga notisen själv tar du bort denna rad.
När server-scriptet är klart kommer notisen att se ut så här:
Scriptet som stänger notisen utförs alltså efter 5 sekunder eller när du klickar på notisen. På layouten finns en stor, genomskinlig knapp som täcker hela layouten. Klickar användaren på knappen utförs scriptet "Stäng notis".
Självklart kan du ha andra knappar i notis-layouten, t.ex. för att gå till en layout där script-resultatet visas, öppna PDF-rapporten som skapats på servern etc.
Scriptet "Stäng notis" innehåller 2 rader, först tas "OnTimer-scriptet" bort och sedan stängs fönstret med namnet "Notis", som var det namn jag gav fönstret när det öppnades. Det gör jag med scriptsteget Stäng fönster.
Observera att notisen visas inte om du avslutat FileMaker Pro innan server-scriptet blir klart. Metoden fungerar inte heller så bra med WebDirect- eller iOS-klienter.
Visa notiser i macOS
Använder du en Mac skapar du enkelt notiser med ett AppleScript. I macOS visas notiser i övre högra hörnet på bildskärmen. I FileMaker finns scriptsteget Utför AppleScript som du använder.
I scriptet som visar notisen byter du ut scriptstegen för att visa nytt fönster med följande rad:
Visa notiser i Windows
I Windows 10/11 finns notiser som visas i den nedre högra hörnet, t.ex. när du får epost. FileMaker kan förstås också skapa Windows-notiser. Det görs med Powershell-kommando, det enklaste är att först installera ett tillägg som heter "BurntToast", läs mer om det här. I scriptet som visar notisen byter du ut scriptstegen för att visa nytt fönster med följande 2 rader:
I scriptsteget Skicka Event gör du en beräkning. Resultatet kan t.ex. bli så här: