sábado, marzo 29, 2014

Algo Util - Codigo externo en aplicaciones GeneXus

En algunas oportunidades, es necesario invocar a codigo externo para la realizacion de tareas
que con Genexus es dificil (o imposible) de realizar.
La idea de esta pagina es especificar los diferentes casos y en la medida que sirva generar objetos
externos o incorprar la funcionalidad a GeneXus.

    Try/Catch
Para programas que pueden lanzar alguna excepción y se necesita controlar,
se agrega sentencias para capturarlas y manejarlas.

    Variables de ambiente/propiedades.

Recuperar el valor de una variable de ambiente del sistema operativo.
Es util para grabar en directorios temporarios o en directorio del usuario para guardar algun documento.



java [!&dirtmp!]=System.getProperty("TMP"); 
 // esto se pasa con -D al invocar a java.
csharp [!&dirtmp!]= Environment.GetEnvironmentVariable("TEMP");
java [!&fileseparator!] = System.getProperty("file.separator");   
// para diferenciar Windows y Linux en el separador de directorios.



    Chequeo de propiedades de archivos.

En el caso de imagenes, recuperar la resolución, tipo, cantidad de colores, etc.

    Recuperación de datos de directorios.


Es necesaria recuperar los archivos de un directorio, ordenado por fecha de recepcion.
El tipo de datos Directory solo posibilita traer los archivos del directorio ordenados por nombre del archivo.
Recuperar todos y despues recuperar la fecha de modificacion y ordenar puede ser lento. 

    Leer/grabar una puerta serial

Ejemplo de esto puede ser para usar modems, envio de SMS, recepci

    Mandar un error a System.err

    Redireccionar System.err a un archivo.

    Obtener el directorio donde esta instalada una aplicacion


java [!&Path!] = httpContext.getDefaultPath();   
csharp [!&Path!] = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); // Win exe 

csharp String url = new Uri(Context.Request.Url, ResolveUrl("~")).ToString(); 
csharp [!&Path!] = url;  //web


    Listar el contenido de un directorio ftp.
    Comprimir y descomprimir archivos. (ZIP/UNZIP)
    Firmar / Verificar Firma digital en archivos XML (se esta trabajando en un objeto externo para hacer esto).

Ver Cryptography in GeneXus

    Recuperar informacion de los procesos ejecutando en la maquina.


    Wrapper de Webservices,
    Cuando el WSDL Inspector no puede importar correctamente la derfinicion de un Web Service.
En muchas oportunidades no se puede utilizar algun webservice definido en
otras herramientas pues utiliza algun tipo de datos no soportado correctamente por
Genexus o porque tiene definicion complicada.
En estos casos hay que usar herramientas nativas de java o Visual Studio y con eso se generan webservices
intermedio que pueden ser utilizados con GeneXus.

    Recuperar el nombre del Servidor donde estoy ejecutando

    Hacer un Pop.up en aplicacion windows.

Una aplicacion windows que ejecuta en background y ante determinado evento despliega un popup en la taskbar.

    Manipulacion de imagenes.

Crop / Grabar imagenes en diferentes resoluciones y tamaños..
Ver Image Tools


Ver Image Tools





Fuente: articulo original 

No hay comentarios: