Выполнить скрипт и вернуть результат

У меня есть сценарий 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, чтобы я мог извлечь из него поле идентификатора документа.

0

Решение

Важное замечание, касающееся PHP-API FileMaker и выполнения сценариев FileMaker: при запуске сценария FileMaker с PHP FileMaker отправляет найденный набор по завершении сценария. Поэтому все, что вам нужно сделать, — это убедиться, что у вас есть только что найденный набор только что созданной новой записи как найденный набор из 1 записи, и он будет возвращен в скрипт PHP.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]