суббота, 24 мая 2014 г.

Кто книгу заказал?

Недавно обнаружилась одна особенность в поведении АС-Библиотека-3, при попытке заказа издания. Если пользователь не регистрируется в браузере, то заказ оформляется не на него, а на учетную запись, с которой WWW-Шлюз обращается к базе.
Не критично, но довольно неприятно. Издание блокируется и приходится периодически отменять заказы. В базе появляются мусорные записи, которые непригодны даже для статистики (нет информации о заказчике). Кроме того, если заказчик добросовестный, то процедура выдачи значительно усложняется. Дело в том, что правильно заказанное издание сразу появляется на вкладке "Выдача", модуля "Абонемент". И остаётся лишь нажать кнопку "Выдать издание читателю". В противном случае необходимо вначале отменить заказ с учётной записи доступа к базе, а потом пройти всю процедуру, начиная с поиска. Поэтому этот случай действительно "противный".
Справиться с этой проблемой довольно просто. Нужно создать фиктивную учётную запись пользователя, с которой WWW-Шлюз будет "доступаться" к базе. Причём держать её в "неперерегистрированном" (ужас) состоянии.
Смотрим конкретно. Открываем браузер, находим произвольное издание и заказываем его без регистрации.



Видим, что издание успешно заказано. Чтобы определить на кого, откроем в "Администратор" таблицу All__Delivery.



Поле ReaderID соответствует Администратору. Открываем "Абонемент", ищем Администратора и на вкладке "Выдача" находим заказанное издание.



Настройка шлюза (по умолчанию).



(Для тех, кто интересуется безопасностью напомню, что настройки шлюза хранятся в файле EWww.xml, доступном из Интернет по умолчанию. См. пост "Шлюз" в архиве.)
Теперь, как исправить. Отменим предыдущий заказ. Создадим фиктивного читателя.



Учётные данные произвольны, только даты общей регистрации как можно раньше, чтобы пользователь не попал в статистику. Далее, логин и пароль заносим в настройки WWW-Шлюза.



Пробуем заказать (если прошло немного времени, надо перезапустить веб-сервер, чтобы шлюз перечитал настройки). Получаем ошибку.



Теперь регистрируемся. Всё в порядке.



Смотрим заказ в модуле "Абонемент".



Криво. Но это всё, что можно сделать своими руками.

И, раз уж мы здесь, хочу отметить один момент. В версии 3.3.43 была такая неприятность - если заказан конкретный экземпляр, то выдать можно только его. То есть с полки надо было взять именно этот экземпляр (инвентарный номер, штрих код ...). Или переоформлять как смотри выше. Из-за этого, вся система заказа была принята в штыки (в таком состоянии, увы, находится и сейчас). В версии 3.3.58 появился выбор "Зарезервированные" или "Все доступные".



Теперь можно выдать любой свободный экземпляр.
Система заказа мощный инструмент, но, к сожалению, им мало кто пользуется. Согласись, переться через весь город, зная, что книга есть, и экземпляр забронирован тобой, гораздо приятней.
Добавил видео в посты "Транзакции" и "UAC нам в помощь" (см. архив)
Пиши комментарии (регистрация не требуется) или на почту acbib3@yandex.ru

Комментариев нет:

Отправить комментарий