参加タスクまたは純粋なヒューマン・タスクの処理

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

参加タスクや純粋なヒューマン・タスクは、作業項目を通じて、組織内の さまざまな人に割り当てられます。プロセスが staff アクティビティーにナビゲートしたときなどに、参加タスクとそれに関連した作業項目が作成されます。 潜在的な所有者の中の 1 人が、作業項目に関連したタスクを要求します。 このユーザーは、 関係のある情報の提供とタスクの完了に対して責任があり ます。

このタスクのステップ

  1. 作業の準備ができている、ログオン・ユーザーに属するタスクをリストします。
    QueryResultSet result =
         task.query("TASK.TKIID",
                    "TASK.STATE = TASK.STATE.STATE_READY AND
                    (TASK.KIND = TASK.KIND.KIND_PARTICIPATING OR
                     TASK.KIND = TASK.KIND.KIND_HUMAN)AND
                     WORK_ITEM.REASON =
                       WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                     (String)null, (Integer)null, (TimeZone)null); 

    このアクションは、 ログオン・ユーザーが作業することができるタスクが 含まれる照会結果セットを戻します。

  2. 作業対象のタスクを要求します。
    if (result.size() > 0)
    {
      result.first();
      TKIID tkiid = (TKIID) result.getOID(1);
      ClientObjectWrapper input = task.claim(tkiid);
      DataObject taskInput = null ;
      if ( input.getObject()!= null && input.getObject() instanceof DataObject )
      {
        taskInput = (DataObject)input.getObject();
        // read the values
        ...
      }  
    }

    タスクが要求される と、タスクの入力メッセージが戻されます。

  3. タスクの作業が完了した場合、タスクを 完了します。

    タスクは、正常に完了する ことも、障害メッセージが表示されて完了することも あります。タスクが正常に完了した場合、出力 メッセージが渡されます。タスクが正常に完了しな かった場合、障害メッセージが渡されます。これらのアクションに対して、適切な メッセージを作成する必要があります。

    1. タスクを正常に完了するには、出力 メッセージを作成します。
      ClientObjectWrapper output =
            task.createOutputMessage(tkiid);
      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 task
      task.complete(tkiid, output); 
      このアクションは、オーダー番号が含まれる出力 メッセージを設定します。タスクは、完了状態になります。
    2. 障害が発生した場合にタスクを完了する には、障害メッセージを作成します。
      //retrieve the faults modeled for the task
      List faultNames = task.getFaultNames(tkiid);
      
      //create a message of the appropriate type
      ClientObjectWrapper myFault =
            task.createFaultMessage(tkiid, (String)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);
      }
      
      task.complete(tkiid, (String)faultNames.get(0), myFault);

      このアクションにより、エラー・コードを含む障害メッセージが設定されます。 タスクは、失敗状態になります。


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