Как оповестить ДРУГИЕ сеансы, об изменениях объекта в управляемых формах.
Попробовал сделать это как обработку ожидания и читать версию объекта, прокатывает только
а) - ссылка кэшируется на 20 секунд и нет смысла дергать менее этого времени, ссылку а каждый раз читать объект это накладно
б) - обработка ожидания в которой - происходить заполнение реквизитов формы - вызивает в веб-клиенте очистку полей ввода - зараза.
КАКИЕ есть еще способы сказать другому сеансу что изменили объект. - чтобы вознило событие?
синтаксис точный не скажу, но идея следующая:
1. сделать подписку на событие, при записи нужного объекта(-ов).
2. получить список активных пользователей (поищите по форуму, недавно похожая тема была).
3. найти их в справочнике пользователей, при условии, что имена пользователей и пользователей в справочнике совпадают.
4. сохранить данные о сообщении в какой-нибудь промежуточный регистр сведений например. с измерениями: "пользователь", "номерСообщения" (в случае если их несколько, перед записью увеличивать номер на 1) и ресурсом "сообщение". после сообщения запись удалять.
5. оповестить всех активных пользователей (здесь приводил подробное описание механизма: http://forum.infostart.ru/forum26/topic50765/message558137/#message558137).
Спасибо, Uncore, за помощь, но это не решает мою задачу: У меня ОТКРЫТО например 5 сессий - происходит запись объекта, он меняет состояние, как этим сессиям СЕЙЧАС сказать что объект изменен мучайте его кому надо, а не при при старте системы потом?
(6) описанный выше пример как раз и позволяет решить проблему оповещения пользователей в реальном времени. При начале работы программы для каждого пользователя иб запускается обработчик ожидания, который отслеживает появление записей с оповещением для нужного пользователя. При изменении объекта появляются записи с оповещениями, которые читаются обработчиком пользователя, сообщаются ему тут же, и удаляются.
Ну тогда да.
А еще вопрос, есть есть на форме обработчик ожидания и он меняет реквизиты формы, происходит очистка активного поля ввода, может с таким сталкивались!?
Что типа чата, по задачкам. Становятся на задачку и высказываются своими сообщениями, они пишутся в историю задачи - требуется эту историю выводить сразу, т.е. кто-то написал, ответ я уже вижу и действую дальше
(10) предлагаю на форму поместить поле текстового документа, а лучше табличного документа, куда выводить все обсуждения по задаче. Причем не постоянно выводить обработчиком, а только тогда, когда добавилось новое сообщение. В случае с табличным документом можно красиво оформить сообщения в виде чата, а при появлении нового сообщения не выводить весь макет в табличный документ а только область строку с новым сообщением. Обработчик ожидания в любом случае останется.
У меня это обработка, так и есть. Но только есть поля для ввывода истории и поле для ввода нового сообщения, так вод именно в веб клиенте, если есть фокус на поле ввода - то при срабатывании обработчика ожидания - который просто сходит на сервер и не чего не прочитает, выскочит и вернется обратно (а ходить на сервер надо проверить а не изменилась ли версия объекта) происходит сброс поля ввода. Сейчас псевдо: выкрутились по АвтоПодбору в этом поле обработчик выключаем при потере фокуса включаем.
Вроде все заработало. Сброс поля происходит именно Активного и именно в ВебКлиенте