2015-10-13 13 views
5

次のJavadelegateクラスが添付された送信タスクを使用しています。カンダBPMNの送受信タスクの使用

public class SendTaskDelegate implements JavaDelegate { 

    public void execute(DelegateExecution execution) throws Exception { 

execution.getProcessEngineServices() 
    .getRuntimeService() 
    .createMessageCorrelation("someMessage") 
    .processInstanceBusinessKey("someBusinessKey") 
    .correlate(); 

    } 

} 

しかし、私はこのエラーを取得しています::

An error happend while submitting the task form : Cannot submit task form c0e85bad-719f-11e5-94aa-d897baecf24a: Cannot correlate message someMessage: No process definition or execution matches the parameters

私はそれをデバッグするにはどうすればよいですか?

答えて

5

JavaDelegateコードが正しく実行されるというエラーメッセージが表示されます。プロセスエンジンは、ビジネスキーとして 'someBusinessKey'を持ち、現在は 'someMessage'というメッセージを待っているが、そのようなインスタンスは見つけられません。あなたのコードは、そのようなインスタンスがあるかのように動作し、それを見つけようとして、メッセージについて伝えます。 correlation methodsのドキュメントセクションを参照してください。原則的に、このメカニズムは、メッセージをターゲットとする正しいインスタンスにメッセージをルーティングするために使用されます。

サイドノートとして:あなたのJavaDelegateは、あなたがタスクを完了しようとする同じトランザクションで呼び出されたようです。プロセス内の「トランザクションの境界」は、文書セクションのtransactions in processesについて説明されている「非同期」属性で管理できます。

+0

ありがとうございます!あなたの入力は私がそのエラーを克服するのに役立ちました。送信タスクと受信タスクの後のワークフローでは、特定のユーザータスクがあります。送信タスクが開始された後、制御の流れは、発生していないユーザータスクの譲受人に行かなければならない。タスクのインスタンスは、送信タスクの開始後にコックピットに表示されません。なぜそれが起こっているのか教えてください。 – PP93

+0

プロセスや新しいエラーメッセージを知らなくても、何が起こっているのか正確にはわかりません...もっと簡単なプロセスから始めてみることをお勧めします。 2つのユーザータスクを1つずつ順番に実行し、ステップバイステップでさらに機能を追加します。 –

+1

送信タスクで引き続き例外が発生した場合、プロセスエンジンは後続のタスクには行かず、以前の時点にトランザクションをロールバックします。あなたはちょうど(期待された、意図された)効果を見ることができます... –

関連する問題