forum.bitel.ru http://forum.bitel.ru/ |
|
Возврат значения getListParamValue в разных версиях биллинга http://forum.bitel.ru/viewtopic.php?f=19&t=8950 |
Страница 1 из 1 |
Автор: | abu [ 13 фев 2014, 05:53 ] |
Заголовок сообщения: | Возврат значения getListParamValue в разных версиях биллинга |
Пишу скрипт, в котором в зависимости от значения параметра-списка договора ("Да" или "Нет") выполняется условие. Для получения параметра использую getListParamValue. При этом: - на рабочем биллинге версии 6.0 сборка 1230 возвращается значение pid'a, вместо значения: Код: Connection con = connectionSet3.getConnection(); ContractParameterManager cpm = new ContractParameterManager(con); String str=cpm.getListParamValue(cid,61); print (str); OUT: 61 - на тестовом биллинге версии 6.0 сборка 1271 возвращается значение параметра (равное "Нет", то, что мне нужно): Код: Connection con = connectionSet3.getConnection(); ContractParameterManager cpm = new ContractParameterManager(con); String str=cpm.getListParamValue(cid,61); print (str); OUT: Нет Обновлять биллинг пока не планируется, возможно ли как-то обойти эту проблему без обновления версии? |
Автор: | barguzin2 [ 13 фев 2014, 08:41 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Версию точно сервера указали? Похоже на версию клиента клиента. |
Автор: | abu [ 13 фев 2014, 08:58 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Действительно, ошибся. Версия рабочего сервера: Сервер: вер. 6.0 сборка 1567 от 23.08.2013 15:56:05 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_35 Версия тестового сервера: Сервер: вер. 6.0 сборка 1646 от 13.12.2013 17:33:19 os: Linux; java: Java HotSpot(TM) Client VM, v.1.6.0_35 |
Автор: | barguzin2 [ 13 фев 2014, 12:46 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Ой, чё-то сильно сомневаюсь. Это же серверный класс, который используется для вывода значений списковых параметров в карточке договора. Если бы с ним было что-то не так, то в договоре имели бы тоже хрень. К тому же у вас неполный код и непонятно всё-ли идентично в обоих биллингах. |
Автор: | skyb [ 13 фев 2014, 12:49 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
barguzin2 писал(а): Ой, чё-то сильно сомневаюсь. Это же серверный класс, который используется для вывода значений списковых параметров в карточке договора. Если бы с ним было что-то не так, то в договоре имели бы тоже хрень. К тому же у вас неполный код и непонятно всё-ли идентично в обоих биллингах. буквально не так давно у меня таже проблема была, это api кривой(у меня по крайнеймере был)поэтому не стоит исключать этот вариант ![]() |
Автор: | abu [ 13 фев 2014, 13:08 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
barguzin2 А какая должна быть идентичность в биллинге? Как ее проверить? На тестовой машине тот же самый биллинг, обновленный до указанной версии. Полный код простой, событие на смену параметра договора: Код: import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase; import ru.bitel.bgbilling.kernel.event.Event; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import bitel.billing.common.TimeUtils; import ru.bitel.bgbilling.kernel.event.events.ContractCreatedEvent; import bitel.billing.server.npay.bean.ServiceObjectManager; import bitel.billing.server.npay.bean.ServiceObject; import java.sql.*; import java.util.Date; import bitel.billing.server.contract.bean.*; public class myclass extends EventScriptBase { @Override public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 ) throws Exception { Connection con = connectionSet3.getConnection(); ContractParameterManager cpm = new ContractParameterManager(con); int cid = event1.getContractId(); String str=cpm.getListParamValue(cid,61); print (str); if (str.equals("Да")) {print("Да");} if (str.equals("Нет")) {print( "Нет"); } } } Если "API кривой", то можно ли как-то другим способом получить значение параметра? |
Автор: | skyb [ 13 фев 2014, 13:19 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
barguzin2 http://forum.bitel.ru/viewtopic.php?f=22&t=8489&p=69345 можно получить через sql запрос же |
Автор: | dimOn [ 13 фев 2014, 13:58 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Да, этот метод много лет, до сентября 2013 возвращал pid. Потом поправили. В чём сейчас вопрос то) Можно напрямую через sql запрос. Вот код примерный Код: String query = "SELECT if ( cp.val < 1, cp.custom_value, vls.title ) FROM contract_parameter_type_7 as cp LEFT JOIN contract_parameter_type_7_values as vls ON vls.id=cp.val WHERE cid=? AND cp.pid=?";
PreparedStatement ps = con.prepareStatement( query ); ps.setInt( 1, cid ); ps.setInt( 2, pid ); ResultSet rs = ps.executeQuery(); if ( rs.next() ) { result = rs.getString( 1 ); } rs.close(); ps.close(); |
Автор: | barguzin2 [ 13 фев 2014, 14:53 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
ну, как вариант, все таки обновиться можно ![]() |
Автор: | abu [ 13 фев 2014, 15:26 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Действительно, про sql я и забыл, принялся думать в сторону получения списка параметров договора и поиска нужного параметра в нем (: Спасибо за ответы. |
Автор: | barguzin2 [ 14 фев 2014, 08:10 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
Так весь API на своей кухне выполняет SQL-запросы, и порой бывает эффективнее составить специфический запрос, чем использовать последовательность функций API. Поэтому хорошее знание структуры БД БГ не помешает. dimOn писал(а): Да, этот метод много лет, до сентября 2013 возвращал pid. ... т.е. даже не числовое значение спискового параметра val из таблицы contract_parameter_type_7, а тупо код самого параметра (return pid), который передается в метод аргументом ? В чём тайная суть ? |
Автор: | dimOn [ 14 фев 2014, 13:52 ] |
Заголовок сообщения: | Re: Возврат значения getListParamValue в разных версиях билл |
barguzin2 писал(а): dimOn писал(а): Да, этот метод много лет, до сентября 2013 возвращал pid. ... т.е. даже не числовое значение спискового параметра val из таблицы contract_parameter_type_7, а тупо код самого параметра (return pid), который передается в метод аргументом ? В чём тайная суть ? ошибка там была в запросе, перепутаны параметры в SELECT. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |