이 예는 호출 응용프로그램에 포함된 인터페이스를 사용하는 런타임 타스크를 작성합니다. 예를 들어, 런타임 타스크는 비즈니스 프로세스의 Java 스니펫에 작성되며 프로세스 응용프로그램의 인터페이스를 사용합니다.
ClientTaskFactory factory = ClientTaskFactory.newInstance(); // specify the context class loader so that following resources are found ResourceSet resourceSet = factory.createResourceSet ( Thread.currentThread().getContextClassLoader() );
포함하고 있는 패키지 JAR 파일에 경로를 지정하십시오.
Definition definition = factory.loadWSDLDefinition( resourceSet, "com/ibm/workflow/metaflow/interface.wsdl" ); PortType portType = definition.getPortType( new QName( definition.getTargetNamespace(), "doItPT" ) ); Operation operation = portType.getOperation("doIt", null, null );
타스크 인스턴스를 작성 중이면 유효 시작 날짜(UTCDate)가 필요하지 않습니다.
TTask humanTask = factory.createTTask( resourceSet, TTaskKinds.HTASK_LITERAL, "TestTask", new UTCDate( "2005-01-01T00:00:00" ), "http://www.ibm.com/task/test/", portType, operation );
이 단계는 타스크 모델의 등록 정보를 기본값으로 초기화합니다.
// use the methods from the com.ibm.wbit.tel package, for example, humanTask.setBusinessRelevance( TBoolean, YES_LITERAL ); // retrieve the task factory to create or modify composite task elements TaskFactory taskFactory = factory.getTaskFactory(); // specify escalation settings TVerb verb = taskFactory.createTVerb(); verb.setName("John"); // create escalationReceiver and add verb TEscalationReceiver escalationReceiver = taskFactory.createTEscalationReceiver(); escalationReceiver.setVerb(verb); // create escalation and add escalation receiver TEscalation escalation = taskFactory.createTEscalation(); escalation.setEscalationReceiver(escalationReceiver);
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
ValidationProblem[] validationProblems = taskModel.validate();
task.createTask( taskModel, "WorkflowApplication", "HTM" );
task.createTaskTemplate( taskModel, "WorkflowApplication" );
런타임 인스턴스가 작성되면 이제 시작할 수 있습니다. 런타임 타스크 템플리트가 작성되면 이제 템플리트로부터 타스크 인스턴스를 작성할 수 있습니다 .