forum.bitel.ru
http://forum.bitel.ru/

Как создать Event через JEXL?
http://forum.bitel.ru/viewtopic.php?f=49&t=13095
Страница 1 из 1

Автор:  Dog [ 31 окт 2018, 14:28 ]
Заголовок сообщения:  Как создать Event через JEXL?

через данный код не кидается 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

Автор:  Dog [ 31 окт 2018, 14:55 ]
Заголовок сообщения:  Re: Как создать Event через JEXL?

сам отвечу!

Код:
...
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)

Автор:  Администратор [ 31 окт 2018, 15:26 ]
Заголовок сообщения:  Re: Как создать Event через JEXL?

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

Автор:  Dog [ 31 окт 2018, 18:30 ]
Заголовок сообщения:  Re: Как создать Event через JEXL?

ок. гляну.
пока решил оставить так, потому что есть идеи где это можно еще использовать!

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/