Llego el Oracle Open World 2008 - Mi Horario

0

La hora de la verdad ha llegado, OOW 2008 está a punto de comenzar. Va a ser una semana en donde vamos a desayunar, almorzar y cenar Oracle. San Francisco se viste de rojo y blanco para darle la bienvenida a los mas de 40 mil asistentes que se esperan recibir en esta edición del evento.

Ojala pueda encontrar a lectores de este blog que estén asistiendo al evento, siempre es bueno ver que hay una persona de carne y hueso al otro lado de la pantalla. Este es mi horario para el OOW 08

Domingo 21 - (Si empezamos desde temprano la semana)

13:15-14:15 Marriott Golden Gate C1 Hands-on Lab: Oracle Fusion Development--Creating Web User Interfaces

Lunes 22

10-12 Demo Grounds A28 - Rich Internet Applications

13-15 Demo Grounds A25 - JDeveloper

17:30-18:30 Marriott Golden Gate C1 Hands-on Lab: Oracle Fusion Development--Creating Web User Interfaces

Martes 23

16:00-17:00 Marriott Salon 05 - S298715-MS Office Front Ends for Oracle Application Development Framework Applications: Intro to Oracle ADF Desktop Integration

Miercoles 24

9 - 10:30 Open World Unconference - ADF Methodology for the masses

11-13:30 Demo Grounds A28 - Rich Internet Applications


El Detras de Camaras de Oracle Open World 08

0

A 2 semanas del inicio de Oracle Open World 08, estamos alistando todo para que este evento que atrae cerca de 45 mil personas de todas partes del mundo sea un éxito. Y para la muestra  un botón, esta es una de las salas donde se están alistando los equipos para los demo grounds, cerca de 1000 mil equipos entre laptops, servidores, etc....impresionante.

PIC-0001

Para aquellos que están viniendo, recuerden que tenemos Oracle Develop, un evento dedicado para los desarrolladores con más de 130 sesiones técnicas en tecnologías Oracle. 75 Hands-On-Labs y más de 25 sesiones sobre ADF. Una de las sesiones que no se pueden perder es :

S298715 Building MS Office front ends for ADF applications- An Introduction to ADF Desktop Integration

Pre-regístrese ahora para que así asegure su cupo. En los próximos días esperen más noticias sobre el OOW.


Set de caracteres en mensajes de Web Services...

2

En muchas ocasiones cuando se están usando Web Services es necesario transmitir en los mensajes caracteres como ñ, &, #, etc. que están contenidos en el set de caracteres UTF-8.

Esto se puede resolver simplemente especificando en el encabezado de los esquemas de XML el set que se quiere ocupar, es decir:

<?xml version="1.0" encoding="UTF-8"?>

Pero cuando inclusive definiendo ésto a nivel de los XSDs, WSDLs tampoco se pueden transmitir dichos caracteres, se sugiere (en equipos UNIX) declarar la variable LANG y reiniciar el servidor de aplicaciones que se esté usando.

Por ejemplo:

LANG=en_US.UTF-8

opmnctl stopall

opmnctl startall


El Rincón del Código para ADF

1

Pese a que había accedido a muchos de los artículos directamente, no había podido encontrar la página principal del  ADF Code Corner, afortunadamente y gracias al articulo publicado por Frank en el nuevo blog del equipo de Developement Tools, me fue posible encontrar el acceso.

Como se explica en el artículo, cualquier persona puede aportar artículos al rincón del código, la diferencia es que estos son un poco más formales que un artículo de blog. Para publicar un artículo lo único que requiere es obtener la plantilla y enviar el articulo a Frank.

Por este lado ya deje el enlace en la sección de Links Relacionados.


Entrenamiento de 5 dias para Partners en ADF 11g

0

Como anunció Shay en su blog. Para todos los que trabajen en compañías Partners de Oracle y quieran tener un entrenamiento avanzado en ADF 11g, compren sus tíquetes para San Francisco para la semana del 27-31 de Octubre. Nos vemos en la Casa Matriz de Oracle (aka Headquarters). Aquí pueden encontrar más información al respecto.

Si están asistiendo al entrenamiento no duden en contactarme, podríamos realizar una cena con todo el grupo y extender los lazos de amistad entre la comunidad Hispana de ADF.


