Esecuzione di script in FileMaker Server e FileMaker Cloud
In genere gli script nei file ospitati da FileMaker Server e FileMaker Cloud vengono eseguiti sul client. Tuttavia, è possibile eseguire uno script sul server (uno script lato server) utilizzando:
-
l'istruzione di script Esegui script su server in uno script in esecuzione su un client o sull'host
-
l'istruzione di script Esegui script su server con callback in uno script in esecuzione su un client
-
un programma (vedere la Guida di FileMaker Server o la Guida di FileMaker Cloud)
Esecuzione differenziata degli script lato server
Uno script avviato da uno dei metodi riportati in precedenza viene eseguito dal Motore di script FileMaker (FMSE), un componente di FileMaker Server e FileMaker Cloud. 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 terminare un programma 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.
CopiaApri 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 o FileMaker Cloud e quindi eseguire solo le istruzioni supportate. Ad esempio:
CopiaIf [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 , 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 subscript che vengono eseguiti nella stessa sessione client FMSE, solo se questi si trovano in file sullo stesso server. Inoltre, quando un client utilizza l'istruzione di script Esegui script su server per eseguire uno script che esegue subscript in un altro file, il file contenente i subscript deve essere già aperto dal client.
Gli script lato server possono anche utilizzare l'istruzione di script Esegui script su server in modo simile, tranne per il fatto che lo script richiamato viene eseguito in una sessione client FMSE separata. L'opzione Attendi il completamento funziona come in uno script eseguito da un client FileMaker Pro, rimandando un risultato di script o un codice di errore al chiamante, in questo caso il client FMSE chiamante. Tuttavia, con questa opzione disattivata, lo script chiamante può continuare l'esecuzione e quello chiamato può essere eseguito nel proprio thread.
-
Gli script lato server possono anche utilizzare l'istruzione di script Esegui script su server in modo simile, tranne per il fatto che lo script richiamato viene eseguito in una sessione client FMSE separata.
-
Gli script eseguiti da Esegui script su server utilizzano lo stesso account del client. Gli script eseguiti da un programma utilizzano l'account specificato nel programma.
-
Gli script lato server non permettono a un client FileMaker di visualizzare i messaggi di avviso 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 e FileMaker Cloud.
-
I client non possono arrestare gli script lato server. Tuttavia, uno script lato server può essere arrestato se:
-
un amministratore server arresta lo script visualizzato come client distinto che può essere scollegato nell'Admin Console per FileMaker Server o FileMaker Cloud
-
lo script in esecuzione supera il limite di tempo specificato nel programma 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 o la Guida di FileMaker Cloud.
-
-
Negli script lato server, le funzioni relative all'hardware, come Get ( IndirizzoIPSistema ), restituiscono informazioni dal componente server database di FileMaker Server e FileMaker Cloud, non dal client.
-
Per gli script lato server, l'accesso ai file è limitato alla cartella Documenti e alla cartella temporanea. Vedere Percorsi negli script lato server.
-
Negli script lato server, le istruzioni di script con l'opzione Con finestra di dialogo attivata non consentono di visualizzare le finestre di dialogo e possono restituire un errore. Per evitare questo errore, disattivare Con finestra di dialogo negli script lato server.