Tools
FileSizeToString
Propósito
Obtener el tamaño de un archvo en formato amigable.
Sintaxis
FileSizeToString( in:&Bytes, out:&Text)
- &Bytes: Tamaño en bytes.
- &Text: Tamaño en formato texto amigable.
Ejemplo
FileSizeToString( 1025) // 1 KB
FriendlyTimeDiff
Propósito
Retorna la diferencia de tiempo en formato amigable.
Sintaxis
FriendlyTimeDiff( in:&DTFrom, in:&DTTo, out:&Text)
Ejemplo
FriendlyTimeDiff( in:&DTFrom, in:&DTTo, out:&Text)
GUIDGenerate
Propósito
Obtiene en un string representando un GUID.
Ya en la GxEv2 se disponemos del tipo de datos GUID para generar estos. Este procedimiento viene de tiempo atrás pero es útil en algunos casos.
De todas formas, para generar el GUID se utiliza el nuevo tipo de datos.
Para más información:
http://wiki.genexus.com/commwiki/servlet/wiki?GUID
http://wiki.genexus.com/commwiki/servlet/wiki?GUID+data+type
Sintaxis
GUIDGenerate ( Bool-in:&IncludeHyphens, Character-out:&GUIDStr)
- &IncludeHyphens: Incluye guiones.
Retorno:
&GUIDStr : Variable de tipo Character representando un GUID.
Ejemplo
&GUIDStr = GUIDGenerate(true)
// Resultado: “b7e69de0-b17d-48ad-9fcb-7e678985a6e0”
MessageAdd
Propósito
Agrega un texto a una colección de mensajes.
Sintaxis
MessageAdd( Messages-in:&Messages, in:&MsgStr)
&Messages : Colección de mensajes
&MsgStr : Texto del mensaje a agregar
Ejemplo
MessageAdd ( &Messages, "Contraseña no válida")
MessagesLog
Propósito
Genera Log con toda una colección de mensajes.
Para profundizar en la generación de logs con StoneFramework, revisar el proc. SGP_System_LogAdd
Sintaxis
MessagesLog( Character-in:&Program, LogLevels-in:&LogLevels, Messages-in:&Messages)
- &Program: Programa que genera el log. Típicamente &Pgmname
- &LogLevels: Nivel de log (DEBUG, INFO, WARN, etc.)
- &Messages: Colección de mensajes a registrar
Ejemplo
Se utiliza por ejemplo en los casos donde no queremos que el usuario vea los mensajes generados por un Business Component, pero si lo queremos tener un registro para saber que sucedió.
En el ejemplo tenemos el BC Cliente:
&ClienteBC = new()
&ClienteBC.Nombre = "John Doe"
&ClienteBC.Save()
If &ClienteBC.Success()
commit
else
// Se genera log de los mensajes retornados por el BC
MessagesLog( &Pgmname, LogLevels.WARN, &ClienteBC.GetMessages())
// Se retorna una mensaje particular al cliente
MessageAdd( &Messages, "Error al crear el cliente")
endif
MessagesShow
Propósito
Despliega en pantalla una colección de mensajes.
Tanto si se está utilizando un BC en la interface o si recibimos una colección de mensajes, generalmente tenemos que realizar una recorrida por cada uno para ir mostrando cada mensaje. Esto nos lleva a repetir el mismo código en varios lados e incluir variables extra en nuestras interfaces.
Este procedimiento simplifica ésta tarea.
Sintaxis
MessagesShow( Messages-in:&Messages)
&Messages : Colección de mensajes
Ejemplo
&ClienteBC = new()
&ClienteBC.Nombre = "John Doe"
&ClienteBC.Save()
if &ClienteBC.Success()
Commit()
else
MessagesShow.Call(&ClienteBC.GetMessages())
endif
OnlyNumbers
Propósito
Permite extraer los números existentes en un texto.
Sintaxis
OnlyNumbers( Character-in:&strin, Character-out:&Numbers)
- &strin : Texto a procesar
- &Numbers : Números encontrados en &strin
Ejemplo
&Numbers = OnlyNumbers( "MI CI ES 1.223.444/6")
Resultado:
&Numbers = "12234446"
OnlyPhoneChars
Propósito
Retorna los caracteres válidos para un teléfono desde una cadena de caracteres.
Sintaxis
OnlyPhoneChars( Character-in:&strin, Character-out:&Numbers)
- &strin : Texto a procesar
- &Numbers : Números encontrados en &strin
Ejemplo
&Numbers = OnlyPhoneChars( "MI CI ES +1.223.444/6")
Resultado:
&Numbers = "+12234446"
Repeat
Propósito
Repite una secuencia de caracteres N veces.
Es una extensión de la función "Space" que repetía N veces un espacio.
Sintaxis
Repeat( Character-in:&Sequence, Numeric-in:&RepeatTimes, Character-out:&TextOut)
- &Sequence: Secuencia de caracteres a repetir
- &RepeatTimes: Número de veces para repetir la secuencia
Retorno:
&TextOut : Cadena de caracteres con la secuencia repetida.
Ejemplo
&TextOut = Repeat ( "abc.", 3)
Resultado:
&TextOut = "abc.abc.abc."
ValidChars
Propósito
Extrae los un conjunto de caracteres de un texto determinado.
Sintaxis
ValidChars( Character-in:&group, Character-in:&textin, Character-out:&validchars)
- &group: Conjunto de caracteres a extraer
- &textin: Texto a revisar
Retorno:
&validchars : Caracteres extraídos de &textin
Ejemplo
&validchars = ValidChars( "aeiou", "esto es una prueba")
Resultado:
&validchars = "eoeuauea"
PasswordGenerate
Propósito
Genera una contraseña aleatoria según parámetros.
Sintaxis
ValidChars( Character-in:&group, Character-in:&textin, Character-out:&validchars)
- &Length: Largo
- &HasLetters: Contiene letras
- &HasNumbers: Contiene números
- &ExtraAlphabet: Cadena con caracteres extras del usuairo
- &IsCaseSensitive: Genera contraseña con mayúsculas y minúsculas
Retorno:
&Password : Contraseña generada
Ejemplo
&Password = PasswordGenerate( 5, true, true, '', true)
Resultado:
&Password = "AeiO5"