Примерное направление:
1) Сделать Java класс в динамическом коде примерно такого вида, пакет ru.bgcrm.dyn.yourorg.
Это заготовка класса, необходимо скомпилировать, проверить и скорректировать если где ошибки!
Код:
public class ServiceConnect
extends DynamicEventListener
{
@Override
public void notify( Event e, ConnectionSet connectionSet )
throws BGMessageException, BGException
{
Connection con = connectionSet.getConnection();
try
{
if( e instanceof ProcessChangedEvent )
{
if( changedEvent.isStatus() )
{
statusChanged( con, changedEvent );
}
}
}
catch( SQLException ex )
{
throw new BGException( ex );
}
}
private void statusChanged( Connection con, ProcessChangedEvent event )
throws BGException
{
Process process = event.getProcess();
int typeId = process.getTypeId();
int statusId = process.getStatusId();
int processId = process.getId();
ProcessDAO processDao = new ProcessDAO( con );
NewsDAO newsDao = new NewsDAO( con );
SearchResult<Pair<String, Process>> searchResultLinked = new SearchResult<Pair<String, Process>>();
processDao.searchLinkedProcessList( searchResultLinked, Process.OBJECT_TYPE + "%", processId,
Collections.singleton( PROCESS_TYPE_ZAYAVKA ), null, null );
int parentId = 0;
Set<Integer> userIds = new HashSet<Integer>();
Pair<String, Process> pair = Utils.getFirst( searchResultLinked.getList() );
if( pair != null )
{
zayavkaId = pair.getSecond().getId();
if( userIds != null )
{
userIds.addAll( pair.getSecond().getExecutorIds() );
}
}
if( parentId > 0 )
{
News news = new News();
news.setCreateDate( new Date() );
news.setLifeTime( 200 );
news.setReadTime( 400 );
news.setUserId( event.getForm().getUserId() );
news.setTitle( "Процесс " + parentId + " => обновился" );
String text = "<a href='#UNDEF' onClick='openProcess( " + process.getId() + " )'>Перейти к процессу</a>";
news.setDescription( text );
newsDao.updateNewsUsers( news, userIds );
}
}
}
2) Класс привязать к типу процесса-потомка.
3) Должно генерировать новости со ссылкой на открытие процесса. При необходимости можно добавить в новость более детальное описание процесса.
Как-то: параметры, привязанные контрагенты и т.п.