Envío de un mensaje a una actividad en espera

Las actividades de obtener (también conocidas como actividades de recibir y elegir) y de recibir pueden utilizarse para sincronizar un proceso en ejecución con sucesos del "mundo exterior". Por ejemplo, la recepción de un correo electrónico de un cliente como respuesta a una petición de información puede considerarse uno de estos sucesos.
  1. Liste las plantillas de servicios de actividades que están a la espera de un mensaje del usuario conectado.
    QueryResultSet result =
       process.query("ACTIVITY_SERVICE.VTID,ACTIVITY.ATID", 
                     "ACTIVITY.STATE=ACTIVITY.STATE.STATE_WAITING AND
                      ACTIVITY_SERVICE.PORT_TYPE='Confectionery' AND
                      ACTIVITY_SERVICE.OPERATION='OrderRequest' AND
                      WORK_ITEM.REASON=WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                      null, null, null);
  2. Envíe un mensaje.

    El llamante debe ser un propietario potencial de la actividad que recibe el mensaje o un administrador de la instancia de proceso.

    if (result.size() > 0)
    {
      	result.first();
      VTID vtid = (VTID)result.getOID(1);
      ATID atid = (ATID)result.getOID(2);
      ActivityServiceTemplateData activity = process.getActivityServiceTemplate(vtid,atid);
    // crear un mensaje para el servicio que se va a llamar
      ClientObjectWrapper message =
            process.createMessage(vtid,atid,activity.getInputMessageTypeName()); 
      DataObject myMessage = null;
      if ( message.getObject()!= null && message.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)message.getObject();
        //establecer las series del mensaje, por ejemplo, se va a realizar un pedido de chocolate
        myMessage.setString("Order", "chocolate");
      }
    
      // enviar el mensaje a la actividad que está en espera
      process.sendMessage(vtid, atid, message);
    }

    Esta acción envía el mensaje especificado al servicio de actividades en espera y se pasarán algunos datos del pedido.

    También puede especificar el ID de instancia de proceso para asegurarse de que se envía el mensaje a la instancia de proceso especificada. Si no se especifica el ID de instancia de proceso, se envía el mensaje al servicio de actividades y a la instancia de proceso que identifican los valores de correlación del mensaje. Si se especifica el ID de instancia de proceso, se comprueba la instancia de proceso que se ha encontrado utilizando los valores de correlación para asegurarse de que tiene el ID de instancia de proceso especificado.

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)