miércoles, 19 de marzo de 2008

External Object – Varias funcionalidades en un solo tipo de objeto

Una cosa que me intriga es saber para cada usuario de GeneXus Rocha cuales son sus 5 funcionalidades preferidas. Seguramente no se repita entre todos los usuarios una misma lista, porque las funcionalidades de la versión Rocha son varias y para todos los gustos. Pero una cosa que si estoy seguro es que en más de una lista el “external object” aparecería.
Todos seguramente en alguna versión anterior de GeneXus se toparon con alguno de los problemas que intentan resolver los “external object”
Por ejemplo:
  • Se que tengos web services en mi KB… se que puedo definir una variable que sea del tipo de algunos de los web services que tengo. Ahora ¿donde están las definiciones de estos web services? ¿Dónde puedo ver que métodos tiene cada uno de ellos y de que URL los estoy usando?
  • Algo similar al punto anterior pasaba con los stored procedures. Para saber que stored procedures tengo los tengo que ver en una lista que se indica en una propiedad. ¿Pero que parámetros y de que tipo tienen esos stored procedures? ¿Cómo le puedo indicar que los parámetros no son todos de inout?
  • Bajé una API que me permite firmar digitalmente un PDF, ¿Cómo tengo que hacer para poder usarlo desde mi modelo Java?... yyyyy podes escribir código Java usando el comando “Java” y luego el código que quieras

En la versión Rocha con los “external object” los problemas anteriores deberían ser parte del pasado. Con los mismos uno puede definir una “interface” que represente o bien un web servcie, un stored procedure, un “native objet” (por ejemplo una clase de Java o .NET) e inclusive se puede definir un Enterprise Java Bean externo para luego poder llamarlo desde GeneXus.


Una vez definido el objeto, se puede invocar al mismo desde cualquier otro objeto definiendo una variable del tipo del external object e invocando a alguno de sus métodos o propiedades.


Adicionalmente se cuenta con inspectores que permiten a partir de un WSDL crear un external object de tipo web service o partir de una clase o paquete externo crear uno o varios objetos externos de tipo “native object”.


Supongamos por ejemplo que se tiene un paquete externo que sirve para obtener información de clientes. Las clases se importan con el importador de clases externas y en GeneXus se crean automaticamente dos external objet con los siguientes métodos y propiedades:



Luego desde otro objeto se puede definir una variable de tipo cliente y una variable de tipo clientes y programar algo así:
Bastante fácil e intuitivo, verdad?

7 comentarios:

Anónimo dijo...

Buena introducción, quienes quieran profundizar más: http://wiki.gxtechnical.com/commwiki/servlet/hwikibypageid?5669

Unknown dijo...

Hola buen día, he leido tu blog y me parece muy interesante, pero me surge una pregunta, ¿se puede llamar una funcion que esta dentro de un paquete pl/sql?, algo como esto pqqt_prueba.seleccionar. Siendo pqqt_prueba, el paquete y seleccionar, la funcion. de antemano te agradezco la ayuda que me puedas dar, de eso depende la eleccion de la herramienta para la compañia en la cual laboro.

Anónimo dijo...

He told her that the watch would stay with her until he came back. The sound of the watch was his fine-sounding words. He promised he would come back and marry her.[url=http://www.good4shopper.com/bvlgari-watches.html]replica bvlgari watches[/url] [url=http://www.watchesize.com]hermes replicas[/url] [url=http://www.sunglassescool.com/salvatore-ferragamo-sunglasses.html]salvatore ferragamo eyewear[/url] Rolex watches are amazing. A gorgeous Rolex watch looks great and stylish. As we all know that Rolex watches are known for its strength and endurance, that's why Rolex watches have a good reputation for so many years. And also you will see the quality and precision reflected in each Rolex watch. So, Rolex is a name that thousands of people had dreamed of.

Anónimo dijo...

Muy buen post, estoy casi 100% de acuerdo contigo :)

Anónimo dijo...

Hola, muy interesante el articulo, muchos saludos desde Argentina!

Anónimo dijo...

Felicitaciones, muy interesante el articulo, espero que sigas actualizandolo!

Anónimo dijo...

Muy ilustrativo.

pero que ocurre cuando el web service no pide un parámetro sino un archivo a ser enviado??

Como se definiría????