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

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

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

このタスクのステップ

  1. ログオンしたユーザーからのメッセージを 待機しているアクティビティー・サービス・テンプレートをリストします。
    QueryResultSet result =
       process.query("ACTIVITY_SERVICE.VTID,ACTIVITY.ATID",
                     "ACTIVITY.STATE=ACTIVITY.STATE.STATE_WAITING AND
                      ACTIVITY_SERVICE.PORT_TYPE='Confectionery' AND
                      ACTIVITY_SERVICE.OPERATION='OrderRequest' AND
                      WORK_ITEM.REASON=WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                      null, null, null); 
  2. メッセージを送信します。

    呼び出し元は、メッセージを受信するアクティビティーの潜在的な所有者、またはプロセス・インスタンスの管理者である 必要があります。

    if ( result.size() > 0 )
    {
      result.first();
      VTID vtid = (VTID)result.getOID(1);
      ATID atid = (ATID)result.getOID(2);
      ActivityServiceTemplateData activity =
              process.getActivityServiceTemplate(vtid,atid);
    
      // create a message for the service to be called
      ClientObjectWrapper message =
            process.createMessage(vtid,atid,activity.getInputMessageTypeName());
      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.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)