Finalmente el Patchset 10.1.3.4 para SOA Suite fué liberado

0

Al igual que indicó Juan que JDEV 10.1.3.4 había sido liberado, el parche para llegar a 10.1.3.4 en Oracle AS y Oracle SOA Suite también fué finalment liberado y está disponible en otn.oracle.com

Este parche además de contener las soluciones a bugs tiene características nuevas sobre productos como BPEL PM y Oracle ESB.

Si ustedes tienen una instalación de SOA Suite 10.1.3.1 o bien sólo de BPEL PM 10.1.3.1 o ESB 10.1.3.1 pueden aplicar este parche directamente y así en un solo paso estar actualizando toda la plataforma.

Se recomienda también hacer uso de SOA Suite 10.1.3.4 con JDEV 10.1.3.4, así tanto tiempo de diseño como de ejecución estarán actualizados.



Pasando Parámetros a una Página desde un Bean

1

El requerimiento es que se quiere pasar algún tipo de información a la Interfase del Usuario, esta información es generada a través de un Bean. La idea es que en el momento que la página sea desplegada se presente la información.

En este ejemplo vamos a crear un Bean llamado myTest el cual contiene un método que retorna una cadena de caracteres. El objetivo es utilizar este método para asignar el título a una página. El codigo del Bean es:

public class MyTest {
    public MyTest(){
    }
        public String retornaCadena(String myString){
            String result = "Navegando en el Departamento: "+myString;
            System.out.println(result);
            return result;
        }
}DataControl

Luego creamos un Datacontrol para este bean el cual nos va permitir hacer el binding a este método. Esta no es la única forma en que podemos exponer la lógica para las interfaces, podríamos también empaquetar este bean y su data control dentro de un archivo JAR e importarlo en otros proyectos, esto nos va a permitir visualizar el Data control de la misma forma.

 

A continuación creamos un par de proyectos, uno para los serviciPaginaInicialos (lógica de negocio) y otro para el UI. Por el lado de los servicios para este ejemplo vamos a crear Business Components para la tabla Departments del esquema HR. Para la interfase de usuario creamos una nueva página JSF y adicionamos un panelHeader y una forma de lectura (Read Only Form) con opciones de navegación del Departamento.

methodBinding Para asignar el encabezado del panelHeader utilizando el método, vamos al tab de bindings, creamos un nuevo MethodAction binding donde seleccionamos le método del datacontrol y al parámetro de entrada vamos a utilizar el binding del nombre del departamento.

Este binding requiere de algún ejecutable para poder ser invocado por lo cual creamos también un nuevo ejecutable de tipo invokeAction, buscamos el methodBinding que acabamos de crear y damos un id cualquiera. Una vez lo hayamos definido ajuste la propiedad de refresh de este ejecutable a ifNeeded, esto hace que cada vez que naveguemos a otro departamento el método va a ser ejecutado.

Finalmente para asignar el encabezado tenemos que crear un variableIterator en los ejecutable que mapee la variable de retorno del método y un attributeValue binding. Sin embargo esta parte la podemos hacer de manera automática si dentro de la página arrastramos y soltamos el valor de retorno del método y lo mapeamos como un outPutText, luego si volvemos a los bindings vamos a poder ver la estructura creada de esta forma:resultado

 

 

 

 

El código objetivo en el pageDef es:

<executables>

...
    <invokeAction Binds="retornaCadena" id="invocaMetodo" Refresh="ifNeeded"/>
    <variableIterator id="variables">
      <variable Type="java.lang.String" Name="retornaCadena_Return"
                IsQueriable="false" IsUpdateable="0"
                DefaultValue="${bindings.retornaCadena.result}"/>
    </variableIterator>
  </executables>
  <bindings>
...       

<methodAction id="retornaCadena" InstanceName="MyTest.dataProvider"
                  DataControl="MyTest" RequiresUpdateModel="true"
                  Action="invokeMethod" MethodName="retornaCadena"
                  IsViewObjectMethod="false"                  ReturnName="MyTest.methodResults.retornaCadena_MyTest_dataProvider_retornaCadena_result">
      <NamedData NDName="myString" NDValue="${bindings.DepartmentName}"
                 NDType="java.lang.String"/>
    </methodAction>
    <attributeValues IterBinding="variables" id="Return">
      <AttrNames>
        <Item Value="retornaCadena_Return"/>
      </AttrNames>
    </attributeValues>
  </bindings>

