Manejo de sucesos

Un proceso de empresa completo y cada uno de sus ámbitos puede asociarse con manejadores de sucesos que se invocan si se produce el suceso asociado. Los manejadores de sucesos son similares para recibir o seleccionar actividades en lo referente a que un proceso puede proporcionar operaciones de servicios Web mediante manejadores de sucesos. Puede invocar un manejador de sucesos cualquier número de veces mientras se ejecute el ámbito correspondiente. Además, varias instancias de un manejador de sucesos pueden activarse de forma simultánea.

El siguiente fragmento de código muestra cómo obtener los manejadores de sucesos activos para una instancia de proceso determinada y cómo enviar un mensaje de entrada.

  1. Determine los datos del ID de instancia de proceso y liste los manejadores de sucesos activos para el proceso.
    ProcessInstanceData processInstance =
           process.getProcessInstance( "CustomerOrder2711");
    EventHandlerTemplateData[] events = process.getActiveEventHandlers(
                                          processInstance.getID() );
  2. Envíe el mensaje de entrada.

    Este ejemplo utiliza el primer manejador de sucesos que se encuentra.

    EventHandlerTemplateData event = null;
    if ( events.length > 0 )
    {
        event = events[0];
    
        // crear un mensaje para el servicio que se va a llamar
        ClientObjectWrapper input = process.createMessage(
        event.getID(), event.getInputMessageTypeName());
                 
        if (input.getObject() != null && input.getObject() instanceof DataObject )
        {
          	DataObject inputMessage = (DataObject)input.getObject();
           // establecer contenido del mensaje, por ejemplo, un nombre de cliente y número de pedido
           inputMessage.setString("CustomerName", "Smith");
           inputMessage.setString("OrderNo", "2711");
         
    	       // enviar el mensaje
           process.sendMessage( event.getProcessTemplateName(),
                                event.getPortTypeNamespace(),
                                event.getPortTypeName(),
                                event.getOperationName(),
    				 input );
         }
     }

    Esta acción envía el mensaje especificado al manejador de sucesos activo para el proceso.


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)