在服务器上执行脚本附带回调

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

选项 

  • 脚本是要在服务器上运行的脚本。

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

兼容性 

产品 是否支持

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 ]

示例 1 

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

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

复制
在服务器上执行脚本附带回调 [ 脚本:"电子邮件快照链接(服务器)" ; 参数:List ( Get ( 布局名称 ) ; 客户::ID ; 客户::电子邮件 ) ; 回调脚本:"完成消息 (客户端)" ]

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

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

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

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

注释 

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

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

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

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

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

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