待機中のアクティビティーへのメッセージの送信

インバウンド・メッセージ・アクティビティー (receive アクティビティー、pick アクティビティーの onMessage、イベント・ハンドラーの onEvent) を使用して、実行中のプロセスを「外の世界」からのイベントと同期化することができます。例えば、 情報に対する要求に応えたお客様からの E メールの受信は、 このようなイベントとみなされます。

このタスクを実行する理由と実行時期

親タスクを使用して、メッセージをアクティビティーに送信することができます。

このタスクのステップ

  1. 特定のプロセス・インスタンス ID を持つプロセス・インスタンスのログオン・ユーザーからのメッセージを待機するアクティビティー・サービス・テンプレートをリストします。
    ActivityServiceTemplateData[] services = process.getWaitingActivities(piid);
  2. 最初の待機サービスへメッセージを送信します。

    ここでは、最初のサービスが使用したいサービスであると想定しています。呼び出し元は、メッセージを受信するアクティビティーの潜在的なスターター、またはプロセス・インスタンスの管理者である 必要があります。

    VTID vtid = services[0].getServiceTemplateID();
    ATID atid = services[0].getActivityTemplateID();
    String inputType = services[0].getInputMessageTypeName(); 
      
    // create a message for the service to be called
      ClientObjectWrapper message =
            process.createMessage(vtid,atid,inputMessageTypeName);  
      DataObject myMessage = null;
      if ( message.getObject()!= null && message.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)message.getObject();
        //set the strings in the message, for example, chocolate is to be ordered
        myMessage.setString("Order", "chocolate");
      }
    
      // send the message to the waiting activity
      process.sendMessage(vtid, atid, message);
    }

    このアクション によって、指定されたメッセージを待機アクティビティー ・サービスに送信し、一部のオーダー・データを渡します。

    また、プロセス・インスタンス ID を指定して、 メッセージが指定されたプロセス・インスタンスに送信 されたことを確認することもできます。プロセス・ インスタンス ID が指定されていない場合、メッセージ は、アクティビティー・サービス、およびメッセージの 相関値によって識別されたプロセス・インスタンスに 送信されます。プロセス・インスタンス ID が指定 された場合、相関値を使用して検出されたプロセス・ インスタンスがチェックされ、指定されたプロセス・ インスタンス ID であることが確認されます。


(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。