Habilitación de portlets de proceso comercial que utiliza el modelo de portlet Básico

Los portlets creados utilizando la opción de modelo de generación de código Básico necesitan habilitación adicional para manejar procesos comerciales.

Al crear un portlet de proceso comercial utilizando el asistente Proyecto de portlet nuevo o el asistente Portlet nuevo, puede especificar un modelo de portlet Faces o Básico para generar código para la iniciación de procesos o el proceso de tarea. Sin embargo, en el caso de un portlet Básico, una vez que el asistente haya generado el código base, hay pasos adicionales que debe realizar para habilitar el portlet de proceso comercial.
  1. Para habilitar un portlet de iniciación de proceso, siga estos pasos:
    1. Cree la interfaz de usuario para un mensaje de entrada en el archivo de JSP de portlet. Por ejemplo, añada un código <form> con códigos <input> para el mensaje de entrada y un URL de acción.
    2. Implemente processAction() (API JSR 168) o actionPerformed() (API de portlet de IBM) para almacenar los valores de parámetro de petición en las partes correspondientes del mensaje de entrada.
      Nota: Si el mensaje de entrada tiene componentes de mensaje que son tipos complejos, los parámetros de petición deben almacenarse en un tipo complejo creado y almacenado en la parte del mensaje correspondiente. Consulte el ejemplo siguiente.
    3. Llame a initiateProcess() en processAction() (API JSR 168) o actionPerformed() (API de portlet de IBM.) Por ejemplo:
      public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {
        if( request.getParameter("initiateProcess") != null ) {
          PortletSession session = request.getPortletSession();
          Map inputMessage = (Map)session.getAttribute(ProcessInitiationHelper.PROCESS_INPUT_MESSAGE);
          inputMessage.put("Destination", request.getParameter("Destination"));
          inputMessage.put("StartDate", request.getParameter("StartDate"));
          inputMessage.put("Reason", request.getParameter("Reason"));
          FlightReservation flightReservation = new FlightReservation();
          flightReservation.setStartdate(request.getParameter("FlightReservation.startdate"));
          flightReservation.setStarttime(request.getParameter("FlightReservation.starttime"));
          flightReservation.setEnddate(request.getParameter("FlightReservation.enddate"));
          flightReservation.setEndtime(request.getParameter("FlightReservation.endtime"));
          flightReservation.setSourceairport(request.getParameter("FlightReservation.sourceairport"));
          flightReservation.setDestinationairport(request.getParameter("FlightReservation.destinationairport"));
          flightReservation.setAirline(request.getParameter("FlightReservation.airline"));
          flightReservation.setSeatclass(request.getParameter("FlightReservation.seatclass"));
          inputMessage.put("FlightReservation", flightReservation);
          Employee requestor = new Employee();
          requestor.setId(request.getParameter("Requestor.id"));
          inputMessage.put("Requestor", requestor);
          ProcessInitiationHelper helper = getProcessInitiationHelper(request);
          helper.initiateProcess();
        }
      }
  2. Para habilitar un portlet de proceso de tareas, siga estos pasos:
    1. Cree interfaces de usuario para los mensajes de entrada y de salida en el archivo JSP de portlet. Por ejemplo, añada un código <form> con códigos <input> para el mensaje de entrada y un URL de acción.
    2. Implemente processAction() (API JSR 168) o actionPerformed() (API de portlet de IBM) para almacenar los valores de parámetro de petición en las partes correspondientes del mensaje de salida.
      Nota: Si el mensaje de entrada tiene componentes de mensaje que son tipos complejos, los parámetros de petición deben almacenarse en un tipo complejo creado y almacenado en la parte del mensaje correspondiente.
    3. Llame a processTask() y, opcionalmente, a closePage(), en processAction() (API JSR 168) o actionPerformed() (API de portlet de IBM.) Por ejemplo:
      public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {
        TaskProcessingHelper taskProcessingHelper = getTaskProcessingHelper(request);
        if (taskProcessingHelper != null)
          taskProcessingHelper.receivePageContext(request);
        if( request.getParameter("processTask") != null ) {
          PortletSession session = request.getPortletSession();
          Map outputMessage = (Map)session.getAttribute(TaskProcessingHelper.TASK_OUTPUT_MESSAGE);
          outputMessage.put("Worker", request.getParameter("Worker"));
          outputMessage.put("managerApproved", new Boolean(request.getParameter("managerApproved") != null));
          taskProcessingHelper.processTask();
          taskProcessingHelper.closePage(request, response);
        }
      }
Conceptos relacionados
Clases de ayuda de iniciación de proceso
Clases de ayuda de proceso de tareas
Tareas relacionadas
Creación de un proyecto de portlet de proceso comercial
Desarrollo de portlets de proceso empresarial
Añadir acceso a datos a portlets de proceso comercial
Referencia relacionada
Biblioteca de documentación de WebSphere Portal

(C) Copyright IBM Corporation 2002, 2005. Reservados todos los derechos.