我有一個與Filemaker API(FM服務器13)交互的PHP腳本。執行腳本和返回結果
這個想法是,用戶點擊提交請求的網頁上的一個鏈接,PHP觸發一個生成文檔的Filemaker腳本,然後用戶被重定向到一個頁面,在那裏他們可以下載生成的文檔由檔案員。
作爲一個側面說明,即觸發腳本執行使用「對服務器執行腳本」另一個腳本,該腳本生成的文檔和文件編號返回到父(原觸發)腳本。這部分似乎工作正常。生成文檔,返回ID,並將文檔ID存儲爲'ScriptResult'記錄的一部分。
我不知道如何讓文檔ID返回到PHP。在PHP中,從執行腳本命令返回的結果對象通常有兩條記錄。一個是新創建的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[]
..和我所得到的回覆是一個結果對象,具有多條記錄,其中之一是ScriptResult我創建了,另一個似乎是一些隨機的ScriptResult。我只想要新創建的ScriptResult,以便我可以從中取出文檔ID字段。
FWIW,我現在的解決方法是將流程分成3個API調用。 1)在運行腳本之前創建一個新的ScriptResult對象。 2)將ScriptResult的ID傳遞給正在運行的腳本。運行腳本並使用ID更新ScriptResult。 3)在PHP中使用ScriptResult ID執行查找以讀取結果。希望這是一個更好的解決方案。 – 2015-04-02 17:52:50
只看到上面的腳本,我建議問題可能是您將整個找到的設置返回給PHP,其中包括您正在使用的記錄以及「新建記錄」中新創建的記錄。您是否在FileMaker腳本的開頭省略了所有記錄?其他對嘗試回答您的問題的人可能會有所幫助:您使用什麼代碼來觸發PHP中的FileMaker腳本?你用什麼代碼來檢索PHP中的FM記錄?以上是你的整個劇本的總結嗎? – pft221 2015-04-03 19:40:07