执行脚本并返回结果

时间:2015-04-01 23:47:35

标签: php filemaker

我有一个与Filemaker API(FM Server 13)交互的PHP脚本。

这个想法是用户点击网页上的链接,提交请求,PHP触发生成文档的Filemaker脚本,然后用户被重定向到他们可以下载生成的文档的页面。的FileMaker。

作为旁注,触发的脚本使用“在服务器上执行脚本”执行另一个脚本,该脚本生成文档并将文档ID返回到父(最初触发的)脚本。这部分似乎工作正常。生成文档,返回ID,并将文档ID存储为“ScriptResult”记录的一部分。

我无法弄清楚如何将文档ID重新导入PHP。在PHP中,从execute script命令返回的结果对象通常有两个记录。一个是新创建的ScriptResult Record,另一个是随机的'ScriptResult'记录。如果我注释掉生成新“ScriptResult”记录的部分,我仍然会因为某些原因得到一些随机的旧'ScriptResult'记录(我无法弄清楚这一点,并且它似乎是随机的,因为它改变了每个请求并且似乎不是增量或任何东西。)

filemaker脚本的简化版本看起来像......

Set Variable [$params, Value(Get(ScriptParameter))]
Perform Script on Server["generate_doc" from file: "FM_File"; Parameter: $params]
Set Variable [$result; Value:Get(ScriptResult)]
New Record/Request
Set Field[scriptResult::docID; $result]
Commit Records/Requests[]

..我得到的是一个Result对象,有多个记录,其中一个是我创建的ScriptResult,另一个似乎是一些随机的ScriptResult。我只想要新创建的ScriptResult,以便我可以从中提取文档ID字段。

1 个答案:

答案 0 :(得分:1)

关于FileMaker PHP API和执行FileMaker脚本的一个重要注意事项是当您使用PHP运行FileMaker脚本时,FileMaker会在脚本完成时发回找到的集。因此,您需要做的就是确保最终找到一组已创建的新记录作为已找到的1条记录集,并将返回到PHP脚本。