Creating runtime tasks that use simple Java types
This example creates a runtime task that uses only simple Java types in its interface, for example, a String object.
About this task
Procedure
- Access the ClientTaskFactory and create a resource set to contain
the definitions of the new task model.
ClientTaskFactory factory = ClientTaskFactory.newInstance(); ResourceSet resourceSet = factory.createResourceSet(); - Create the WSDL definition and add the descriptions of your operations.
// create the WSDL interface Definition definition = factory.createWSDLDefinition ( resourceSet, new QName( "http://www.ibm.com/task/test/", "test" ) ); // create a port type PortType portType = factory.createPortType( definition, "doItPT" ); // create an operation; the input and output messages are of type String: // a fault message is not specified Operation operation = factory.createOperation ( definition, portType, "doIt", new QName( "http://www.w3.org/2001/XMLSchema", "string" ), new QName( "http://www.w3.org/2001/XMLSchema", "string" ), (Map)null ); - Create the EMF model of your new human task.
If you are creating a task instance, a valid-from date (UTCDate) is not required.
TTask humanTask = factory.createTTask( resourceSet, TTaskKinds.HTASK_LITERAL, "TestTask", new UTCDate( "2005-01-01T00:00:00" ), "http://www.ibm.com/task/test/", portType, operation );This step initializes the properties of the task model with default values.
- Modify the properties of your human task model.
// 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); - Create the task model that contains all the resource definitions.
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet ); - Validate the task model and correct any validation problems that
are found.
ValidationProblem[] validationProblems = taskModel.validate(); - Create the runtime task instance or template. Use the HumanTaskManagerService interface to create the task instance or the task template. Because the application uses simple Java types only, you do not need to specify an application name.
- The following snippet creates a task instance:
atask.createTask( taskModel, (String)null, "HTM" ); - The following snippet creates a task template:
task.createTaskTemplate( taskModel, (String)null );
- The following snippet creates a task instance:
Results
If a runtime task instance is created, it can now be started. If a runtime task template is created, you can now create task instances from the template.