2013-03-15 2 views
1

Я использую Windchill 10.0 M030. Я создал службу Windchill, которая фиксирует некоторые действия. Я закончил с захватом событий удаления, проверки и изменения состояния, но я не знаю, как захватить событие ревизии объекта. Кто-нибудь может мне помочь?Как захватить событие пересмотра WTObject?

Некоторые примеры фрагментов кода были бы полезны. События, которые работают хорошо, являются следующими:

public void notifyEvent(KeyedEvent event) throws RemoteException, 
      WTException { 


     if (event instanceof PersistenceManagerEvent) { 
      notifyEvent((PersistenceManagerEvent) event); 
     } 
     if (event instanceof WorkInProgressServiceEvent) { 
      notifyEvent((WorkInProgressServiceEvent) event); 
     } 
     if (event instanceof EPMWorkspaceManagerEvent) { 
      notifyEvent((EPMWorkspaceManagerEvent) event); 
     } 

     if (event instanceof LifeCycleServiceEvent) { 
      notifyEvent((LifeCycleServiceEvent) event); 
     } 
    } 

Есть ли отдельное событие как Пересмотреть захватываемое событие таким образом? Как я могу это сделать?

спасибо.

ответ

3

Вот код для ListenerAdapter:

public class VersionEventListenerAdapter extends ServiceEventListenerAdapter { 

public VersionEventListenerAdapter(String serviceId) { 
    super(serviceId); 
} 

public void notifyVetoableEvent(Object event) throws WTException, WTPropertyVetoException { 
    if (!(event instanceof KeyedEvent)) { 
     return; 
    } 

    Object target = ((KeyedEvent) event).getEventTarget(); 
    Object eventType = ((KeyedEvent) event).getEventType(); 

    if (eventType.equals(VersionControlServiceEvent.NEW_VERSION) 
    { 
     /** Call your business code here 
      example : yourMethod(target); 
     **/ 
    } 
} 

А потом сервис для регистрации слушателя

public class MyStandardListenerService extends StandardManager implements MyListenerServiceInterface { 

private static final long serialVersionUID = 1L; 

protected synchronized void performStartupProcess() throws ManagerException { 

    VersionEventListenerAdapter versionEventListenerAdapter = new VersionEventListenerAdapter(getName()); 
    getManagerService().addEventListener(versionEventListenerAdapter, VersionControlServiceEvent.generateEventKey(VersionControlServiceEvent.NEW_VERSION)); 

} 

public static MyStandardListenerService newMyStandardListenerService() throws WTException { 
    MyStandardListenerService instance = new MyStandardListenerService(); 
    instance.initialize(); 
    return instance; 
} 

Эта новая услуга должны быть зарегистрированы в wt.properties. Дополнительную информацию о том, как его зарегистрировать, можно найти в руководстве по настройке (с помощью утилиты командной строки xconfmanager)

Смежные вопросы