스태프 활동 처리

비즈니스의 스태프 활동은 작업 항목을 통해 사용자 조직의 여러 사용자에게 지정됩니다. 프로세스가 시작하면 작업 항목이 잠재적 사용자에 대해 작성됩니다.

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

잠재적 소유자가 활동을 청구합니다. 이 사용자는 관련 정보를 제공하고 활동을 완료해야 합니다.

이 타스크의 단계

  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로 설정되고 주변 범위에서 결함이 발견되지 않으면 활동은 중지 상태가 됩니다. 이러한 상태에서 활동은 강제 종료 또는 강제 재시도를 통해 수정될 수 있습니다.

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