Automatização de tarefas com scripts > Criação e edição de scripts > Sobre a execução de scripts no FileMaker Server e em produtos FileMaker Cloud
 

Sobre a execução de scripts no FileMaker Server e em produtos FileMaker Cloud

Normalmente, os scripts em arquivos hospedados no FileMaker Server e em produtos FileMaker Cloud são executados no cliente. Entretanto, você pode executar um script no servidor (um script no lado do servidor) usando:

a Etapa de script Realizar script em servidor em um script executado em um cliente

uma programação (consulte a Ajuda do FileMaker Server ou a documentação do produto FileMaker Cloud no Centro de documentação do produto)

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 dos produtos 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 Advanced somente quando as duas seguintes condições forem verdadeiras:

os arquivos estiverem no mesmo host

os arquivos já tiverem sido 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.

Abrir 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 em um produto FileMaker Cloud e realizar somente as etapas compatíveis. Por exemplo:

If [ 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 Advanced, abra um script, clique em Botão Compatibilidade 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ências 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 e os produtos FileMaker Cloud, 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. Dessa forma, o Gatilho de script AoAbrirPrimeiraJanela é ativado quando o script inicia e o Gatilho de script AoFecharÚltimaJanela é ativado quando o script termina.

Scripts no lado do servidor podem usar a Etapa de script Realizar script para realizar subscripts, que também são executados no servidor, apenas se esses subscripts estiverem em arquivos no mesmo servidor e já estiverem abertos pelo cliente.

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 exibir mensagens de alerta do FileMaker 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 nos produtos FileMaker Cloud.

Os clientes não podem interromper scripts no lado do servidor. Entretanto, um script no lado do servidor pode ser interrompido se:

um administrador do servidor parar o script, que aparece como um cliente separado que pode ser desconectado no Admin Console do FileMaker Server ou dos produtos 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 documentação do produto 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 produto 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.