DATA API
Добавлено: 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, так и запуск скрипта и чтение его результата. Одинаково.
ЗЫЫ. Привилегия админская выставлена сейчас, ограничений нет никаких.
ЗЫЫЫ. Пробовал ставить флаг в другую таблицу, а результат вычислять по реляции. То же самое все
Есть затруднения некоторые, не могу разобраться. Нужен опытный специалист
Короче, ситуация такая
через API я создаю в табличке новую запись. В ней есть поле end_flag
задача удаленного приложения - дождаться, пока серверный скрипт завершит работу и запишет в это поле в эту запись единичку.
Удаленное приложение в цикле через каждые 5 секунд средствами API опрашивает данную табличку и данную запись, читает результат
Так вот возникает такая фигня. Если за время сессии значение в поле поменял кто-то чужой (не само удаленное приложение), то
1) это не сразу видно, долгое время возвращается результат "пусто", хотя на самом деле уже единичка проставлена в запись
2) спустя какое-то время все поля этой записи возвращаются с результатом NO ACCESS
то есть логика такая: если за время сессии запись, к которой обращается удаленное приложение, была КЕМ-ТО модифицирована, то обращаться к этой записи уже невозможно.
Но если сделать выход (Logout), а затем начать новую сессию (Login), то запись эта снова успешно читается.
Вопросы:
1) что это за логика такая странная и для чего так сделано?
2) почему такой долгий таймаут между фактическим изменением записи и временем, когда API начинает понимать, что запись изменена?
3) можно ли как-то обойтись без постоянного Logout-Login в цикле, чтобы отслеживать изменения в БД, которые сделали ДРУГИЕ пользователи?
4) если без этого обойтись нельзя, то есть ли что-то страшное в том, что так часто выполняется вход-выход, может ли это повлечь какие-то неприятные последствия? Или плевать, лишь бы работало?
5) есть ли какие-то другие способы опрашивать БД через API?
ЗЫ. пробовал как чтение записи через API, так и запуск скрипта и чтение его результата. Одинаково.
ЗЫЫ. Привилегия админская выставлена сейчас, ограничений нет никаких.
ЗЫЫЫ. Пробовал ставить флаг в другую таблицу, а результат вычислять по реляции. То же самое все