Realizar script em servidor com callback

Executa um script no servidor que hospeda o arquivo atual sem travar o cliente e executa o script de retorno de chamada especificado quando o primeiro é concluído.

Opções 

  • Script é o script que é executado no servidor.

  • Script de callback é o script que é executado no cliente após a conclusão do script de servidor no servidor.

Compatibilidade 

Produto Compatível

FileMaker Pro

Sim

FileMaker Go

Sim

FileMaker WebDirect

Sim

FileMaker Server

Não

FileMaker Cloud

Não

FileMaker Data API

Não

Publicação na Web personalizada

Não

Originada na versão 

20.1

Descrição 

O arquivo atual deve estar hospedado no FileMaker Server ou no FileMaker Cloud. Caso contrário, esta etapa de script retornará um erro. Consulte Sobre a execução de scripts no FileMaker Server e no FileMaker Cloud.

O script de callback está programado para ser executado no cliente após a conclusão de qualquer script atual, assim como os scripts acionados pela etapa de script Instalar script OnTimer e pelo acionador de script OnWindowTransaction. O contexto no qual o script é executado é desconhecido e não pode ser considerado o mesmo de quando esta etapa de script foi executada. Se necessário, use o parâmetro do script de callback para retornar contexto suficiente para que ele seja executado conforme o esperado no cliente, como o layout e o conjunto encontrado a ser usado.

Nota  Se você especificar um cálculo como parâmetro no script de callback, ele será avaliado quando o script for executado no cliente.

No exemplo abaixo, nada seria retornado porque $data não existe quando o script de callback é executado no cliente.

  • Chamador

    • Definir variável [ $data ; Valor: 1 ]

    • Realizar script em servidor com callback [ Script: "Testar" ; Script de callback: "Callback" ; Parâmetro: $data ]

  • Testar

    • Definir variável [ $data ; Valor: 2 ]

  • Callback

    • Definir variável [ $param ; Valor: Get ( ScriptParameter ) ]

    • Mostrar caixa de diálogo personalizada [ $param ]

Exemplo 1 

Executa um script no servidor e envia o nome do layout atual, a ID do cliente e o endereço de e-mail do cliente como parâmetros do script. O servidor navega até o layout e o registro especificados no parâmetro, salva um link de instantâneo do registro atual, envia o link do instantâneo por e-mail ao endereço especificado no parâmetro e retorna um resultado. O cliente busca o resultado do script no servidor e o exibe em uma caixa de diálogo personalizada.

Script principal: Enviar link do instantâneo por e-mail (Cliente)

Copiar
Realizar script em servidor com callback [ Script: "Enviar link para instantâneo por e-mail (Servidor)" ; Parâmetro: Lista ( Get ( LayoutName ) ; Clientes::ID ; Clientes::E-mail ) ; Script de callback: "Mensagem de conclusão (Cliente)" ]

Subscript: Enviar link do instantâneo por e-mail (Servidor)

Copiar
Ir para layout [ GetValue ( Get ( ScriptParameter ) ; 1 ) ; Animação: Nenhum ]
Entrar em Modo de busca [ Pausar: Desativado ]
Definir campo [ Clientes::ID; GetValue ( Get ( ScriptParameter ) ; 2 ) ]
Realizar busca [ ]
Definir variável [ $PATH ; Valor: Get ( TemporaryPath ) & "Instantâneo.fmpsl" ]
Salvar registros como link para instantâneo [ "$PATH" ; Registro atual ; Criar pastas: Desativado ]
Enviar e-mail [ Enviar por Servidor SMTP ; Sem diálogo; Para: GetValue ( Get ( ScriptParameter ) ; 3 ) ; "$PATH" ]
Sair do script [ Resultado do texto: "Link para instantâneo enviado." ]

Script de callback: Mensagem de conclusão (Cliente)

Copiar
Exibir caixa de diálogo personalizada [ Get ( ScriptResult ) ]

Notas 

  • O script de callback não será chamado nos seguintes cenários:

    • O servidor ou cliente fecha de forma inesperada.

    • O usuário sai do cliente ou fecha o arquivo antes que o script seja concluído no servidor.

    • A conexão de rede é perdida enquanto a etapa de script está em execução. No entanto, reconectar dentro de 10 minutos após a conclusão do script no servidor faz com que o script de callback seja executado.

  • Várias instâncias desta etapa de script podem ser executadas sucessivamente. Os scripts de callback são executados na ordem em que essas etapas de script são concluídas.

  • Se um script de callback não for especificado, esta etapa de script será executada de forma semelhante à etapa de script Executar script no servidor.