Para finalizar en la propiedad Text del panelHeader ya podemos hacer el binding del resultado del método #{bindings.Return.inputValue} y tendriamos como página terminada

resultadoFinal

Este ejemplo aplica cuando se quiere determinar de manera dinámica los strings de una página a través de un ResourceBundle o también enviar valores calculados bajo cierta lógica.


ROI de BPM

0

En los últimos días he estado platicando con 2 clientes que tienen inquietud sobre el ROI que uno puede presentar al comité para justificar una inversión sobre tecnlogía BPM.

Me llegó este artículo a mi email que puede ser interesante para todos:

http://www.ebizq.net/hot_topics/bpm/features/9958.html?page=1

En Oracle existe una herramienta para hacer assesments sobre SOA, que igualmente es ideal para tener un sustento para justificar internamente, ésta la pueden encontrar en: http://www.oracle.com/soa


Los Tipos de Listas de Valores y Algunos Tips

1

En estos días estuve trabajando con un requerimiento de un proyecto en el cual detectamos algunas características especificas de las listas de valores en JDev11g, a partir de lo cual decidí crear esta entrada. Dado que en post anteriores ya he presentado las bases en como crear las listas de valores, en este articulo voy a explicar brevemente los distintos tipos que se tienen en JDev11g, así como también algunos tips para trabajarlas.

Vamos a presentar los distintos Departamentos de una organización como una lista de valores; internamente el atributo que nos interesa es el ID del departamento (departmentId), sin embargo para el UI la idea es presentar el nombre del mismo (departmentName).

Types

Los tipos que tenemos desde el Modelo en el cual definimos la lista son:

Choice List y Combo Box: Es la opción a elegir para obtener un af:selectOneChoice o la lista de valores tradicional. La unica diferencia es que con combo boxes se puede tener un historial de los elegidos previamente.

ComboBox with List of Values: Esta opción se renderiza como un af:inputComboboxListOfValues esta lista de valores se puede presentar directamente como un look and feel más AJAX, o también tiene la funcionalidad automática de presentar un componente de busqueda. comboInput

Muy util para cuando se requiere hacer un query sobre otra tabla para obtner este valor. Una característica de esta lista es que si en un backing bean hacemos ejecutamos getValue(), esta lista nos va a devolver por defecto el número correspondiente a la posición, más no el ID. Si queremos obtener el valor, en el binding de la lista ajustamos la propiedad includeSelectionAttr

binding

Input Text with List of Values: Parecido al anterior pero en este caso el UI se presenta como una lupa de busqueda, renderiza como un af:inputListOfValues, la cual puede activar una busqueda o puede hacer un query directo a la fuente de datos, si se quiere hacer la busqueda sobre otra tabla, es ideal.

inputTextWListList Box: Presenta la lista dentro de una caja de opciones, ideal cuando se quiere seleccionar más de un valor. Se renderiza como un af:selectOneListBox.

listBox

 

Estas presentaciones de listas pueden también ser intercambiadas en la interfaz gráfica así como también los tipos de bindigs, de las mismas.  Para cambiar una lista desde la interfaz, solo basta con ir a la estructura, seleccionar la lista de valores, click derecho y hacer click en Convert. Esto también se puede hacer directamente sobre el diseñador gráfico.

Otro de los elementos que se puede configurar desde la definición a través del VO es la opción de búsqueda. Esta opción permite crear un pop-up para realizar una búsqueda la fuente de datos de la lista (lo cual puede ser otro VO y en este caso lo que se hace es ejecutar el query con base en ciertos parámetros.

El o los valores que se retornan, una vez se escoge un elemento de la lista es también configurable, lo cual es una opción es muy útil si requerimos asignar más de un valor sobre atributos del VO base.

returnValues 

El binding de las listas de valores puede ser de 2 tipos List binding o ListOfValue binding. El segundo nos da una serie de opciones avanzadas para configurar el comportamiento de la lista, normalmente de acuerdo como se defina la lista desde el VO este binding se hace de manera automática, sin embargo a través del PageDef podríamos cambiar entre uno y otro.


Post navigation