запускаю скрипт(по событию, добавлением абонплаты с id 359).
Код:
ServiceObjectManager som = new ServiceObjectManager(con, Megogo_MID);
List Lsom1 = som.getServiceObjectList(cid, new Date()); // <ServiceObject>
ServiceObject co = new ServiceObject();
for (int j = 0; j<Lsom1.size(); j++) {
co = (ServiceObject) Lsom1.get(j);
logger.info(co.getServiceId()+" VOT "+co.getServiceTitle());
}
Код:
17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Megogo_service_add - 82 VOT Ежемесячная абонентская плата, Интернет
12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - 84 VOT Ежемесячная абонентская плата, Пакет 2в1
12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - 85 VOT Ежемесячная абонентская плата, Пакет 3в1
----------- вывод из цикла тут заканчиается. ниже - вывод из таблицы(другим способом) только нужной услуги, которую мы отлавливаем... по идее выше уже должна была быть запись про услугу 359
12-16/17:31:31 INFO [dyn-clss-evnt-lstnr-p-5-t-623] Check_service_order - SQL: select sid from npay_service_object_4 where (cid=15578) and ((date1 is NULL) or (date1<NOW())) and ((date2 is NULL) or (date2>NOW())) and (sid IN (359,360,361,362)) limit 1
12-16/17:31:31 ERROR [event-proc-p-2-t-1] ScriptEventListener - Eval error: java.lang.Exception: java.sql.SQLException: Illegal operation on empty result set.
sql возвращает пустоту и скрипт вываливается(нет сервиса в базе).
выполняется это в момент события изменения абонплаты.
логи показывают, что она так и не учтена(выведено 3шт, а добавлена была оператором 4я с id 359) ...
после чтения логов, ничего более не делая запустил sql запрос(который тут выдал пустой результат), - получил код добавленной услуги, это 359....
повторный запуск скрипта (по update абонплаты) выводит
12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 82 VOT Ежемесячная абонентская плата, Интернет
12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 84 VOT Ежемесячная абонентская плата, Пакет 2в1
12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 85 VOT Ежемесячная абонентская плата, Пакет 3в1
12-16/17:44:17 INFO [dyn-clss-evnt-lstnr-p-5-t-625] Check_service_order - 359 VOT Пакет 1
---------------------------
похоже данные в указанные элементы среды попадают после завершения обработки события и в процессе обработки события так их не вынуть.