forum.bitel.ru http://forum.bitel.ru/ |
|
Рассылка по приходу (CRM) http://forum.bitel.ru/viewtopic.php?f=54&t=9056 |
Страница 1 из 2 |
Автор: | zavndw [ 19 мар 2014, 07:14 ] |
Заголовок сообщения: | Рассылка по приходу |
Подскажите возможность сделать условия рассылки по приходу платежа, понял что надо установить параметр в рассылке "Отправка по событию" но теперь вопрос скрипт поведения как должен выглядеть? может кто нить уже такое внедрил |
Автор: | skyb [ 19 мар 2014, 07:43 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
http://wiki.bitel.ru/index.php/SMS_%D1% ... %D0%B2_5.2 но это на просто событие поступление ДС |
Автор: | Artur [ 31 мар 2014, 10:15 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
Актуален ли вопрос? могу описать полную схему с примером кода. |
Автор: | zavndw [ 31 мар 2014, 13:34 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
Да:) актуален. Был бы очень признателен |
Автор: | Artur [ 31 мар 2014, 14:24 ] | |||
Заголовок сообщения: | Re: Рассылка по приходу | |||
Необходимо сделать следующее (на примере события занесения расхода на договор): 1) Создать рассылку для оповещения о занесении расхода, в настройках рассылки поставить галочку Не помечать отправленными, в условиях отправки поставить галочку Отправка по событию. 2) Создать скрипт поведения на событие занесения расхода в виде дин. кода. В моем случае класс называется ru.reflexive.DispatchCharge. Назовите и поместите его в пакет по своему усмотрению. Не забудьте при этом поменять соответственно название класса и пакет коде, который я привожу далее. 3) Скопировать содержимое файла DispatchCharge.java в созданный скрипт поведения 4) В созданном скрипте нужно подправить значение переменной dispatchId на код рассылки, созданной в п.1 (код рассылки можно посмотреть так: выделить в таблице с рассылками созданную в п.1 рассылку и нажать на клавиатуре Ctrl+i) 5) Перейти в Сервис->Автоматизация->Управление динамическим кодом и создать класс с содержимым из файла DispatchChargeMessage.java (в моем случае полное имя класса ru.reflexive.DispatchChargeMessage). При необходимости исправить имя класса и пакета, а также содержимое по своему усмотрению. 6) В рассылке из п.1 создать новое сообщение. В теле сообщения прописать $${class:<полное имя класса из п.5>} 7) Создать подписку на рассылку на договоре(-ах) ![]() Если что то непонятно, то пишите. PS. В примере тело сообщения сводится к такому шаблону: "Расход N руб. с CONTRACT_TITLE за CHARGE_TITLE, остаток на счете М руб.". PSS. Если вдруг что то не то получится и сообщения не буду уходить, то обратите внимание на вот такую тему http://forum.bitel.ru/viewtopic.php?f=54&t=8996
|
Автор: | zavndw [ 26 май 2014, 10:45 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
У меня вопрос: Artur писал(а): Создать скрипт поведения на событие занесения расхода Я делаю на занесение прихода, в коде приведенных скриптов что нужно поменять что бы был не расход а приход? |
Автор: | Artur [ 26 май 2014, 13:56 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
zavndw писал(а): У меня вопрос: Artur писал(а): Создать скрипт поведения на событие занесения расхода Я делаю на занесение прихода, в коде приведенных скриптов что нужно поменять что бы был не расход а приход? Нужно заменить значение переменной dispatchId на то значение, которое соответствует рассылке на приход платежа. |
Автор: | zavndw [ 27 май 2014, 12:53 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
Вот что в лог падает, не отправляет, сделал все по рекомендациям Код: 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - java.lang.ClassNotFoundException: bitel.billing.server.mail.UserDispatchSender
05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.security.AccessController.doPrivileged(Native Method) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.lang.Class.forName0(Native Method) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at java.lang.Class.forName(Class.java:171) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at ru.bitel.bgbilling.kernel.task.server.TaskData.initTask(TaskData.java:66) 05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - at bitel.billing.server.TaskExecuter.run(TaskExecuter.java:209) 05-27/18:50:03 INFO [Thread-3] TaskExecuter - Starting periodic task #32: bitel.billing.server.mail.UserDispatchSender 05-27/18:50:03 ERROR [Thread-3] TaskExecuter - java.lang.NullPointerException at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:649) at bitel.billing.server.TaskExecuter.run(TaskExecuter.java:213) 05-27/18:50:03 INFO [Thread-3] PaymentLoader - Loaded 1 file types. 05-27/18:50:03 INFO [Thread-3] TaskExecuter - Starting periodic task #11: bitel.billing.server.admin.integration.PaymentLoader 05-27/18:50:03 INFO [Thread-3] PaymentLoader - Loaded 1 file types. 05-27/18:50:03 INFO [Thread-3] TaskExecuter - Starting periodic task #24: bitel.billing.server.admin.integration.PaymentLoader 05-27/18:50:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/18:50:03 INFO [pool-2-thread-2] PaymentLoader - Task finished time=12 ms. 05-27/18:50:03 INFO [pool-2-thread-3] PaymentLoader - Task finished time=8 ms. 05-27/18:50:03 ERROR [pool-2-thread-4] MessageProcessor - Не удалось отправить сообщение пользовательского класса ru.reflexive.DispatchChargeMessage для подписки с id=10 java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(ArrayList.java:324) at ru.reflexive.DispatchChargeMessage.getMessageBody(DispatchChargeMessage.java:33) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.processMacro(MessageProcessor.java:156) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.send(MessageProcessor.java:232) at ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker.executeTask(DispatchWorker.java:101) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 05-27/18:50:05 INFO [pool-2-thread-4] DispatchWorker - Task finished time=1331 ms. |
Автор: | stark [ 27 май 2014, 13:11 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
zavndw писал(а): Вот что в лог падает, не отправляет, сделал все по рекомендациям [code]05-27/18:50:03 ERROR [Thread-3] LoggingPrintStream - java.lang.ClassNotFoundException: bitel.billing.server.mail.UserDispatchSender 05 Откуда такой класс? это какую задачу вы добавили ? |
Автор: | zavndw [ 27 май 2014, 13:23 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
такого класса не использую, я рассылки только недавно поставил, пользовательские рассылки могут такую ошибку давать? отключил пользовательские рассылки ошибка ушла, убрал из тела сообщения класс смс пришло |
Автор: | zavndw [ 27 май 2014, 13:35 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
Код: 05-27/19:29:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:29:03 INFO [pool-2-thread-2] DispatchWorker - Task finished time=20 ms. 05-27/19:30:03 INFO [Thread-3] PaymentLoader - Loaded 1 file types. 05-27/19:30:03 INFO [Thread-3] TaskExecuter - Starting periodic task #24: bitel.billing.server.admin.integration.PaymentLoader 05-27/19:30:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:30:03 INFO [pool-2-thread-3] PaymentLoader - Task finished time=4 ms. 05-27/19:30:03 ERROR [pool-2-thread-4] MessageProcessor - Не удалось отправить сообщение пользовательского класса ru.reflexive.DispatchChargeMessage для подписки с id=10 java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(ArrayList.java:324) at ru.reflexive.DispatchChargeMessage.getMessageBody(DispatchChargeMessage.java:33) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.processMacro(MessageProcessor.java:156) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.send(MessageProcessor.java:232) at ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker.executeTask(DispatchWorker.java:101) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 05-27/19:30:05 INFO [pool-2-thread-4] DispatchWorker - Task finished time=1299 ms. 05-27/19:31:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:31:03 INFO [pool-2-thread-5] DispatchWorker - Task finished time=19 ms. 05-27/19:32:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:32:03 INFO [pool-2-thread-6] DispatchWorker - Task finished time=20 ms. 05-27/19:33:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:33:03 INFO [pool-2-thread-7] DispatchWorker - Task finished time=20 ms. теперь так |
Автор: | dm777 [ 28 май 2014, 19:23 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
Код: package ru.skyb.scripts.behavior; import org.apache.log4j.Logger; //import java.sql.Connection; import java.util.List; import ru.bitel.bgbilling.kernel.event.Event; import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import ru.bitel.bgbilling.plugins.dispatch.common.bean.Contact; import ru.bitel.bgbilling.plugins.dispatch.server.dao.ContactDao; import com.logica.smpp.Connection; import com.logica.smpp.Data; import com.logica.smpp.pdu.BindRequest; import com.logica.smpp.pdu.Response; import com.logica.smpp.pdu.SubmitSM; import com.logica.smpp.TCPIPConnection; import com.logica.smpp.Session; import com.logica.smpp.pdu.BindTransmitter; import com.logica.smpp.util.ByteBuffer; import ru.bitel.bgbilling.kernel.contract.balance.server.event.PaymentEvent; public class SmsGetPayment extends EventScriptBase<PaymentEvent> { private static final Logger logger = Logger.getLogger( SmsGetPayment.class ); @Override public void onEvent( PaymentEvent event1, Setup setup2, ConnectionSet connectionSet ) throws Exception { java.sql.Connection con = connectionSet.getConnection(); logger.info( "SMS_PAYMENT_ALERT:Начало" ); int SmsPort = ; String SmsServer = "92."; String SmsUser = ""; String SmsPass = ""; String OperatorName = "OOOTELEKOM"; String messPayments = "Поступил платеж на сумму(руб.): "; ru.bitel.bgbilling.kernel.contract.balance.common.bean.Payment payment = event1.getPayment(); //Получаем id договора int cid = payment.getContractId(); //Получаем сумму платежа messPayments += payment.getSumma().toString(); logger.info( "SMS_PAYMENT_ALERT:" + messPayments ); logger.info( "SMS_PAYMENT_ALERT:Контракт " + cid ); ContactDao cd = new ContactDao(con); List<Contact> nymber = cd.getContactsForContract(cid, 1); for( Contact c : nymber ){ //OperatorName = c.getValue(); Connection conn = new TCPIPConnection( SmsServer , SmsPort ); conn.setReceiveTimeout(1000 * 60); Session session = new Session(conn); BindRequest breq = new BindTransmitter(); Response resp = null; try { breq.setSystemId(SmsUser); breq.setPassword(SmsPass); resp = session.bind(breq); if (resp.getCommandStatus() == Data.ESME_ROK) { String message = messPayments; SubmitSM msg = new SubmitSM(); ByteBuffer byteMessage = new ByteBuffer(); byteMessage.appendString(message, "UTF-16BE"); msg.setDataCoding((byte) 8); msg.setSourceAddr((byte) 0, (byte) 5, OperatorName ); msg.setDestAddr((byte) 1, (byte) 1, c.getValue()); msg.assignSequenceNumber(true); msg.setRegisteredDelivery((byte) 1); msg.setMessagePayload(byteMessage); logger.info( "SMS_PAYMENT_ALERT:Контакт " + c.getValue() ); resp = session.submit(msg); session.unbind(); if (resp.getCommandStatus() == Data.ESME_ROK) { System.out.println("Message submitted. Status=" + resp.getCommandStatus()); } else { System.out.println("Message submission failed. Status=" + resp.getCommandStatus()); } } else { System.out.println("Couldn't bind. Status=" + resp.getCommandStatus()); } } catch (Exception e) { e.printStackTrace(); } } } } У нас так |
Автор: | Artur [ 30 май 2014, 13:02 ] |
Заголовок сообщения: | Re: Рассылка по приходу |
zavndw писал(а): Код: 05-27/19:29:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:29:03 INFO [pool-2-thread-2] DispatchWorker - Task finished time=20 ms. 05-27/19:30:03 INFO [Thread-3] PaymentLoader - Loaded 1 file types. 05-27/19:30:03 INFO [Thread-3] TaskExecuter - Starting periodic task #24: bitel.billing.server.admin.integration.PaymentLoader 05-27/19:30:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:30:03 INFO [pool-2-thread-3] PaymentLoader - Task finished time=4 ms. 05-27/19:30:03 ERROR [pool-2-thread-4] MessageProcessor - Не удалось отправить сообщение пользовательского класса ru.reflexive.DispatchChargeMessage для подписки с id=10 java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(ArrayList.java:324) at ru.reflexive.DispatchChargeMessage.getMessageBody(DispatchChargeMessage.java:33) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.processMacro(MessageProcessor.java:156) at ru.bitel.bgbilling.plugins.dispatch.server.bean.MessageProcessor.send(MessageProcessor.java:232) at ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker.executeTask(DispatchWorker.java:101) at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) 05-27/19:30:05 INFO [pool-2-thread-4] DispatchWorker - Task finished time=1299 ms. 05-27/19:31:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:31:03 INFO [pool-2-thread-5] DispatchWorker - Task finished time=19 ms. 05-27/19:32:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:32:03 INFO [pool-2-thread-6] DispatchWorker - Task finished time=20 ms. 05-27/19:33:03 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 05-27/19:33:03 INFO [pool-2-thread-7] DispatchWorker - Task finished time=20 ms. теперь так Ругается на строку, где берется последний занесенный в БД расход (на который и произошло событие). Как будто не был добавлен расход на договор. Проверьте, добавился ли расход? |
Автор: | zavndw [ 02 июн 2014, 09:06 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
все понял, как передать на занесение прихода? с расходом работает, а у меня задача на поступление |
Автор: | Artur [ 02 июн 2014, 09:15 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
zavndw писал(а): все понял, как передать на занесение прихода? с расходом работает, а у меня задача на поступление Сделайте по тому алгоритму, который я приводил ранее, но замените Charge на Payment и слово расход на приход. Там, в принципе, получится то же самое лишь с небольшой разницей. |
Автор: | zavndw [ 02 июн 2014, 12:38 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Код: package ru.reflexive; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import java.util.List; import ru.bitel.bgbilling.plugins.dispatch.server.bean.message.CustomDispatchMessage; import ru.bitel.common.Utils; import bitel.billing.server.contract.bean.BalanceUtils; import bitel.billing.server.contract.bean.Payment; import bitel.billing.server.contract.bean.PaymentManager; import bitel.billing.server.contract.bean.Contract; public class DispatchPaymentMessage extends CustomDispatchMessage { @Override public String getMessageBody() { StringBuilder result = new StringBuilder( "Расход " ); Contract contract = contractManager.getContractById( contractId ); List<Payment> PaymentList = null; try { PaymentList = new PaymentManager( con ).getPaymentList( contractId ); } catch( SQLException e ) { e.printStackTrace(); } Payment lastPayment = PaymentList.get( PaymentList.size() - 1 ); result.append( Utils.formatBigDecimalSumm( lastPayment.getSumma() ) ); result.append( " руб. с " + contract.getTitle() + " за " ); try { String query = "select title from contract_Payment_types where id=" + lastPayment.getTypeId(); PreparedStatement ps = con.prepareStatement( query ); ResultSet rs = ps.executeQuery(); if( rs.next() ) { result.append( rs.getString( "title" ) ); } } catch( SQLException e ) { e.printStackTrace(); } result.append( ", остаток на счете " + Utils.formatBigDecimalSumm( new BalanceUtils( con ).getBalance( new Date(), contract ) ) + " руб." ); return result.toString(); } } ругается на строки |
Автор: | Artur [ 02 июн 2014, 13:22 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Уточните, на что конкретно ругается. |
Автор: | skyb [ 03 июн 2014, 05:49 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Artur писал(а): Уточните, на что конкретно ругается. непонятно что ли, на строки ![]() |
Автор: | Artur [ 04 июн 2014, 18:06 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Получилось ли справится с задачей? |
Автор: | skyb [ 04 июн 2014, 18:45 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Artur писал(а): Получилось ли справится с задачей? За меня бы так волновались )))) |
Автор: | zavndw [ 06 июн 2014, 16:35 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Artur писал(а): Получилось ли справится с задачей? нет, нашел где имя класса закосячил теперь не ругается но не приходит смс, в лог падает что что то делает но результат 0 |
Автор: | Artur [ 09 июн 2014, 12:10 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Хотя бы этот лог приведите.... |
Автор: | zavndw [ 09 июн 2014, 14:27 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
scheduler.log Код: 06-09/20:22:01 INFO [Thread-3] TaskExecuter - Starting periodic task #29: ru.bitel.bgbilling.plugins.dispatch.server.DispatchWorker 06-09/20:22:03 INFO [pool-2-thread-2] DispatchWorker - Task finished time=2248 ms. это после нажатия приход, в других логах чисто, но я не рестартил планировщик щас попробую вот какой код получился Код: import java.util.List; import ru.bitel.bgbilling.kernel.container.managed.ServerContext; import ru.bitel.bgbilling.kernel.event.Event; import ru.bitel.bgbilling.kernel.module.common.bean.User; import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase; import ru.bitel.bgbilling.plugins.dispatch.common.DispatchService; import ru.bitel.bgbilling.plugins.dispatch.common.bean.Subscription; import ru.bitel.bgbilling.plugins.dispatch.common.bean.condition.DispatchEventCondition; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; public class DispatchCharge extends EventScriptBase { @Override public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 ) throws Exception { int dispatchId = 5; int contractId = event1.getContractId(); ServerContext context = new ServerContext( setup2, connectionSet3, -1, User.USER_SERVER ); DispatchService service = context.newService( DispatchService.class, -1 ); List<Subscription> subscriptions = service.getSubscriptions( dispatchId, contractId ); for( Subscription subscription : subscriptions ) { subscription.getPreferences().set( DispatchEventCondition.EVENT_OCCURED_FLAG, "1" ); service.updateSubscriptions( subscription ); } } } смс то же не пришло |
Автор: | Artur [ 09 июн 2014, 16:22 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
а через что смс отправляете? приходят ли смс через данную рассылку по другим условиям отправки? (например, по балансу) |
Автор: | zavndw [ 09 июн 2014, 16:59 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
через смсаиро заказывали доработку, да приходят, с таким кодом через некоторое время приходит смс но там старый текст (написанно расход) стоит сумма последнего расхода, что то я не доделал в коде, еще и второй скрипт не кинул Код: package ru.reflexive; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import java.util.List; import ru.bitel.bgbilling.plugins.dispatch.server.bean.message.CustomDispatchMessage; import ru.bitel.common.Utils; import bitel.billing.server.contract.bean.BalanceUtils; import bitel.billing.server.contract.bean.Payment; import bitel.billing.server.contract.bean.PaymentManager; import bitel.billing.server.contract.bean.Contract; public class DispatchChargeMessage extends CustomDispatchMessage { @Override public String getMessageBody() { StringBuilder result = new StringBuilder( "Приход " ); Contract contract = contractManager.getContractById( contractId ); List<Payment> PaymentList = null; try { PaymentList = new PaymentManager( con ).getPaymentList( contractId ); } catch( SQLException e ) { e.printStackTrace(); } Payment lastPayment = PaymentList.get( PaymentList.size() - 1 ); result.append( Utils.formatBigDecimalSumm( lastPayment.getSumma() ) ); result.append( " руб. с " + contract.getTitle() + " за " ); try { String query = "select title from contract_Payment_types where id=" + lastPayment.getTypeId(); PreparedStatement ps = con.prepareStatement( query ); ResultSet rs = ps.executeQuery(); if( rs.next() ) { result.append( rs.getString( "title" ) ); } } catch( SQLException e ) { e.printStackTrace(); } result.append( ", остаток на счете " + Utils.formatBigDecimalSumm( new BalanceUtils( con ).getBalance( new Date(), contract ) ) + " руб." ); return result.toString(); } } может приложение сервера перегрузить? |
Автор: | Artur [ 09 июн 2014, 17:12 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Сходу ошибок не вижу. попробуйте выводить в лог ход формирования сообщения. Начните с того, что проверьте, заходит ли в метод send() |
Автор: | filin [ 24 мар 2015, 15:31 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
При занесении платежа в логах выполнения скрипта следующее: Код: GENERATE_TIME: 24.03.15 16:28:56 EXECUTION_STOP_TIME: 24.03.15 16:28:56 PROCESS_TIME: 12 OUT: EXCEPTIONS: Sourced file: Function [id:4; title:ru.reflexive.DispatchCharge] Token Parsing Error: Lexical error at line 18, column 10. Encountered: "O" (79), after : "@": <at unknown location> java.util.concurrent.ExecutionException: Sourced file: Function [id:4; title:ru.reflexive.DispatchCharge] Token Parsing Error: Lexical error at line 18, column 10. Encountered: "O" (79), after : "@": <at unknown location> at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:202) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.runScript(ScriptEventListener.java:466) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:310) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.notify(ScriptEventListener.java:277) at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:345) at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:1) at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112) at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51) at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46) Caused by: Sourced file: Function [id:4; title:ru.reflexive.DispatchCharge] Token Parsing Error: Lexical error at line 18, column 10. Encountered: "O" (79), after : "@": <at unknown location> at bsh.Interpreter.eval(Interpreter.java:707) at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:323) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$Worker.runScriptImpl(ScriptEventListener.java:99) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:353) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.access$0(ScriptEventListener.java:1) at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener$1.call(ScriptEventListener.java:454) at java.util.concurrent.FutureTask.run(FutureTask.java:262) ... 4 more ругается на @Override |
Автор: | dimOn [ 24 мар 2015, 15:34 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
потому что это не bgbs-скрипт, а дин.класс |
Автор: | dimOn [ 24 мар 2015, 15:37 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
кроме того вообще непонятно - вы его куда добавили, на события прихода платежа что ли? |
Автор: | filin [ 24 мар 2015, 15:56 ] |
Заголовок сообщения: | Re: Рассылка по приходу (CRM) |
Да на приход, чет не понял тогда что я не так сделал |
Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |