Изменение описания процесса по правке параметра
Материал из BiTel WiKi
Версия от 13:41, 16 мая 2014; Администратор (Обсуждение | вклад)
Класс скрипта указывается в типе процесса. Скрипт можно дополнить обработкой других событий процесса.
package ru.bgcrm.dyn.test; import org.apache.log4j.Logger; import ru.bgcrm.dao.process.ProcessDAO; import ru.bgcrm.event.Event; import ru.bgcrm.event.ParamChangedEvent; import ru.bgcrm.event.client.ProcessChangedEvent; import ru.bgcrm.event.listener.DynamicEventListener; import ru.bgcrm.util.sql.ConnectionSet; public class ParamChangedEventListener extends DynamicEventListener { private static final Logger log = Logger.getLogger( ParamChangedEventListener.class ); @Override public void notify( Event e, ConnectionSet connectionSet ) { if( !(e instanceof ParamChangedEvent) ) { return; } ParamChangedEvent pce = (ParamChangedEvent)e; try { ProcessDAO processDao = new ProcessDAO( connectionSet.getConnection() ); ru.bgcrm.model.process.Process process = processDao.getProcess( pce.getObjectId() ); process.setDescription( "Изменено!!\n" + process.getDescription() ); processDao.updateProcess( process ); // чтобы в браузере обновилась вкладка pce.getForm().getResponse().addEvent( new ProcessChangedEvent( pce.getObjectId() ) ); } catch( Exception ex ) { log.error( ex.getMessage(), ex ); } } }