スタッフ・アクティビティーの処理

ビジネス・プロセス内のスタッフ・アクティビティーは、作業項目を通じて、組織内の さまざまな人に割り当てられます。 プロセスが開始されると、潜在的な所有者に対して作業項目が作成されます。

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

潜在的な所有者がアクティビティーを要求します。このユーザーは、関係のある情報の提供とアクティビティーの完了に対して責任があります。

このタスクのステップ

  1. 作業の準備ができている、ログオン・ユーザーに属するアクティビティーをリストします。
    QueryResultSet result =
         process.query("ACTIVITY.AIID",
                       "ACTIVITY.STATE = ACTIVITY.STATE.STATE_READY AND
                        ACTIVITY.KIND = ACTIVITY.KIND.KIND_STAFF AND
                        WORK_ITEM.REASON =
                             WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                        (String)null, (Integer)null, (TimeZone)null); 
    このアクションは、 ログオン・ユーザーが作業することができるアクティビティーが含まれる照会結果セットを戻します。
  2. 作業対象のアクティビティーを要求します。
    if (result.size() > 0)
    {
    	result.first();
    	AIID aiid = (AIID) result.getOID(1);
    	ClientObjectWrapper input = process.claim(aiid);
    	DataObject activityInput = null ;
      if ( input.getObject()!= null && input.getObject() instanceof DataObject )
      {
        activityInput = (DataObject)input.getObject();
        // read the values
        ...
      }  
    }
    アクティビティーが要求される と、アクティビティーの入力メッセージが戻されます。
  3. アクティビティーの作業が終了したら、アクティビティーを 完了します。 アクティビティーは、正常に完了することも、障害メッセージが表示されて完了することもあります。 アクティビティーが正常に完了した場合、出力メッセージが渡されます。 アクティビティーが失敗した場合、アクティビティーは失敗状態または停止状態に置かれ、 障害メッセージが渡されます。 これらのアクションに対して、適切な メッセージを作成する必要があります。メッセージを作成 する場合、メッセージ・タイプ名を指定して、メッセージ 定義が含まれるようにする必要があります。
    1. アクティビティーを正常に完了するには、出力 メッセージを作成します。
      ActivityInstanceData activity = process.getActivityInstance(aiid);
      ClientObjectWrapper output =
            process.createMessage(aiid, activity.getOutputMessageTypeName());
      DataObject myMessage = null ;
      if ( output.getObject()!= null && output.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)output.getObject();
        //set the parts in your message, for example, an order number
        myMessage.setInt("OrderNo", 4711);
      }
      
      //complete the activity
      process.complete(aiid, output);
      このアクションは、オーダー番号が含まれる出力 メッセージを設定します。
    2. 障害が発生した場合にアクティビティーを完了する には、障害メッセージを作成します。
      //retrieve the faults modeled for the staff activity
      List faultNames = process.getFaultNames(aiid);
      
      //create a message of the appropriate type
      ClientObjectWrapper myFault =
            process.createMessage(aiid, faultNames.get(0));
      
      // set the parts in your fault message, for example, an error number
      DataObject myMessage = null ;
      if ( myFault.getObject()!= null && input.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)myFault.getObject();
        //set the parts in the message, for example, a customer name
        myMessage.setInt("error",1304);
      }
      
      process.complete(aiid, (String)faultNames.get(0), myFault);
      このアクションは、アクティビティーを失敗状態または停止状態のいずれかに設定します。 プロセス・モデル内のアクティビティーの continueOnError パラメーターが 真に設定されている場合、アクティビティーは失敗状態に置かれ、ナビゲーションが続行されます。 continueOnError パラメーターが false に設定され、障害が周囲の有効範囲で catch されない場合、そのアクティビティーは停止状態になります。この状態では、強制終了または強制再試行を使用してアクティビティーを修復できます。

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