참여 또는 순수 휴먼 타스크 처리

이 타스크의 수행 목적 및 시기

참여 또는 순수 휴먼 타스크는 작업 항목을 통해 사용자 조직의 여러 사용자에 지정됩니다. 참여 타스크 및 연관된 작업 항목이 프로세스가 staff 활동을 탐색하는 경우와 같이 여러 상황에서 작성됩니다. 잠재적 소유자 중 하나가 작업 항목과 연관된 타스크를 청구합니다. 이 사용자는 관련 정보를 제공하고 타스크를 완료해야 합니다.

이 타스크의 단계

  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);

      이 조치를 실행하면 오류 코드를 포함하는 결함 메시지가 설정됩니다. 타스크는 실패 상태가 됩니다.


ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)