在服务器上执行脚本附带回调
无需暂停客户端的同时,在托管当前文件的服务器上执行脚本;在服务器脚本完成后在客户端上执行指定的回调脚本。
另请参阅
选项
-
脚本是要在服务器上运行的脚本。
-
回调脚本是在服务器上完成服务器脚本之后在客户端上运行的脚本。
兼容性
产品 | 是否支持 |
---|---|
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 分钟内重新连接会导致执行回调脚本。
-
-
此脚本步骤的多个实例可连续运行。回调脚本按这些脚本步骤完成的顺序运行。
-
如果未指定回调脚本,此脚本步骤将会运行,类似于“在服务器上执行脚本”脚本步骤。