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

  • Especificado:

    • Da lista permite selecionar o script que você deseja executar.

    • Por nome permite especificar o nome do script por um cálculo. O nome do script não faz distinção entre maiúsculas e minúsculas.

  • Parâmetro especifica um parâmetro de script para o script especificado.

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

    • Da lista permite selecionar o script que você deseja executar.

    • Por nome permite especificar o nome do script por um cálculo. O nome do script não faz distinção entre maiúsculas e minúsculas.

  • Parâmetro especifica um parâmetro de script para o script especificado.

  • Estado especifica como lidar com um script atualmente em execução quando o script de callback é executado. As opções são Continuar, Interromper, Sair, Retomar e Pausar. Consulte Opções para manusear o script atual ao iniciar novos scripts.

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: Da lista ; "Teste" ; Parâmetro: ; Script de callback especificado: Da lista ; "Callback" ; Parâmetro: $data ; Estado: Continuar ]

  • Testar

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

  • Callback

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

    Mostrar caixa de diálogo personalizada [ $param ]

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.

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: Link de instantâneo de e-mail (Cliente)

Copiar
Realizar script em servidor com callback [ Especificado: Da lista ; "Link de snapshot do e-mail (Servidor)" ; 
Parâmetro: Lista ( Get ( LayoutName ) ; Clientes::ID ; Clientes::E-mail ) ; 
Script de callback especificado: Da lista ; "Mensagem de conclusão (Cliente)" ; Parâmetro: ; Estado: Continuar ]

Subscript: Link instantâneo de e-mail (Servidor)

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

Script de callback: Mensagem completa (Cliente)

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