У меня есть сценарий PHP, который взаимодействует с API Filemaker (FM Server 13).
Идея состоит в том, что пользователь щелкает ссылку на веб-странице, которая отправляет запрос, PHP запускает сценарий Filemaker, который генерирует документ, а затем пользователь перенаправляется на страницу, где он может загрузить документ, созданный Filemaker.
В качестве примечания: запускаемый скрипт выполняет другой сценарий, используя «Выполнить сценарий на сервере», и этот сценарий генерирует документ и возвращает идентификатор документа в родительский (первоначально запущенный) сценарий. Эта часть, кажется, работает хорошо. Документ генерируется, идентификатор возвращается, и я сохраняю идентификатор документа как часть записи «ScriptResult».
Я не могу понять, как вернуть ID документа обратно в PHP. В PHP объект результата, который возвращается из команды execute script, обычно имеет две записи. Одна из них — недавно созданная запись 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, чтобы я мог извлечь из него поле идентификатора документа.
Важное замечание, касающееся PHP-API FileMaker и выполнения сценариев FileMaker: при запуске сценария FileMaker с PHP FileMaker отправляет найденный набор по завершении сценария. Поэтому все, что вам нужно сделать, — это убедиться, что у вас есть только что найденный набор только что созданной новой записи как найденный набор из 1 записи, и он будет возвращен в скрипт PHP.
Других решений пока нет …