Codigo externo en aplicaciones GeneXus

Unofficial Content

 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