2011

Nov

15

Av

Som du säkert känner till kan FileMaker Server köra script regelbundet. Det vanligaste är att FileMaker Server kör regelbundna backuper av databaserna, men FileMaker Server kan också köra FileMaker-manus i olika databaser och/eller system-script i form av bat-filer på Windows och shell-script (terminal-kommando) på OSX. 

FileMaker-manus kan vara att t.ex. regelbundet skicka epost. Istället för att låta användare skicka epost själva skapas t.ex. en post för varje epostmeddelande som ska skickas. Servern kan sedan skicka mailen i portioner för att inte mailservrarna ska bli överbelastade. Det kan också vara att fylla på poster med information från internet (t.ex. adresser från Eniro, se vår demo av mobil order), eller regelbundet importera valutakurser.

Det går också att kombinera FileMaker-manus med system-manus (bat-filer eller shell-script). Det går att köra ett system-manus före, och ett efter, ett FileMaker-manus.

Ett exempel kan vara en textfil som ska importeras med jämna mellanrum. Textfilen flyttas till FileMaker-servern med hjälp av FTP och hamnar i en för FTP avsedd mapp på hårddisken. FileMaker Server kan endast importera textfiler som finns i FileMakers dokument-mapp så textfilen måste först flyttas från FTP-mappen till FileMakers dokumentmapp. Först därefter kan FileMaker-manuset köras som importerar filen. När filen är importerad flyttas den till en arkiv-mapp för att inte importeras på nytt. Detta kan läggas in i FileMaker Server som en “manusordning”, dvs. manusen körs i följd efter varandra. (FileMakers dokumentmapp heter “Documents” och finns i programmappen för FileMaker Server.)

Starta först FileMaker Server Admin Console. Starta en webbläsare och ange adressen:

http://server-namn:16000/admin_console_webstart.jnlp

och välj att skapa ett nytt schema. Schemat ska utföra ett manus och du får välja mellan de tre olika typerna:

Manusordning2

Välj att skapa ett manus av typen “Manusordning”. Du måste sedan välja vilken FileMaker-databas manuset finns i och ange ett giltigt användarnamn samt lösenord för att kunna komma åt (och köra) manuset. I nästa steg i guiden väljer du FileMaker-manuset och kommer sedan till bilden där du anger vilka system-manus du vill köra före och/eller efter.

Manusordning1

Det finns menyer för både “Kör före” och “Kör efter”. I menyerna visas de system-manus som finns i FileMaker Servers script-mapp, så du måste först ha skapat system-manuset och lagt det i en fil i script-mappen. (FileMakers script-mapp heter “Scripts” och finns i programmappen för FileMaker Server.)

I bilden ovan har jag valt att köra “UMU_import.bat” före FileMaker-manuset och “UMU_arkiv.bat” efter. “UMU_import.bat” består av en rad med DOS-kommandot “move” (för att flytta filen från FTP-mappen till FileMakers dokumentmapp) och “UMU_arkiv.bat” består av två rader. Först DOS-kommandot “rename” för att byta namn på filen till ett unikt namn och sedan “move” igen för att flytta den till en arkiv-mapp. Har du en OSX-server finns liknande kommando för att flytta och döpa om filer. I exemplet innehåller filerna ordrar från en webbshop.

Mer avancerade system-manus

Ibland räcker inte DOS- eller shell-kommandon till, man vill ibland göra lite mer. Det kan t.ex. vara att sätta in ett värde i en FileMaker-databas när det sista system-manuset i manusordningen är klart, uppdatera en MySQL-databas med värden från FileMaker-databasen eller flytta/döpa om filer med mer avancerade regler m.m.

Ett smidigt och kraftfullt sätt är att använda sig av PHP-script istället för bat-filer eller shell-script. Med PHP kan du i princip göra vad som helst och PHP ingår som bekant i FileMaker Server. PHP behöver alltså inte nödvändigtvis finnas på en web-server, det går utmärkt att köra dem som vilket kommando som helst.

I Windows anropar du PHP-script så här från en DOS-prompt:

call "C:\Program\FileMaker\FileMaker Server\Web Publishing\publishing-engine\php\php.exe" 
"C:\PHP script\avancerat.php"

Som första parameter anger du sökvägen till PHP-programmet (som finns i FileMakers programmapp) och sedan php-scriptet som ska utföras.

Skriv en kommentar

  • (will not be published)
  • seven − 2 =

Läs också: