Posts

Showing posts with the label ADF 11g R1

Multilenguaje en una WebCenter Framework Portal

Image
Hace tiempo publiqué una solución de multidioma basada en un ADF Phase Listener. Sin embargo, esta solución tuvo ciertos bugs y problemas que me hicieron retirarla del Blog . Plntilla por defecto con cambio de Idioma Enlace a la versión en inglés No me he olvidado de ello y ahora presento una nueva solución y aquí la traigo :). Esta solución resuelve los siguientes paradigmas del multidioma: Traducción de literales del portal. Traducción de los Navigation Resource del Navigation Model según la Locale actual. Se basa en: Una solución de multidioma basada en preferencia de usuario (Cookie). Un ADF Phase Listener para la invalidación del Navigation Model .   Filtro y Cookie de preferencia de usuario Implementación de un Java Filter que sobreescribirá las Locales permitidas según la Locale actual. Se apoya en un RequestWrapper para la sobrescritura de estas Locales . Por defecto, el lenguage es inglés. public final class LocaleFilter implements Filter { ...

ADF11gR1: Task Flow ejecutados en Dialogo/Popup

Image
Hay dos modos de ejecutar un Task Flow en popup. Versión en inglés Generando la Bounded Task Flow basada en páginas JSPX en lugar de fragmentos JSFF. Con ello se consigue que el Task Flow pueda ser llamado como diálogo en una actividad de otro Task Flow . Task Flow invocado como inline-popup Usando la Bounded Task Flow como Region dentro de un af:popup Ventajas e Inconvenientes de cada solución Solución basada en TF-Call JSPX Ventajas: Se puede utilizar el framework de ADF para llamar en módo diálogo el Task Flow. El Task Flow puede devolver valores a su vuelta usando el Return Values . Inconvenientes: Mayor dificultad para aplicar estílos específicos al Diálogo/Popup. El Task Flow no puede ser embebido como Region . Solución basada en Region embebida en un af:popup Ventajas: Se puede reutiliz...

Migrando los ejemplos a GitHub

Image
Para evitar pérdidas de código asociado a algunos de los ejemplos he abierto mi propio repositorio de GitHub donde dejaré el anterior y futuro código que postee por el blog. Repositorio GitHub con los ejemplos Mientras no esté todo migrado a https://github.com/DanielMerchan los enlaces seguirán bajando los ejemplos de Dropbox. Un saludo.

af:panelTabbed, Task Flows y WebCenter Portal

Image
Los Task Flow en ADF 11gR1 (framework en el cual se basa WebCenter Portal 11g) se cargan de manera secuencial. Esto significa que hasta que el último Task Flow no finaliza su primera actividad la página no es renderizada. Existe un truco del ATEAM para simular un Lazy Loading de los Task Flows . http://www.ateam-oracle.com/improving-adf-page-rendering-time/ Existe un número mágico que dice de no tener más de 8 Task Flows por página. En numerosas ocasiones, estos Task Flows se encuentran en componentes af:panelTabbed separados por pestañas. El problema reside en que todos los Task Flows (incluyendo las pestañas no visibles) ejecutarán todos los Task Flows que contengan. Ejecución de los 3 Task Flows aunque los otros dos no se vean   Cómo ejecutar solo los componentes de la pestaña actual ? Configuración de la activación de los Task Flows Andrejus explica como configurar la propiedad de Activation de los Task Flow. Con esta propiedad se puede controlar la activación y...

Mantenimiento: Purgado y Fragmentación

Image
A la hora de mantener los entornos WebCenter (Content, Portal) limpios y con un rendimiento óptimo hay que tener en cuenta, además de los sistemas de caché y configuraciones optimizadas, el sistema de purgado y limpieza de las bases de datos sobre las que se ejecutan. Aquí se recogen algunos (no todos) que hay que tener en cuenta en entornos productivos. Versión en inglés ADF Framework El framework de ADF usa dos tablas llamada PS_TXN y PCOLL_CONTROL para guardar el estado, la sesión y en general la pasivación de los datos cuando se usa ADF Business Components . Además hace uso de una secuencia llamada PS_TXN_seq . Tabla PS_TXN Para mantener las aplicaciones Fusion Middleware en recomendable la configuración de un Job periodico que realize el purgado de estas tablas. Por ejemplo cada día. Las PL/SQL de purgado pueden ser encontradas (en caso de desarrollos con WebCenter y JDeveloper 11gR1) en el [JDEV_MIDDLEWARE_HOME]/oracle_common/modules/oracle.adf.model_11.1.1/bc4jcle...

WebCenter Portal Task Flows: Parametros de entrada de tipo Boolean

Image
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...

Cambiando el mensaje de incompatibilidad de Navegador

Image
Encontré en el foro de OTN una pregunta acerca de como cambiar el mensaje por defecto de ADF 11g R1 correspondiente con la incompatibilidad del navegador utilizada. Mensaje de ADF 11gR1 corriendo en IE con Compatibily View Mode Mensaje sobreescrito con ADF Skinning Hilo en el foro de WebCenter Portal Versión en inglés (coming soon) Indagando por las librerías internas del core de ADF encontré el siguiente fragmento de código en el DocumentRenderer (el renderizador del componente af:document de ADF): if (checkAgentSupport)      {        String unsupportedAgentMessage = arc.getTranslatedString (" AFUnsupportedBrowser ");        out.writeText("AdfAgent._UNSUPPORTED_BROWSER_ALERT=\"", null);        out.writeText(unsupportedAgentMessage, null);        out.writeText("\";", null);  }   La variable arc no es mas que una instancia de org.apache....

Oracle WebCenter EMEA Partner Community Forum

Image
VASSIT Services LTD del Grupo VASS participó en:            Oracle WebCenter EMEA Partner Community Forum Presentando las soluciones WebCenter En él presentamos algunas de nuestras soluciones/extensiones de los producto creadas por el equipo de especialistas de Oracle WebCenter de VASS España y VASSIT UK. WebCenter Internazionalization Module Módulo que gestiona la traduccion de contenidos y literales. Además, facilita al usuario final la contribución de contenidos en distintos idiomas sin tener que preocuparse de nomenclaturas. Este módulo está formado por dos piezas principales: WebCenter i18n Module: Permite la traducción de contenidos desde Site Studio / Oracle WebCenter Portal y Spaces ó directamente desde Oracle WebCenter Content con una intuitiva interfaz. Labels management: Se encarga de la gestión de literales de los sitios de Site Studio y portales de WebCenter permitiendo su gestión desde una aplicación...

ADF 11g: Importación y exportación de ficheros CSV

Image
Una de las funcionalidades requeridas suele ser la importación/exportación de información de base de datos en un archivo CSV. Link to english version. Link to download sample application. (Broken Link) CSV Sample file En esta solución se hace uso de un código sencillo y genérico usando cualquier iterador ( DCIteratorBinding) configurado en la vista para extraer/importar información independientemente de el número y nombre de las columnas de la tabla de base de datos sobre la que itera. El ejemplo contiene la siguiente configuración: Esta preparado y habilitada la carga de ficheros. Esta configuración  se consigue configurando Trinidad en web.xml y habilitando la subida de ficheros en el tag af:form. Configuración: web.xml Habilitar la subida de ficheros. El Task Flow contiene un Manage Bean (CSVProcessor) encargado de la gestión de los ficheros CSV y de los mecanismos de importación/exportación: Posee una variable inyectada y configurable para establecer el...