참여 또는 순수 휴먼 타스크는 작업 항목을 통해 사용자 조직의 여러 사용자에 지정됩니다. 참여 타스크 및 연관된 작업 항목이 프로세스가 staff 활동을 탐색하는 경우와 같이 여러 상황에서 작성됩니다. 잠재적 소유자 중 하나가 작업 항목과 연관된 타스크를 청구합니다. 이 사용자는 관련 정보를 제공하고 타스크를 완료해야 합니다.
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", null, null, null);
이 조치는 로그온 사용자가 작업할 수 있는 타스크를 포함하는 결과 조회 세트를 리턴합니다.
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 ... } }
타스크가 청구될 때 타스크의 입력 메시지가 리턴됩니다.
타스크는 성공적으로 완료되거나 결함 메시지와 함께 완료될 수 있습니다. 타스크가 성공적인 경우 출력 메시지가 전달됩니다. 타스크가 성공하지 못한 경우 결함 메시지가 전달됩니다. 이 조치에 해당하는 메시지를 작성해야 합니다.
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);이 조치는 순번을 포함하는 출력 메시지를 설정합니다. 타스크는 완료 상태가 됩니다.
//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);
이 조치를 실행하면 오류 코드를 포함하는 결함 메시지가 설정됩니다. 타스크는 실패 상태가 됩니다.