이 시나리오는 휴먼 타스크를 정의하는 타스크 템플리트의 인스턴스를 정의하고 타스크 인스턴스를 시작하는 방법을 보여줍니다.
- 옵션: 타스크 템플리트의 목록을 표시하여
실행하려는 원래 타스크의 이름을 찾으십시오.
타스크의 이름을 이미 아는
경우 이 단계는 선택적입니다.
TaskTemplate[] taskTemplates = task.queryTaskTemplates
("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN",
"TASK_TEMPL.NAME",
new Integer(50),
(TimeZone)null);
결과는 이름별로 정렬됩니다.
조회가 처음 50개의 정렬된 휴먼 타스크 템플리트를 포함하는 배열을 리턴합니다.
- 해당 유형의 입력 메시지를 작성하십시오.
TaskTemplate template = taskTemplates[0];
// create a message for the selected task
ClientObjectWrapper input = task.createInputMessage( template.getID());
DataObject myMessage = null ;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
//set the parts in the message, for example, a customer name
myMessage.setString("CustomerName", "Smith");
}
- 휴먼 타스크를 작성하고 시작하십시오. 이 예에서는 응답 핸들러가 지정되어 있지 않습니다.
이 예에서는 createAndStartTask 메소드를 사용하여 타스크를 작성하고 시작합니다.
TKIID tkiid = task.createAndStartTask( template.getName(),
template.getNamespace(),
input,
(ReplyHandlerWrapper)null);
작업 항목이 타스크 인스턴스를 인식하는 사용자에 대해 작성됩니다.
예를 들어 잠재적 사용자는 새 타스크 인스턴스를 청구할 수 있습니다.
- 타스크 인스턴스를 청구하십시오.
ClientObjectWrapper input2 = task.claim(tkiid);
DataObject taskInput = null ;
if ( input2.getObject()!= null && input2.getObject() instanceof DataObject )
{
taskInput = (DataObject)input2.getObject();
// read the values
...
}
타스크 인스턴스가 청구될 때 타스크의 입력 메시지가 리턴됩니다.