sábado 10 de octubre de 2009

Actualizaciones en vivo del OOW y Mi Horario en Demos

Por esta semana los lectores de nuestro blog van a poder tener actualizaciones en vivo de las distintas noticias y pormenores que se den durante el Oracle Open World 09 a través canal de twitter de la Comunidad Hispana Oracle @cohispana. A partir de hoy hasta el próximo Jueves los visitantes al blog tendrán una columna a mano izquierda con las actualizaciones en vivo que se estén dando al canal.

Por otro lado al igual que Rolando aquí les dejo mi horario de los demo grounds que se encuentran ubicados en Moscone West:

Lunes Oct 12:

4.30 p.m – 6.30 p.m. En el booth de JDeveloper

Martes Oct 13:

2.30 p.m – 4.30 p.m. En el booth de ADF Faces

Miercoles Oct 14:

9.15 a.m – 11.15 a.m. En el booth de ADF Faces.

Y algo que les había quedado debiendo este año fue la imagen previa de los preparativos del OOW. Esta es en la casa matriz de Oracle en el auditorio donde los empleados estábamos recogiendo nuestras credenciales de acceso al evento…. miren el tamaño de las personas con relación a la pancarta.

jueves 8 de octubre de 2009

Demogrounds y Hands-on Labs en Open World 2009 - Rolando Carrasco

Para los que tendrán oportunidad de ir al Open World me podrán encontrar el día miércoles 14 en 2 actividades:

  1. Demogrounds de Oracle Fusion Middleware 4 Apps - 11:15-1315
  2. Hands-on Labs - Oracle Fusion Middlewar 4 Apps - 1630-1730

Igualmente estaré en el area del CVC todos los días, ahí me pueden encontrar.

Nos vemos por allá!!!

viernes 18 de septiembre de 2009

La Guía de ADF para el Oracle Open World 2009

Tres semanas nos alejan del Oracle Open World uno de los eventos más grandes a nivel mundial en la industria de tecnología; una semana completa llena de presentaciones, laboratorios, demostraciones y anuncios sobre los avances y el futuro de los productos de Oracle.

Por segundo año consecutivo seré unos de los presentadores del equipo de JDeveloper y ADF para lo cual estoy poniendo el todo por el todo. Para todos aquellos que se encuentren asistiendo a este evento y sean seguidores del blog les dejo en este post el horario de mis presentaciones y mis actividades a lo largo de la semana así como también les dejaré una guía completa de todas las actividades que vamos a tener tanto en el Oracle Develop como en el Open World en torno a ADF.

Las sesiones que estaré liderando son:

Domingo 11 de Octubre

S309420 – Hands-On-Lab: Developing Rich Internet Applications and Rich Enterprise Applications with Oracle ADF Faces

Lunes 12 de Octubre

S312744 – Hands-On-Lab: Developing Ajax-Based User Interfaces with JSF

Martes 13 de Octubre

S309420 – Hands-On-Lab: Developing Rich Internet Applications and Rich Enterprise Applications with Oracle ADF Faces

S307624 – Developing Microsoft Office Front Ends for Enterprise Java Applications

Miércoles 14 de Octubre

ADF Unconference Day – Integrating ADF with SOA (Estoy mirando si le doy otro enfoque a esta presentación)

Aparte de estas sesiones me encontraré también en la zona de los DemoGrounds en el Pod de JDeveloper o en el de ADF Faces para que podamos conversar con más calma. 

Este año tenemos muchas más sesiones formales (agendadas) y también hemos querido tomar la iniciativa de crear un día dedicado a ADF dentro del evento que corre en paralelo llamado el Unconference donde cualquier persona que participe del OOW puede hacer una presentación de manera libre sobre cualquier tema que le parezca interesante.

En el este enlace van a poder tener el listado completo de sesiones de ADF durante el evento.

Así que nos vemos en San Francisco!!!!

martes 25 de agosto de 2009

Un diagrama útil...

Este es un diagrama útil que he creado que les puede ayudar para explicar los conceptos de SOA y BPM.

Igualmente se puede hacer énfasis en las diferentes piezas de una arquitectura como esta:

  • Tecnología de Orquestación y Exposición de Servicios ( Service Bus y BPEL )
  • Tecnología para establecer conectividad con diversos aplications (Adaptadores)
  • Seguridad de Servicios
  • Capa de Análisis y Gestión de Procesos
  • Capa de Monitoreo en Tiempo Real
  • Capa de Gobernabilidad de Procesos y Servicios
  • Gestión y Desarrollo Centralizado
  • Capa de exposición de Aplicaciones Compuestas. Portales y Enterprise 2.0



En términos de Productos de Oracle, estamos hablando de :
  • Oracle BPM
  • Oracle BPA Suite
  • Oracle SOA Suite
  • Oracle Service Bus
  • Oracle Enterprise Repository
  • Oracle Webcenter

Se sugiere hacer la descarga de SOA Suite 11g, pues es una pieza clave para la composición de Servicios. Esto es clave para una arquitectura SOA , pues en verdad te da la posibilidad de componer y gestionar servicios compuestos, no piezas aisladas.

Se sugiere también hacer la publicación del Fusion Order Demo 11g. La pueden encontrar aquí.

viernes 21 de agosto de 2009

Pequeña Guía para trabajar con ADF Swing en JDeveloper 11g

Hace pocos días alguien me pregunto como empaquetar y ejecutar aplicaciones creadas con ADF Swing en JDeveloper 11g. Después de un intento fallido a las carreras, me puse en la tarea de probar este modulo de ADF del cual no se escucha mucho normalmente. Este es un pequeño tutorial que muestra como empaquetar y ejecutar una aplicación sencilla creada con ADF Swing.

