Este ejemplo crea una tarea de tiempo de ejecución que utiliza una
interfaz que forma parte de la aplicación que llama.
Por ejemplo, la tarea de ejecución se crea en un snippet Java de un proceso
de empresa y utiliza una interfaz de la aplicación de proceso.
El ejemplo sólo se ejecuta en el contexto de la aplicación de empresa
que llama, para la que se cargan los recursos.
- Acceda a ClientTaskFactory y cree un conjunto de recursos que
contenga las definiciones del nuevo modelo de tarea.
ClientTaskFactory factory = ClientTaskFactory.newInstance();
// especificar el cargado de clase de contexto para que se encuentren los siguientes recursos
ResourceSet resourceSet = factory.createResourceSet
( Thread.currentThread().getContextClassLoader() );
- Acceda a la definición de WSDL y a las descripciones de las
operaciones.
Especifique la vía de acceso del archivo JAR de contenedor.
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 );
- Cree el modelo EMF de la nueva tarea de usuario.
Si
crea una instancia de tarea, no se necesita una fecha de válido-desde
(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 );
Este
paso inicializa las propiedades del modelo de tarea con valores por omisión.
- Modifique las propiedades del modelo de tarea de usuario.
// utilizar los métodos del paquete com.ibm.wbit.tel, por ejemplo,
humanTask.setBusinessRelevance( TBoolean, YES_LITERAL );
// recuperar la fábrica de tareas para crear o modificar elementos de tarea compuestos
TaskFactory taskFactory = factory.getTaskFactory();
// especificar valores de escalada
TVerb verb = taskFactory.createTVerb();
verb.setName("John");
// crear escalationReceiver y añadir verbo
TEscalationReceiver escalationReceiver =
taskFactory.createTEscalationReceiver();
escalationReceiver.setVerb(verb);
// crear escalada y añadir receptor de escalada
TEscalation escalation = taskFactory.createTEscalation();
escalation.setEscalationReceiver(escalationReceiver);
- Cree un modelo de tarea que contenga todas las definiciones de
recurso
TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
- Valide el modelo de tarea y corrija los problemas de validación que
se encuentren.
ValidationProblem[] validationProblems = taskModel.validate();
- Cree la instancia o plantilla de tarea de tiempo de ejecución.
Utilice
la interfaz HumanTaskManagerService para crear la instancia de tarea o la
plantilla de tarea.
Debe proporcionar un nombre de aplicación que contenga las definiciones de tipo
de datos para que se pueda acceder a ellas.
- El snippet siguiente crea una instancia de tarea:
task.createTask( taskModel, "WorkflowApplication", "HTM" );
- El snippet siguiente crea una plantilla de tarea:
task.createTaskTemplate( taskModel, "WorkflowApplication" );
Si se ha creado una instancia de tarea de tiempo de ejecución, ahora
puede iniciarse. Si se ha creado una plantilla de tarea de tiempo de ejecución,
ahora puede crear instancias de tarea a partir de la plantilla.