使用回调在服务器上执行脚本

无需暂停客户端的同时,在托管当前文件的服务器上执行脚本;在服务器脚本完成后在客户端上执行指定的回调脚本。

选项 

  • 指定

    • 源列表”可让您选择要执行的脚本。

    • 按名称”可让您按算式指定脚本名称。脚本名称不区分大小写。

  • 参数”指定所指定脚本的脚本参数。

  • 指定的回调脚本是在服务器上完成服务器脚本之后在客户端上运行的脚本。选择:

    • 源列表”可让您选择要执行的脚本。

    • 按名称”可让您按算式指定脚本名称。脚本名称不区分大小写。

  • 参数”指定所指定的回调脚本的脚本参数。

  • 状态”指定在回调脚本运行时如何处理当前运行的脚本。选项包括“继续”、“停止”、“退出”、“恢复”和“暂停”。请参阅新建脚本情况下处理当前脚本的选项

兼容性 

产品 是否支持

FileMaker Pro

FileMaker Go

FileMaker WebDirect

FileMaker Server

FileMaker Cloud

FileMaker Data API

自定义 Web 发布

原始版本 

20.1

说明 

当前文件必须在 FileMaker Server 或 FileMaker Cloud 上托管。否则此脚本步骤将返回错误。请参阅关于在 FileMaker Server 和 FileMaker Cloud 上运行脚本

回调脚本安排在任何当前脚本完成之后在客户端上运行,就像“安装 OnTimer 脚本”脚本步骤和 OnWindowTransaction 脚本触发器触发的脚本一样。脚本运行的上下文未知,不能依赖于它与执行此脚本步骤时的上下文相同。如果需要,可以使用回调脚本的参数返回足够的上下文,以便它在客户端上按预期运行,例如要使用的布局和搜索结果。

注释  如果在回调脚本中将计算指定为参数,则当在客户端上运行回调脚本时,将对计算求值。

在下面的示例中,不会返回任何内容,因为当回调脚本在客户端上执行时 $data 不存在。

  • 主叫程序

    设置变量 [ $data ; 值: 1 ]

    在服务器上执行脚本附带回调[指定:从列表;“测试”;参数:;指定回调脚本:从列表;“回调”;参数:$data;状态:继续]

  • 测试

    设置变量 [ $data ; 值: 2 ]

  • 回调

    设置变量 [ $param ; 值: Get ( 脚本参数 ) ]

    显示自定义对话框 [ $param ]

注释 

  • 在以下情景中不会调用回调脚本:

    • 服务器或客户端意外退出。

    • 在服务器上的脚本完成之前,用户退出客户端或关闭文件。

    • 网络连接在执行脚本步骤时丢失。但在服务器脚本完成后 10 分钟内重新连接会导致执行回调脚本。

  • 此脚本步骤的多个实例可连续运行。回调脚本按这些脚本步骤完成的顺序运行。

  • 如果未指定回调脚本,此脚本步骤将会运行,类似于“在服务器上执行脚本”脚本步骤。

示例 1 

在服务器上运行脚本并将当前布局名称、客户 ID 和客户电子邮件地址作为脚本参数发送。服务器会导航到在参数中指定的布局和记录,保存当前记录的快照链接,将快照链接通过电子邮件发送到参数中指定的电子邮件地址,并且会返回结果。客户端从服务器获取脚本结果,并将结果显示在自定义对话框中。

主脚本:电子邮件快照链接(客户端)

复制
在服务器上执行脚本附带回调[指定:从列表;“电子邮件快照链接(服务器)”;参数:List(Get ( 布局名称 );客户::ID ; 客户::电子邮件);指定的回调脚本:来自列表;“完整消息(客户端)”;参数:;状态:继续]

子脚本:电子邮件快照链接(服务器)

复制
转到布局 [ GetValue ( Get ( 脚本参数 ) ; 1 ) ; 动画: 无 ]
进入查找模式 [ 暂停: 关闭 ]
设置字段 [ 客户::ID ; GetValue ( Get ( 脚本参数 ) ; 2 ) ]
执行查找 [ ]
设置变量 [ $路径 ; 值: Get ( 临时路径 ) & "Snapshot.fmpsl" ]
将记录保存为快照链接 [ "$路径" ; 当前记录 ; 创建文件夹: 关闭 ]
发送邮件 [ 通过 SMTP 服务器发送 ; 无对话框 ; 收件人: GetValue ( Get ( 脚本参数) ; 3 ) ; "$路径" ]
退出脚本 [ 文本结果: "快照链接已发送。" ]

回调脚本:完整消息(客户端)

复制
显示自定义对话框 [Get ( 脚本结果 )]