BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 00:34

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Как создать Event через JEXL?
СообщениеДобавлено: 31 окт 2018, 14:28 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
через данный код не кидается event LinkAddedEvent

Код:
#
# Создание и привязка договора при переходе в статус "В работе"
#
onProcessEvent.{@inc:cnt}.events=statusChanged:{@STATUS_IN_WORK}
onProcessEvent.{@cnt}.doExpression=<<END
  curdate = new("java.util.Date"); 
  contractDao = new("ru.bgcrm.plugin.bgbilling.proto.dao.ContractDAO", ctxUser, "{@BILLING_ID}");
  docDao = new("ru.bgcrm.plugin.document.dao.DocumentDAO", conSet.getConnection());
  linkDao = new("ru.bgcrm.dao.process.ProcessLinkDAO", conSet.getConnection());
  contractLink = u.getFirst(linkDao.getObjectLinksWithType(process.getId(), "contract%"));
  if (contractLink == null) {
    contract = contractDao.createContract({@CONTRACT_PATTERN}, tu.format(curdate, "ymd"), null, null);
    link = new("ru.bgcrm.model.CommonObjectLink", "process", process.getId(),
                     "contract:" + contract.getBillingId(), contract.getId(), contract.getTitle());
    linkDao.addLink(link);
  } else {
    contract = new("ru.bgcrm.plugin.bgbilling.proto.model.Contract", "{@BILLING_ID}", contractLink.getLinkedObjectId());
  }
END


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как создать Event через JEXL?
СообщениеДобавлено: 31 окт 2018, 14:55 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
сам отвечу!

Код:
...
linkEvent = new("ru.bgcrm.event.link.LinkAddedEvent", form, link);
ep = ru.bgcrm.event.EventProcessor;
ep.processEvent(linkEvent, "ru.bgcrm.dyn.listeners.ProcessListener", conSet);


где: ru.bgcrm.dyn.listeners.ProcessListener - это класс-слушатель, которым нужно обработать (extends DynamicEventListener)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как создать Event через JEXL?
СообщениеДобавлено: 31 окт 2018, 15:26 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Можно так, либо делали public static методы в классах акшенов.
Посмотрите для примера:
ru.bgcrm.struts.action.ProcessAction.processGroupsUpdate(DynActionForm, Connection, Process, Set<ProcessGroup>)
Может вам проще плагин поправить BGBilling?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как создать Event через JEXL?
СообщениеДобавлено: 31 окт 2018, 18:30 
Не в сети
Клиент

Зарегистрирован: 21 сен 2009, 13:01
Сообщения: 835
Откуда: Москва
Карма: 15
ок. гляну.
пока решил оставить так, потому что есть идеи где это можно еще использовать!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.060s | 30 Queries | GZIP : On ]