Sobre a execução de scripts no FileMaker Server e no FileMaker Cloud
Scripts nos arquivos hospedados pelo FileMaker Server e pelo FileMaker Cloud são, normalmente, executados no cliente. Entretanto, você pode executar um script no servidor (um script no lado do servidor) usando:
-
a etapa de script Etapa de script Realizar script em servidor em um script em execução em um cliente ou no host
-
a Etapa de script Realizar script em servidor com callback em um script executado em um cliente
-
uma programação (consulte Ajuda do FileMaker Server ou Ajuda do FileMaker Cloud).
Como scripts no lado do servidor são executados de forma diferente
Um script iniciado por qualquer um dos métodos acima é executado pelo FileMaker Script Engine (FMSE), um componente do FileMaker Server e do FileMaker Cloud. O FMSE é um cliente que executa cada script em uma sessão separada no servidor. Como resultado, os scripts no lado do servidor:
-
não têm o contexto do cliente (layout atual, conjunto encontrado, ordem de classificação, registro, valores de campo global e valores de variável local ou global)
Você pode transmitir informações sobre o contexto do cliente a um script no lado do servidor usando o parâmetro de script na etapa de script Realizar script em servidor. O script no lado do servidor pode usar essas informações nas etapas de script como Etapa de script Ir para layout e Etapa de script Realizar busca para especificar em qual layout e conjunto encontrado agir.
-
são compatíveis com parâmetros de script e resultados de script de até 1 milhão de caracteres
-
poderão acessar outros arquivos do FileMaker Pro somente quando as duas condições seguintes forem verdadeiras:
-
os arquivos estão no mesmo host
-
os arquivos já foram abertos pelo cliente que iniciou o script no lado do servidor ou configurados com o nome de conta e senha especificados na caixa de diálogo Opções de arquivo
-
Os scripts no lado do servidor são executados da mesma forma, independentemente de como são iniciados, com as seguintes exceções:
-
Um cliente usando a etapa de script Realizar script em servidor tem a opção de aguardar a conclusão do script no servidor e usar a Função Get(ScriptResult) para capturar o resultado.
-
Uma programação pode ser configurada para encerrar se o script em execução exceder o limite de tempo especificado.
Como lidar com etapas de script incompatíveis
Muitas etapas de script são compatíveis com o FMSE. Entretanto, tentar realizar uma etapa de script incompatível retorna o erro 3 ("Comando indisponível"), ignora a etapa incompatível e segue para a próxima etapa. Para lidar com etapas incompatíveis, o script pode usar a etapa de script If com:
-
a Função Get(LastError) após uma etapa para verificar se a etapa é incompatível e realizar as etapas compatíveis em seu lugar. Por exemplo, a etapa de script Abrir arquivo não é compatível com o FMSE, então o seguinte script executado no servidor ignorará essa etapa e retornará "incompatível" no resultado.
CopiarAbrir arquivo [ Abrir oculto: Desativado; "Backup de faturas" ]
If [ Get(LastError) = 3 ]
Sair do script [ Resultado do texto: "incompatível" ]
End If
-
a Função Get(ApplicationVersion) antes de outras etapas para verificar se o script está sendo executado no FileMaker Server ou no FileMaker Cloud e realizar somente as etapas compatíveis. Por exemplo:
CopiarIf [ PatternCount ( Get(ApplicationVersion) ; "Server" ) > 0 ]
# Continuar com etapas de script compatíveis com o FMSE
End If
Para visualizar quais etapas de script são compatíveis com o FMSE, no Espaço de trabalho de script do FileMaker Pro, abra um script, clique em e selecione Server. As etapas de script que não forem compatíveis aparecerão em uma cor diferente. Você também pode consultar a tabela Compatibilidade para cada etapa de script em Referência de etapas de script.
Motivos para executar um script no servidor
-
aprimorar o desempenho reduzindo o volume de tráfego de rede entre o cliente e o servidor
-
descarregar tarefas de longa execução de clientes mais lentos para um servidor mais rápido
-
permitir que clientes do FileMaker Go realizem tarefas que exigem plug-ins, que são compatíveis com o FileMaker Server, mas não com o FileMaker Go
-
usar as etapas de script Importar registros ou Executar SQL com uma fonte de dados ODBC que utiliza a DSN do servidor
Notas
-
Se os registros estiverem bloqueados por um cliente, os scripts no lado do servidor não poderão acessar os dados não salvos ou alterar o conteúdo desses registros.
-
A execução de scripts no lado do servidor abre e fecha os arquivos que contêm os scripts. Portanto, o Gatilho de script AoAbrirPrimeiraJanela é ativado quando o script é iniciado e o Gatilho de script AoFecharÚltimaJanela é ativado quando o script é encerrado.
-
Os scripts do lado do servidor podem usar a etapa de script Etapa de script Realizar script para executar subscripts, que são executados na mesma sessão do cliente FMSE se eles estiverem em arquivos no mesmo servidor. Além disso, quando um cliente usa a etapa de script Realizar script em servidor para executar um script que executa subscripts em outro arquivo, o arquivo que contém os subscripts já deve ter sido aberto pelo cliente.
Os scripts do lado do servidor também podem usar a etapa Executar script no servidor de maneira semelhante, exceto que o script chamado é executado em uma sessão de cliente FMSE separada. A opção Aguarde a conclusão funciona da mesma forma que em um script executado por um cliente FileMaker Pro, retornando um resultado de script ou código de erro ao chamador, neste caso, o cliente FMSE de chamada. No entanto, ao desativar essa opção, o script de chamada pode continuar a execução e o script chamado pode ser executado em seu próprio segmento.
-
Os scripts do lado do servidor também podem usar a etapa Executar script no servidor de maneira semelhante, exceto que o script chamado é executado em uma sessão de cliente FMSE separada
-
Os scripts executados por Realizar script no servidor usam a mesma conta do que o cliente. Os scripts executados por uma programação usam a conta especificada na programação.
-
Os scripts no lado do servidor não podem fazer um cliente FileMaker exibir mensagens de alerta do cliente como quando os scripts são executados em clientes, de forma que os scripts no lado do servidor sempre serão executados como se a Etapa de script Definir captura de erro estivesse definida como Ativado. Use a Função Get(LastError) nos scripts no lado do servidor para lidar com condições de erro. Para ajudar a solucionar problemas, os erros também são gravados no log do evento no FileMaker Server e no FileMaker Cloud.
-
Os clientes não podem interromper scripts no lado do servidor. No entanto, um script no lado do servidor pode ser interrompido se:
-
um administrador do servidor interromper o script, que aparece como um cliente separado que pode ser desconectado no Admin Console do FileMaker Server ou do FileMaker Cloud,
-
o script em execução exceder o limite de tempo especificado na programação que o iniciou,
-
o script encontrar uma etapa de script desconhecida (consulte Etapa de script Permitir anulação pelo usuário).
Consulte a Ajuda do FileMaker Server ou a Ajuda do FileMaker Cloud.
-
-
Nos scripts no lado do servidor, as funções relacionadas ao hardware, como Get(SystemIPAddress), retornam informações do componente do servidor do banco de dados do FileMaker Server e do FileMaker Cloud, não do cliente.
-
Para scripts no lado do servidor, o acesso a arquivos é limitado à pasta Documentos e à pasta temporária. Consulte Caminhos em scripts no lado do servidor.
-
Em scripts no lado do servidor, as etapas de script que têm a opção Com diálogo ativada não podem exibir caixas de diálogo e talvez retornem um erro. Para evitar esse erro, desative Com diálogo em scripts no lado do servidor.