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

Обновить процесс-родитель (CRM)
http://forum.bitel.ru/viewtopic.php?f=49&t=9114
Страница 1 из 1

Автор:  yoksel [ 02 апр 2014, 18:20 ]
Заголовок сообщения:  Обновить процесс-родитель

Хотелось бы при закрытии порожденного процесса видеть это в карточке процесса - родителя. Как это можно сделать?

Автор:  Администратор [ 03 апр 2014, 14:13 ]
Заголовок сообщения:  Re: Обновить процесс-родитель

Обновить у того же пользователя или у всех? При открытии карточки процесса сейчас она обновляется, этого не всегда достаточно?

Автор:  yoksel [ 03 апр 2014, 15:44 ]
Заголовок сообщения:  Re: Обновить процесс-родитель

Администратор писал(а):
Обновить у того же пользователя или у всех? При открытии карточки процесса сейчас она обновляется, этого не всегда достаточно?

Сейчас просто видно что порождённый процесс стал в статусе "Закрыт", для этого надо зайти в саму карточку а хотелось чтобы это было видно например из очереди процессов, или еще каким нибудь способом было заметно. Прощелкивать все процессы зависящие от попрождённых на мой взгляд не очень удобно, а в задаче требуется быстро отреагировать по закрытию порождённого процесса.

Автор:  Администратор [ 03 апр 2014, 18:55 ]
Заголовок сообщения:  Re: Обновить процесс-родитель

Как я понимаю, там несколько процессов порождённых? А если половина закрылась а половина - нет, как отображать? Может оповещение бы устроило просто через новости?

Автор:  yoksel [ 03 апр 2014, 19:01 ]
Заголовок сообщения:  Re: Обновить процесс-родитель

Администратор писал(а):
Как я понимаю, там несколько процессов порождённых? А если половина закрылась а половина - нет, как отображать? Может оповещение бы устроило просто через новости?

Да, хорошее решение. А как реализовать? Мне хотя бы направление задать.

Автор:  Администратор [ 04 апр 2014, 08:41 ]
Заголовок сообщения:  Re: Обновить процесс-родитель

Примерное направление:

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 + " =&gt; обновился" );

          String text = "<a href='#UNDEF' onClick='openProcess( " + process.getId() + " )'>Перейти к процессу</a>";

          news.setDescription( text );
         
          newsDao.updateNewsUsers( news, userIds );
      } 
   }
}


2) Класс привязать к типу процесса-потомка.

3) Должно генерировать новости со ссылкой на открытие процесса. При необходимости можно добавить в новость более детальное описание процесса.
Как-то: параметры, привязанные контрагенты и т.п.

Автор:  yoksel [ 04 апр 2014, 12:11 ]
Заголовок сообщения:  Re: Обновить процесс-родитель (CRM)

Спасибо! Буду разбираться.

Автор:  Администратор [ 04 апр 2014, 17:41 ]
Заголовок сообщения:  Re: Обновить процесс-родитель (CRM)

Если не затруднит - в WiKi закиньте пример получившийся. Очень примеров не хватает простых.

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