Incluir código externo en una KB GeneXus

Existen varias formas de incluir código nativo (java, C#) en aplicaciones Genexus.

Método 1)

Cuando se tiene que ponder algo de codigo especifico, unas pocas lineas de codigo, conviene usar los comandos para incluir codigo fuente dentro del codigo Genexus.

Método 2)

Hay casos, en que conviene desarrollar un Objeto Externo Nativo, cuando se necesita una funcionalidad mas compleja y el codigo es mas largo. Hay que crear un proyecto con Visual Studio o Eclipse y crear una dll o class para poder importarla en GeneXus.

Existen casos, en que solo tengo que incluir un bloque de código, pero es incomodo usar cualquiera de las opciones anteriores. Como son varias lineas de codigo no es practica el metodo 1, porque Genexus muchas veces no maneja correctamente los paréntesis en los código externo. Y como es poco código, el costo de mantener un proyecto externo, es demasiado solo para tener algunas lineas de código.

Método 3)

Este es un metodo *no recomendado*, pero que funciona. Es aplicable cuando tengo algunas decenas de lineas de codigo que quiero tener a mano en la KB, sin tener un proyecto externo.

Yo lo hago de esta forma

Creo un objeto procedure GeneXus que se llame ProgramaExterno y le pongo la regla con los parámetros necesarios por ejemplo:

parm(IN:&ParametroEntrada, OUT:&ParametroSalida). //ajustarlo poniendo nombre y tipo de parametros necesarios.

En el código se pone y va a ser sustituido:

//Este es el codigo que va a ser sustituido.
Msg("ACA VA EL CODIGO")
//Esto es para saber con que nombre queda el parametro de entrada en el fuente generado.
Msg(&ParametroEntrada.tostring())
//Esto es para saber con que nombre queda el parametro de salida
Msg(&ParametroSalida.ToString())



Salvo el objeto y lo especifico y genero.

Esto va a generar un archivo ProgramaExterno.java o ProgramaExterno.cs, que tiene los parámetros deseados y que Genexus lo puede llamar sin errores.

Luego se borra el objeto ProgramaExterno, pero no borrar el fuente generado.

En el código se invoca como programa externo

call("ProgramaExterno", &ParametroEntrada, &ParametroSalida)


y va a estar incluyendo ese archivo en el programa.

Ahora, solo falta editar el ProgramaExterno.java o .cs y buscar donde dice "ACA VA EL CODIGO" y ponerle el código nativo deseado, usando el nombre de variables de los parámetros de entrada y salida.

Luego que todo este funcionando, conviene subir archivo ProgramaExterno.java o cs como archivo autoextraible de la KB, para no perderlo.

Comentarios

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.