DATA API

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Ответить
andrey volkov
Сообщения: 238
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

DATA API

Сообщение andrey volkov » 14 фев 2020, 05:54

Кто-нибудь уже работал с Filemaker DATA API?
Есть затруднения некоторые, не могу разобраться. Нужен опытный специалист

Короче, ситуация такая
через API я создаю в табличке новую запись. В ней есть поле end_flag
задача удаленного приложения - дождаться, пока серверный скрипт завершит работу и запишет в это поле в эту запись единичку.
Удаленное приложение в цикле через каждые 5 секунд средствами API опрашивает данную табличку и данную запись, читает результат

Так вот возникает такая фигня. Если за время сессии значение в поле поменял кто-то чужой (не само удаленное приложение), то
1) это не сразу видно, долгое время возвращается результат "пусто", хотя на самом деле уже единичка проставлена в запись
2) спустя какое-то время все поля этой записи возвращаются с результатом NO ACCESS

то есть логика такая: если за время сессии запись, к которой обращается удаленное приложение, была КЕМ-ТО модифицирована, то обращаться к этой записи уже невозможно.
Но если сделать выход (Logout), а затем начать новую сессию (Login), то запись эта снова успешно читается.

Вопросы:
1) что это за логика такая странная и для чего так сделано?
2) почему такой долгий таймаут между фактическим изменением записи и временем, когда API начинает понимать, что запись изменена?
3) можно ли как-то обойтись без постоянного Logout-Login в цикле, чтобы отслеживать изменения в БД, которые сделали ДРУГИЕ пользователи?
4) если без этого обойтись нельзя, то есть ли что-то страшное в том, что так часто выполняется вход-выход, может ли это повлечь какие-то неприятные последствия? Или плевать, лишь бы работало?
5) есть ли какие-то другие способы опрашивать БД через API?

ЗЫ. пробовал как чтение записи через API, так и запуск скрипта и чтение его результата. Одинаково.
ЗЫЫ. Привилегия админская выставлена сейчас, ограничений нет никаких.
ЗЫЫЫ. Пробовал ставить флаг в другую таблицу, а результат вычислять по реляции. То же самое все

Ответить