Automatizzazione delle attività con gli script > Creazione e modifica degli script > Esecuzione di script in FileMaker Server
 
Esecuzione di script in FileMaker Server
In genere gli script nei file ospitati da FileMaker Server vengono eseguiti sul client. Tuttavia, è possibile eseguire uno script sul server (uno script lato server) utilizzando:
un'istruzione di script Esegui script su server in uno script in esecuzione su un client
un programma di FileMaker Server (vedere la Guida di FileMaker Server)
Esecuzione differenziata degli script in FileMaker Server
Uno script avviato da uno dei metodi riportati in precedenza viene eseguito dal Motore di script FileMaker (FMSE), un componente di FileMaker Server. FMSE è un client che esegue ogni script in una sessione distinta sul server. Di conseguenza, gli script lato server:
non hanno il contesto del client (formato corrente, gruppo trovato, criterio di ordinamento, record, valori di campi globali e valori di variabili locali o globali)
È possibile passare le informazioni sul contesto del client a uno script lato server utilizzando il parametro di script nell'istruzione di script Esegui script su server. Lo script lato server può utilizzare queste informazioni nelle istruzioni di script come l'istruzione di script Vai al formato e l'istruzione di script Esegui la ricerca per specificare il formato e il gruppo trovato su cui agire.
supportano parametri di script e risultati degli script fino a 1 milione di caratteri
possono accedere ad altri file FileMaker Pro solo se vengono soddisfatte entrambe le condizioni riportate di seguito:
i file si trovano sullo stesso host
i file sono già stati aperti dal client che ha avviato lo script lato server oppure sono stati configurati con un nome utente e una password specificati nella finestra di dialogo Opzioni file del file
Gli script lato server vengono eseguiti nello stesso modo, indipendentemente da come sono stati avviati, salvo le eccezioni riportate di seguito:
Un client che utilizza l'istruzione di script Esegui script su server può scegliere di attendere il completamento dello script sul server e utilizzare la funzione Get ( RisultatoScript ) per catturare il risultato.
È possibile scegliere di annullare un programma di FileMaker Server se lo script in esecuzione supera il limite di tempo specificato.
Gestione delle istruzioni di script non supportate
Molte istruzioni di script sono supportate anche da FMSE. Tuttavia, se si tenta di eseguire un'istruzione di script non supportata, viene restituito l'errore 3 ("Comando non disponibile"), l'istruzione non supportata viene saltata e si passa all'istruzione successiva. Per gestire le istruzioni non supportate, lo script può utilizzare l'istruzione di script If con:
la funzione Get ( UltimoErrore ) dopo un'istruzione per verificare che l'istruzione sia supportata e, in caso contrario, eseguire le istruzioni supportate. Ad esempio, l'istruzione di script Apri file non è supportata da FMSE; pertanto, lo script di seguito in esecuzione sul server salterà questa istruzione e restituirà "non supportata" nel risultato.
Apri file [Apri file nascosto: Disattivata; "Backup fatture"]
If [Get ( UltimoErrore ) = 3]
Esci dallo script [Risultato testo: "non supportata"]
End If
la funzione Get ( VersioneApplicazione ) prima di altre istruzioni per controllare se lo script è in esecuzione su FileMaker Server e quindi eseguire solo le istruzioni supportate. Ad esempio:
If [ContaRicorrenze ( Get ( VersioneApplicazione ) ; "Server" ) > 0]
# Continua con le istruzioni di script supportate da FMSE
End If
Per conoscere le istruzioni di script supportate da FMSE, nell'Area di lavoro script di FileMaker Pro, aprire uno script, fare clic su Pulsante Nuova cartella, quindi selezionare Server. Le istruzioni di script non supportate vengono visualizzate in un colore diverso. È anche possibile fare riferimento alla tabella Compatibilità di ciascuna istruzione di script in Istruzioni di script.
Motivi per eseguire uno script sul server
per migliorare le prestazioni riducendo il traffico di rete tra client e server
per trasferire le operazioni che richiedono più tempo dai client più lenti a un server più rapido
per consentire ai client FileMaker Go di eseguire le operazioni che richiedono i plug-in, supportati in FileMaker Server ma non in FileMaker Go
per utilizzare le istruzioni di script Importa record o Esegui SQL con un'origine dati ODBC che utilizza il DSN del server
Note 
Se i record sono bloccati da un client, gli script lato server non possono accedere ai dati non salvati o modificare i contenuti di tali record.
L'esecuzione di script lato server apre e chiude i file che contengono gli script. Pertanto, quando lo script inizia viene attivato il trigger di script SuAperturaPrimaFinestra e quando lo script finisce viene attivato il trigger di script SuChiusuraUltimaFinestra.
Gli script lato server possono utilizzare l'istruzione di script Esegui script per eseguire dei subscript, anch'essi eseguiti sul server, solo se questi si trovano in file sullo stesso server e sono già aperti dal client.
Gli script eseguiti da Esegui script su server utilizzano lo stesso account del client. Gli script eseguiti da un programma di FileMaker Server utilizzano l'account specificato nel programma (vedere la Guida di FileMaker Server). Il set di privilegi dell'account deve avere il privilegio esteso fmapp attivato. Vedere Modifica dei privilegi estesi per un set di privilegi.
Gli script lato server non permettono a un client di visualizzare i messaggi di avviso FileMaker come quando gli script vengono eseguiti sui client; pertanto, gli script lato server vengono sempre eseguiti come se l'istruzione di script Imposta cattura errori fosse attivata. Utilizzare la funzione Get ( UltimoErrore ) negli script lato server per gestire le condizioni di errore. Per semplificare la risoluzione dei problemi, gli errori vengono scritti anche nel registro eventi di FileMaker Server.
I client non possono interrompere gli script lato server. Tuttavia, uno script lato server può essere interrotto se:
un amministratore server arresta lo script (visualizzato come client distinto che può essere scollegato nella FileMaker Server Admin Console)
lo script in esecuzione supera il limite di tempo specificato nel programma di FileMaker Server che lo ha avviato
lo script incontra un'istruzione di script sconosciuta (vedere l'istruzione di script Consenti interruzione utente)
Vedere la Guida di FileMaker Server.
Negli script lato server, le funzioni relative all'hardware, come Get ( IndirizzoIPSistema ), restituiscono informazioni dal componente server database di FileMaker Server, non dal client.