비동기 인터페이스를 호출하는 원래 타스크는 마이크로플로우의 인라인 원래 타스크, 마이크로플로우의
독립형 원래 타스크 및 예를 들어 단순 Java 클래스를 시작하는 원래 타스크를 포함합니다.
이 시나리오는 타스크 템플리트의 인스턴스를 작성하고 몇가지
고객 데이터를 전달합니다. 타스크는 양방향 조작이 리턴할 때까지 실행 상태로 남아 있습니다. 타스크 OrderNo의 결과가 호출자에게 리턴됩니다.
- 옵션: 타스크 템플리트의 목록을 표시하여
실행하려는 원래 타스크의 이름을 찾으십시오.
타스크의 이름을 이미 아는
경우 이 단계는 선택적입니다.
TaskTemplate[] taskTemplates = task.queryTaskTemplates
("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_ORIGINATING",
"TASK_TEMPL.NAME",
new Integer(50),
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");
}
- 타스크를 작성한 후 타스크를 동기적으로 실행하십시오.
동기적으로 실행할
타스크는 반드시 양방향 조작이어야 합니다. 이 예에서는
createAndCallTask 메소드를 사용하여 타스크를 작성하고 실행합니다.
ClientObjectWrapper output = task.createAndCallTask( template.getName(),
template.getNamespace(),
input);
- 타스크의 결과를 분석하십시오.
DataObject myOutput = null;
if ( output.getObject() != null && output.getObject() instanceof DataObject )
{
myOutput = (DataObject)output.getObject();
int order = myOutput.getInt("OrderNo");
}