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

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

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

A Realizar script em servidor etapa de script em um script executado em um cliente.

Uma programação (consulte a Ajuda do FileMaker Server e a documentação 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 Ir para layout etapa de script e Realizar busca etapa de script 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 Get ( ScriptResult ) função 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 Get ( LastError ) função 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 [Text Result: "incompatível" ]
End If

A Get ( ApplicationVersion ) função 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:

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 Nova pasta 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 com o 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 AoAbrirPrimeiraJanela gatilho de script é ativado quando o script inicia e o AoFecharÚltimaJanela gatilho de script é ativado quando o script termina.

Scripts no lado do servidor podem usar a Realizar script etapa de 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 Definir captura de erro etapa de script estivesse definida como Ativado. Use a Get ( LastError ) função 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. Entretanto, 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 Permitir anulação pelo usuário etapa de script)

Consulte a Ajuda do FileMaker Server e a documentação 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.