Ejecución de un microflujo que contiene un servicio de arranque exclusivo

Se puede iniciar un microflujo mediante una actividad de recepción o de obtención. El servicio de arranque es exclusivo si el microflujo se inicia con una actividad de recepción o cuando la actividad de obtención únicamente tiene una definición onMessage.

Si el microflujo implementa una operación de petición y respuesta, es decir, el proceso contiene una respuesta, puede utilizar el método call para ejecutar el proceso pasando el nombre de plantilla de proceso como parámetro en la llamada.

Si el microflujo es una operación unidireccional, utilice el método sendMessage para ejecutar el proceso. Este método no está cubierto en este ejemplo.

  1. Opcional: Liste las plantillas de proceso para encontrar el nombre del proceso que desea ejecutar.

    Este paso es opcional si ya sabe el nombre del proceso.

    ProcessTemplateData[] processTemplates = process.queryProcessTemplates
    ("PROCESS_TEMPLATE.EXECUTION_MODE.EXCECUTION_MODE_MICROFLOW",
     "PROCESS_TEMPLATE.NAME",
      new Integer(50),
      null);

    El resultado se clasifica por nombre. La consulta devuelve una matriz que contiene las 50 primeras plantillas clasificadas que se pueden iniciar mediante el método call.

  2. Iniciar el proceso con un mensaje de entrada del tipo adecuado.

    Cuando cree el mensaje, debe especificar el nombre del tipo de mensaje, para que contenga la definición del mensaje.

    ProcessTemplateData template = processTemplates[0];
    //crear un mensaje sólo para la actividad de recepción inicial
    ClientObjectWrapper input = process.createMessage
                               (template.getID(),
                                template.getInputMessageTypeName());
    DataObject myMessage = null;
    if ( input.getObject()!= null && input.getObject() instanceof DataObject )
    {
      myMessage = (DataObject)input.getObject();
      //establecer las series del mensaje, por ejemplo, un nombre de cliente
      myMessage.setString("CustomerName", "Smith");
    }
    
    //ejecutar el proceso
    ClientObjectWrapper output = process.call(template.getName(), input);
    DataObject myOutput = null;
    if ( output.getObject() != null && output.getObject() instanceof DataObject )
    {
      myOutput  = (DataObject)output.getObject();
      int order = myOutput.getInt("OrderNo");}

    Esta acción crea una instancia de la plantilla de proceso, CustomerTemplate, y pasa algunos datos al cliente. La operación sólo devuelve resultados cuando el proceso se ha completado. Se devuelve el resultado del proceso, OrderNo, al proceso que efectúa la llamada.

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)