miércoles, 22 de febrero de 2012

Evitando que las validaciones ADF afecten a nuestra navegación en WebCenter

En esta entrada os traigo una solución a un error muy común en la integración ADF Bounded Task Flows con aplicaciones de WebCenter Portal.

Enlace a descarga del ejemplo.

El contexto del problema es la siguiente:

  • Nuestro ADF Bounded Task Flow contiene validaciones a ejecutar sobre campos ADF.

    Validación del campo al pulsar el flujo normal del Task Flow
  • Al intentar navegar de una página (que contiene nuestro Task Flow) a otra nos encontramos que no nos deja puesto que se está ejecutando.

    Validación del campo producido al intentar navegar a otra página de WebCenter
¿Por qué no podemos navegar a otra página sin rellenar los campos requeridos?

Esto es debido a qué en el ciclo de vida de ADF se está ejecutando la fase de validaciones sobre los campos.

¿Cómo evitar este problema?

La solución es recubrir los campos a ser validados por un <af:subform> con ello conseguiremos que no participen en el ciclo global de la aplicación y sólo sean validados en el propio Task Flow.

<af:subform> en el fragmento del Task Flow

Otra solución sería cambiar la codificación de la plantilla de página para para poder utilizar el atributo immediate y así poder evitar la fase de validaciones de ADF al navegar (ampliaré la entrada con esta posible solución).

En el ejemplo adjunto a la entrada hay una Bounded Task Flow sencilla que ejecuta la validación numérica sobre el campo. Está el código de la solución comentado en el código para ver la diferencia al descomentarlo. Por ello al ejecutar por primera vez el ejemplo no podréis navegar a la página de Test.

En el ejemplo descargable viene comentado

Ejemplo desarrollado con:
  • JDeveloper 11.1.1.4 con la extensión de Oracle WebCenter PS3.
Referencias:

Un saludo a todos.

martes, 14 de febrero de 2012

Integración de Oracle OAM y WebCenter Portal

Al seguir la documentación oficial de Oracle para integrar Oracle OAM y Oracle WebCenter (en su versión PS3) me encontré que la mayoría de problemas surgen a la hora de integrar con una aplicación de WebCenter Portal. Al seguir la documentación suele darse dos casos.
  1. Al integrar con la aplicación de Oracle WebCenter Spaces, la integración con Oracle OAM se realizaba sin ningún tipo de problema alguno.
  2. Al integrar con una aplicación de Oracle WebCenter Portal, la integración con Oracle OAM parece no conseguirse.
Para solucionar el problema con una aplicación de Oracle WebCenter Portal, además de haber seguido los pasos proporcionados por la documentación, se debe de añadir el método de autenticado a nuestro archivo web.xml.

Configuración de login-cert visual (web.xml)

Configuración de login-cert manual (web.xml)
Con ello lograremos que realmente al realizar el login en el popup estándar de Oracle OAM, también estemos identificados en nuestra aplicación de WebCenter Portal.

Popup estándar de Login de Oracle OAM.

Espero que os haya ayudado.

Referencias:
  • Oracle WebCenter PS3.
  • Oracle OAM 11g.
  • Servidor web. Apache.