执行脚本并返回结果


Execute Script and Return Result

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

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

附带说明一下,被触发的脚本使用"在服务器上执行脚本"执行另一个脚本,该脚本生成文档并将文档ID返回给父脚本(最初触发的)。这部分似乎工作正常。生成文档,返回ID,并将文档ID存储为"ScriptResult"记录的一部分。

我不知道如何将文档ID返回到PHP中。在PHP中,从execute脚本命令返回的结果对象通常有两条记录。一个是新创建的ScriptResult记录,另一个是一些随机的"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字段。

关于FileMaker PHP API和执行FileMaker脚本需要注意的一点是,当您使用PHP运行FileMaker脚本时,当脚本完成时,FileMaker会发送回找到的集合。因此,您所需要做的就是确保您最终得到的是一个由1个记录组成的已找到的新记录集,并且该记录集将返回到PHP脚本。