2012-01-31 19 views
0

ワークフローにユーザータスクがあります。 ヒューマンタスクを処理することはできますが、フローはそれ以上転送されません。 例外なく、そこでフローが停止します。ユーザータスクに続く他のタスクは実行されません。jbpm5のユーザータスクのあとにワークフローが転送されない

この点でお手伝いします。 1. jbpm5.0に必要な設定変更がありますか。 2.紛失しているものはありますか?ヒューマン・タスク・ハンドラを登録するスレッドが死亡したため起こって

 KnowledgeBase kbase = readKnowledgeBase("taskprocess.rf"); 
     StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); 

     /*Create the knowledge base for HelloProcss.bpmn */ 

     KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "testlog", 1000); 
     CommandBasedWSHumanTaskHandler taskHandler = new CommandBasedWSHumanTaskHandler(ksession); 
     ksession.getWorkItemManager().registerWorkItemHandler("Human Task", taskHandler); 
     //JPAWorkingMemoryDbLogger logger = new JPAWorkingMemoryDbLogger(ksession); 
     //taskHandler.connect(); 

     System.out.println(" started the humantask"); 
     ksession.startProcess("persistask");  
     ksession.fireAllRules(); 

答えて

0

は、私たちは、ワークフローが進むと、ユーザのタスクが完了した後に残りのタスクを完了これで「TaskServiceSession」

  taskSession.addUser(new User("administrator")); 

にユーザ名の管理者を追加する必要があります。 プロセスを実行するには、管理者ロールが必要です。それは必須です

+0

admininstratorユーザーが既にdbに存在する場合でもこれは必要ですか? – user325643

1

(。ksession.getWorkItemManager()registerWorkItemHandler(「ヒューマン・タスク」、taskHandlerは);) あなたは、ヒューマン・タスクハンドラとグローバルセッションを持っている必要がありますヒューマン・タスク・コンポーネントがタスクの完了を通知するためにリッスンしています。

乾杯

+0

私はこの問題を理解しましたが、通知を聞いている人間のタスクハンドラを使ってグローバルksessionを作成する方法を見つけ出すにはまだまだありません。私はいくつかの例を得る場合は非常に役立つだろう。 –

+0

は、私たちは「TaskServiceSession」でユーザ名の管理者を追加する必要が 'taskSession.addUser(新しいユーザー(「管理者」));ワークフローが進み、ユーザタスクが完了した後に残りのタスクを完了した。これにより' 。 しかし、そのバグか論理に管理者が必要かどうかは疑問です。 –

+1

プロセスを実行するには、管理者ロールが必要です。それは要件です。 – salaboy

0

あなたは、タスクを完了しているあなたは、たとえばEclipseやWebベースのクライアントを使用しているか明確にもらえますか?そして、プロセスを開始した後、あなたのメインクラスで何が起こるのですか?終了するだけですか?その場合、Salaboyはおそらく正しいでしょう。タスクを作成し、そのプロセスを実行するスレッドは、タスクを完了する前にすでに終了している可能性が高いため、実行を継続しません。

メインクラスに長いThread.sleepを追加すると、おそらくテストのために実行を続けることができます。

+0

私のワークフロー:スタート - >ユーザータスク - >スクリプトタスク - >終了。 私はそれを実行するためにEclipseを使用し、ユーザがヒューマンタスクを完了すると、そこでフローが終了します。私は何の例外も得られず、さらなるタスクは実行されません。 –

関連する問題