Genexus
Referenciado por: Dicas Técnicas | Padrões de Programação em Genexus |
Este artigo lista comandos, funções e métodos úteis para programação em Genexus.
Comandos
São comandos da própria linguagem do Genexus.
Elas normalmente são usadas em Procedures, Transactions e Web Panels.
| Comando | Sintaxe | Propósito |
| Exit | Exit | Interrompe um For Each, um Xfor Each, um Do While ou um For To Step. |
| Return | Return | Interrompe a execução e retorna para a procedure ou página chamadora. Pode ser usado em qualquer ponto do código. |
Funções
São funções da própria linguagem do Genexus.
Elas normalmente são usadas em Procedures, Transactions e Web Panels.
| Função | Sintaxe | Retorno | Propósito |
| CtoT | CtoT(dd/mm/yyyy hh:mm:ss) | DateTime | Retorna data e hora de acordo com o parâmetro. Exemplo: CtoT('25/11/2015 07:59:59') |
| Format | Format("%1 is %2 years old.", "Alex", "26") | string | Permite incluir parâmetros em uma string |
| Len | Len(string) | numeric | Retorna o número de caracteres de uma string |
| Lower | Lower(string) | string | Retorna a string em minúsculo |
| Now | Now() | DateTime | Retorna a data e hora da máquina |
| ServerDate | ServerDate() | Date | Retorna a data do banco de dados |
| ServerNow | ServerNow() | DateTime | Retorna a data e hora do banco de dados |
| ServerTime | ServerTime() | Character(8) | Retorna a hora do banco de dados no formato hh:mm:ss |
| SubStr | Substr( s1, n1, n2 ) | string | Retorna a substring de uma string. Se n2 for 0 ou nulo retorna string em branco. |
| Sysdate | Sysdate() | Date | Retorna a data da máquina |
| Systime | Systime() | Character(8) | Retorna a hora da máquina no formato hh:mm:ss |
| Time | Time() | Character(8) | Retorna a hora da máquina no formato hh:mm:ss |
| Today | Today() | Date | Retorna a data da máquina |
| TtoC | TtoC( datetime-expression [, m [, n]] ) | string | Retorna a string da data. Para obter data e hora: TtoC(&DateTime,10,8) |
| Upper | Upper(string) | string | Retorna a string em maiúsculo |
| Val | Val(string) | numeric | Converte string para número |
Métodos
O Genexus trata as variáveis como objetos.
Com isso, é possível utilizar alguns métodos desses objetos.
Para todos os tipos de objeto
| Método | Sintaxe | Retorno | Propósito |
| IndexOf | var.IndexOf(StrBusca, NumPosIniOpcional) | Numeric | Retorna a posição do caracter a ser pesquisado dentro da objeto se ele for String. A posição inicial ou de retorno começam em 1. Retorna 0 quando não encontrou nada ou a posição inicial é inválida. |
| IsEmpty | var.IsEmpty() | Boolean | Retorna se a variável está vazia. Verifique no wiki do genexus o que é considerado vazio para cada tipo de dado. |
| ToFormattedString | var.ToFormattedString() | String | Retorna a string do número conforme a máscara definida no atributo/variável. |
| ToString | var.ToString() | String | Transformar o conteúdo da variável em string |
Para coleções
| Método | Sintaxe | Retorno | Propósito |
| Clear | colecao.Clear() | Numeric | Limpar coleção. Todos os elementos são deletados. |
| Count | colecao.Count() | Numeric | Retorna a quantidade de registros da coleção |
| Item | colecao.Item(n) | Item da coleção | Retorna o item da coleção. Começa em 1. |
| Sort | colecao.Sort('AtributoA, AtributoB, AtributoC') ou colecao.Sort('(AtributoA), (AtributoB), (AtributoC)') | -X- | Reordena os itens da coleção. O nome das colunas tem que estar exato (inclusive maiúsculas e minúsculas) e ele não avisa se não encontrar a coluna correspondente. Para reordenar em modo decrescente, utilize as colunas entre parênteses. |
Para numéricos
| Método | Sintaxe | Retorno | Propósito |
| Count | colecao.Count() | Numeric | Retorna a quantidade de registros da coleção |
| Length | string.Length() | Numeric | Retorna o número de caracteres da string |
| Integer | num.Integer() | Numeric | Retorna a parte inteira do número |
Para strings
| Método | Sintaxe | Retorno | Propósito |
| Replace | str1.Replace(strDe, strPara) | String | Retorna uma string substituindo todas as ocorrências pela nova string |
| SplitRegEx | string.SplitRegEx(p) | Coleção de Strings | Quebra a string em várias strings de acordo com o delimitador passado como parâmetro. |
| ToLower | string.ToLower() | string | Retorna a string em minúsculo |
| ToUpper | string.ToUpper() | string | Retorna a string em maiúsculo |
| Trim | string.Trim() | String | Remove caracteres em branco antes e depois |
Para tipos estruturados
| Método | Sintaxe | Retorno | Propósito |
| ToXml | obj.ToXml(b) | string | Transforma variável em um XML. Parâmetro opcional para retornar ou não o tag XML. |
Linguagens Nativas
Genexus permite que se execute comandos nas suas respectivas linguagens nativas (SQL, C#, Java, etc.).
| Método | Sintaxe |
| SQL | SQL DELETE FROM CLIENTES |
| JAVA | java [!&Conteudo!] = httpContext.getDefaultPath(); |
| CSHARP | CSHARP GeneXus.Programs.class.funcion([!&msg!]); |
Para passar variáveis para os comandos em linguagens nativas, utilize a seguinte sintaxe:
&Role = "MyRole" SQL SET ROLE TO [!&Role!]
Java
Tratamento de exceção
Para tratar exceções no GeneXus usando código Java nativo, utilize a seguinte sintaxe:
Java try { // Código em Genexus Java } catch(Exception e){ [!&Erros!] = e.getMessage(); } If not &Erros.IsEmpty() // Tratar o erro Endif