2017-03-25 8 views
0

私はアプリケーションでJBPM 6.2コアエンジンを使用しています。JBPMタスクイベントリスター登録

独自のカスタムタスクイベントリスナーを使用して自分のJavaコードを実行したかったのです。

JBPMコアランタイムエンジンで使用できるようにドキュメントが見つかりませんでした。私はコンソールで使用する複数の場所を見つけ、デプロイメント記述子で定義しました。

助けてください!

答えて

0

タスク・イベント・リスナーは、RuntimeManagerレベルまたはTaskServiceレベルで登録できます。

    RuntimeManagerレベルで
  1. TaskService taskService = runtime.getTaskService(); 
         ((EventService<TaskLifeCycleEventListener>)taskService).registerTaskEventListener(new DefaultTaskEventListener() { 
          @Override 
          public void afterTaskAddedEvent(TaskEvent event) { 
           System.out.println("taskId = " + event.getTask().getId()); 
          } 
         }); 
    

RuntimeEnvironment環境= RuntimeEnvironmentBuilder.getDefault() .persistence(真) .entityManagerFactory(EMF) .userGroupCallバック(userGroupCallback) .addAsset(ResourceFactory.newClassPathResource(プロセス)、 ResourceType.BPMN2) .registerableItemsFactory(新しいDefaultRegisterableItemsFactory(){ @Override公衆リストgetTaskListeners(){ リストリスナー=のsuper.getTaskListeners()。 listeners.add(新しいDefaultTaskEventListener(){ @Override公共ボイドafterTaskAddedEvent(TaskEventイベント){ のSystem.out.println( "のtaskId =" + event.getTask()のgetId());} }) ; リスナーを返します。 } }) .get(); 戻り値RuntimeManagerFactory.Factory.get()。newPerProcessInstanceRuntimeManager(環境)。