1

Windchill 10.0 M030 を使用しています。いくつかのアクションをキャプチャする Windchill サービスを作成しました。削除、チェックイン、および状態変更イベントのキャプチャは完了しましたが、オブジェクトのリビジョン イベントをキャプチャする方法がわかりません。誰かが私を助けることができますか?

いくつかのサンプル コード スニペットが役立ちます。正常に動作しているイベントは次のとおりです。

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);
        }
    }

このようにキャプチャされる改訂イベントのような別のイベントはありますか? どうやってやるの?

ありがとうございました。

4

1 に答える 1

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 コマンド ライン ユーティリティを使用)。

于 2013-03-15T10:32:10.837 に答える