lunes, 13 de enero de 2014

WebCenter Portal Task Flows: Parametros de entrada de tipo Boolean

Customizando los Task Flow de WebCenter Portal puede requerir añadir nuevos parámetros de entrada.

English version

En este caso hablamos de los parámetros de tipo java.lang.Boolean.

¿Qué ocurre cuando añadimos un parámetro de tipo Boolean?

Parámetro adherido de tipo Boolean
Cuando adhieres un parámetro de tipo Boolean se mostrará mediante Oracle Composer como un Checkbox por lo que parece que todo va correcto.

Parámetro Boolean en Content Presenter

Sin embargo, cuando se intenta utilizar el valor de éste parámetro en, por ejemplo, un Router en el Task Flow. Se producirá el siguiente error:

<Jan 10, 2014 11:52:12 AM CET> <Error> <oracle.adf.controller.internal.binding.TaskFlowRegionModelViewPort> <BEA-000000> <
oracle.adf.controller.activity.ActivityLogicException: ADFC-06008: Router case expression '#{pageFlowScope.analytics}' does not evaluate to a boolean.


¿Por qué ocurre este error? 
Si se observa los valores registrados en el MDS se verá que almacena para el parámetro los siguientes valores:

Registro del nuevo parámetro en MDS
  • ${'true'}
  • ${'false'}
Estos valores son interpretados como String.

¿Como solucionarlo?
La solución se basa en la de tener un Managed Bean con una variable de tipo java.lang.Boolean y mapear / enlazar esta propiedad al valor del parámetro de entrada del Task Flow.

Clase Java para mapear el valor del parámetro de entrada


Parámetro de entrada mapeado a propiedad de Manage Bean
 Al realizar esto la conversión será a Boolean y no habrá problemas para usar el parámetro dentro de Routers.