2016-04-06 32 views
0

最初に、私はカムダに新しいです。 私はカンダでカスタムタスクリストを作成しました。 私は仕事などを請求する/請求することができますが、これは機能しています。Camundaカスタムタスクリスト - 完了タスク

私が呼んでいるとき、今の私は、特定のタスクを完了するために好きですが、思い:

public void completeSelectedTask() { 
    taskService.complete(selectedTask.getId()); 
} 

をcamundaではなく、コンテキストの、この文脈では、次のステップに行きたいかのように思えますBPMNスキーマがデプロイされており、次のステップを実行するために必要なすべてがデプロイされています。私はcamundaProcessor.warのように私のcustomTasklist.warに同じクラスを持っていないので、私は "classNotFound"例外を取得しています..

私は正しいコンテキストで次のステップに行くことができます?!あるいは、私はこれを間違っていると思いますが、私はいつもcamundaProccessorコンテキストでタスクを完了する必要がありますか?

さらに詳しい情報:フォームを使用してuserTaskを完了します。私は現在、camundaProcessor.warではなくcustomTasklist.warに追加しています(これは、カンタータプロセッサーワーのフォームを探しているので、すぐに使えるタスクリストはもう使用できません)

答えて

0

説明のためにコンテキストAおよびコンテキストBである。これらは、例えば、同じデータベースに対してプロセスエンジンを実行するクラスタノードとすることができる。コンテキストAでタスクを完了したとしますが、次のタスクを処理するリソース(たとえば、サービスタスクのJavaDelegate実装)はコンテキストBでのみ使用できます。

スケッチの問題を解決するには、有効です。コンテキストBでタスクが完了したことを確認するか、コンテキストAでタスクを完了した後にコンテキスト実行を続行することを確認します。

asynchronous continuationsを使用できます。特に、BPMN XMLのuserTask要素では、属性camunda:asyncAfter="true"を設定できます。コンテキストAでタスクが完了すると、ユーザータスクのアクティビティインスタンスが完了するまでプロセスの実行が継続されます。後続のアクティビティで実行をただちに続行するのではなく、プロセスエンジンはジョブをデータベースに保持します。ジョブは、プロセスの実行を継続するタスクを表します。最終的にはjob executor componentによって実行され実行されます。ジョブ実行プログラムがコンテキストBで実行されていると仮定すると、リソースを正しく解決できるようになります。

関連する問題