Why and when to perform this task
Originating tasks that invoke a synchronous interface
include inline originating tasks in a microflow, stand-alone originating tasks
in a microflow, and originating tasks that start, for example, a simple Java
class.
This scenario creates an instance of a task template and passes
some customer data.
Steps for this task
- Optional: List the task templates to find the name
of the originating task you want to run.
This step is optional
if you already know the name of the task.
TaskTemplate[] taskTemplates = task.queryTaskTemplates
("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_ORIGINATING",
"TASK_TEMPL.NAME",
new Integer(50),
null);
The results are sorted by name.
The query returns an array containing the first 50 sorted originating templates.
- Create an input message of the appropriate type.
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");
}
- Create the task and run it asynchronously.
The example
uses the createAndStartTask method to create and run the task.
task.createAndStartTask( template.getName(),
template.getNamespace(),
input,
null);