Inicio de una tarea de origen que invoca una interfaz síncrona

Las tareas de origen que invocan una interfaz síncrona incluyen tareas de origen en línea en un microflujo, tareas de origen autónomas en un microflujo y tareas de origen que inician, por ejemplo, una clase Java simple.

Este escenario crea una instancia de una plantilla de tarea y pasa algunos datos de cliente. La tarea permanece en estado de ejecución hasta que se devuelve la operación bidireccional. El resultado de la tarea, OrderNo, se devuelve al llamante.

  1. Opcional: Liste las plantillas de tarea para encontrar el nombre de la tarea originadora que desea ejecutar.

    Este paso es opcional si ya conoce el nombre de la tarea.

    TaskTemplate[] taskTemplates = task.queryTaskTemplates
    ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_ORIGINATING",
     "TASK_TEMPL.NAME",
      new Integer(50),
      null);

    El resultado se clasifica por nombre. La consulta devuelve una matriz que contiene las 50 primeras plantillas originadoras clasificadas.

  2. Cree un mensaje de entrada del tipo adecuado.
    TaskTemplate template = taskTemplates[0];
    
    // crear un mensaje para la tarea seleccionada
    ClientObjectWrapper input = task.createInputMessage( template.getID());                       
    DataObject myMessage = null ;
    if ( input.getObject()!= null && input.getObject() instanceof DataObject )
    {
      myMessage = (DataObject)input.getObject();
      //establecer las partes del mensaje, por ejemplo, un nombre de cliente
      myMessage.setString("CustomerName", "Smith");
    }
  3. Cree la tarea y ejecútela de forma síncrona.

    Para que una tarea se ejecute de forma síncrona, debe ser una operación bidireccional. El ejemplo utiliza el método createAndCallTask para crear y ejecutar la tarea.

    ClientObjectWrapper output = task.createAndCallTask( template.getName(), 
                                                         template.getNamespace(),
                                                         input);
  4. Analice el resultado de la tarea.
    DataObject myOutput = null;
    if ( output.getObject() != null && output.getObject() instanceof DataObject )
    {
      myOutput  = (DataObject)output.getObject();
      int order = myOutput.getInt("OrderNo");}
Conceptos relacionados
Consultas sobre los objetos de procesos de empresa y relativos a tareas

Condiciones de uso |

Última actualización: Wed Apr 19 21:34:07 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)