Al tener ya un tutorial en ingles para crear aplicaciones en swing, no voy a especificar como crear la aplicación por lo cual nuestro punto de partida es una aplicación lista, con algo de lógica y que corre dentro de JDeveloper11g.

image

Ahora para empaquetar esta aplicación vamos a crear un Deployment Profile. Click derecho en el proyecto –>Project Properties –>Deployment y damos New. El tipo de paquete para una aplicación Swing es jar image No hay mucho mas que dar el nombre al deployment que va a ser el nombre de nuestro paquete. Luego en las propiedades lo único que nos tenemos que asegurar es que en las JAR Options este seleccionado Include Manifiest File (META-INF/MANIFEST.MF) y luego en el Main class seleccionamos la clase de nuestra aplicación que contiene el main. Para este ejemplo basado en el tutorial en ingles el valor es client.Application1

Luego salvamos toda la información y damos click derecho sobre el proyecto –> Deploy –>MyApp–>To jar file.

Y finalmente nos vamos en una ventana de comandos y damos java –jar miAplicación.jar

image

jueves 20 de agosto de 2009

JDeveloper 10.1.3.5 liberado

El día de ayer fue liberada la versión 10.1.3.5 de JDeveloper la cual es una versión de mantenimiento que resuelve bugs abiertos y beneficia a todos aquellos que se encuentran trabajando aplicaciones en FMW 10g. La lista de bugs corregidos se encuentra en el este enlace y el software lo pueden descargar directamente desde OTN.

jueves 6 de agosto de 2009

Filtrando Colecciones de Datos con ViewCriterias Utilizando Programación

Desde las primeras versiones de ADF 11g les había hablado acerca de uno de los componentes de los ViewObjects llamado ViewCriteria a través de los cuales podemos definir sentencias “FindBy” o en otras palabras sentencias para filtrar los datos de una colección con base en uno o más criterios.

En este articulo vamos a ver como trabajar con ViewCriterias utilizando programación para manualmente filtrar los resultados de una colección de datos, producto de una pregunta que se dio en el foro de OTN.

Nuestro punto de partida es una aplicación que tiene sus servicios de negocio basados en Business Components en donde tenemos un VO de Empleados el cual tiene 2 ViewCriterias definidas EmployeeViewCriteria1 y EmployeeViewCriteria2 –la primera filtra los salarios superiores a 10000 y la segunda filtra los empleados que tengan comisión por Ventas asignada (no null). Cabe aclarar que el comportamiento por defecto de las ViewCriterias es que al ser aplicadas van a sobre escribir cualquier otra ViewCriteria que se haya ejecutado previamente, sin embargo también se pueden configurar de tal forma que la ejecución de las mismas sea acumulable.

Lo primero que vamos a hacer es crear algunos métodos propios sobre nuestro VOImpl a través de los cuales vamos a invocar el API de los ViewObjects y de esta forma poder aplicar y remover VCs

    //En la clase EmployeesVOImpl.java
    public void applyVC(String name){
        setApplyViewCriteriaName(name,true);
        executeQuery();
    }
    public void removeVC(String name){
        removeApplyViewCriteriaName(name);
        executeQuery();
    }


Exponemos estos métodos para que hagan parte de las operaciones que se pueden invocar desde la interfaz. Luego necesitamos crear la lógica en la vista para invocar estos métodos y pasar los parámetros adecuados.



Para este ejemplo hemos creado una página sencilla que contiene 4 links – 2 para aplicar las VCs y otros 2 para removerlas.



image



Dentro de cada uno de los links hago uso de la operación setPropertyListener la cual me sirve para asignar el valor de la VC que quiero invocar a una variable dentro de un managed bean. El código de mi página queda entonces de la siguiente forma:



<af:commandLink text="applyVC1" id="cl1"
                actionListener="#{HRTestBean.applyVC_action}">
  <af:setPropertyListener from="EmployeesViewCriteria1"
                          to="#{HRTestBean.criteriaName}"
                          type="action"/>
</af:commandLink>
<af:commandLink text="applyVC2" id="cl1"
                actionListener="#{HRTestBean.applyVC_action}">
  <af:setPropertyListener from="EmployeesViewCriteria2"
                          to="#{HRTestBean.criteriaName}"
                          type="action"/>
</af:commandLink>


Dentro de mi managed bean todo lo que tengo que hacer es invocar el método respectivo por medio del OperationBindingContainer.



public class HRTestBean {
  
  public String criteriaName;
  
  public HRTestBean() {
  }
    public void setCriteriaName(String criteriaName) {
        this.criteriaName = criteriaName;
    }
    public String getCriteriaName() {
        return criteriaName;
    }
    public void applyVC_action(ActionEvent actionEvent) {
       executeCriteria("applyVC");
    }
    public void removeVC_action(ActionEvent actionEvent) {
        executeCriteria("removeVC");
    }
    
    public void executeCriteria(String name){
        String cName = getCriteriaName();
        BindingContext bctx = BindingContext.getCurrent();
        DCBindingContainer bc = (DCBindingContainer)bctx.getCurrentBindingsEntry();
        OperationBinding opb = (OperationBinding)bc.getOperationBinding(name);
        opb.getParamsMap().put("name",cName);
        opb.execute(); 
    }
}


Y finalmente asigno un partialTrigger a mi tabla para que se refresque cada vez que doy click a uno de los links.