EXECUTE FORMULA
EXECUTE FORMULA ( instruçao )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
instruçao | Text | → | Código a executar |
Descrição
EXECUTE FORMULA executa instrução como uma linha de código e opcionalmente, devolve seu valor resultante em result. Este comando está desenhado para ser utilizado quando necessitar avaliar expressões que o usuário possa construir ou modificar.
A string instruçao deve ser uma linha de código.[#/descv] Se instruçao for uma string vazia,EXECUTE FORMULA não faz nada. A regra geral é que se instrução puder ser executada como um método de uma-linha, então será executado propriamente. Use EXECUTE FORMULA apenas eventualmente, pois pode desacelerar a velocidade de execução. Em um banco de dados compilado, a linha de código não é compilada. Isso significa que instrução será compilada, mas não será verificada pelo compilador no momento da compilação.
Nota: a execução de fórmulas em modo compilado pode ser otimizada utilizando uma memória caché (ver [#cmd id="63" anchor="2882913"/] abaixo).
A instrução pode estar em:
-
uma chamada a um método de projeto
-
uma chamada a um comando 4D
-
uma tarefa
Notas:
- Se l instrução for um método projeto, se recomenda utilizar EXECUTE METHOD que lhe permite passar parâmetros.
- Não se recomenda chamar a nenhum comando de declaração de variável como C_DATE em instrução já que pode gerar conflitos no código.
A fórmula pode incluir variáveis de processo e variáveis entre processos. Entretanto, a declaração não pode conter o controle das instruções de fluxo (If, While, etc.), já que deve estar em uma linha de código.
Para garantir que a instrução seja avaliada corretamente, independentemente da linguagem 4D ou a versão utilizada, se recomenda utilizar a sintaxe de token para os elementos cujo nome possa variar entre diferentes versões (comandos, tabelas, campos, constantes). Por exemplo, para inserir o comando [#cmd id="178"/], introduza 'Current time:C178'. Para saber mais, consulte Usar tokens em fórmulas.
Cache para formulas em modo compilado
Por otimização, cada fórmula executada vía EXECUTE FORMULA em modo compilado pode ser armazenada em uma memória caché na memória dedicada. A fórmula é armazenada em caché em forma tokenizada. Uma vez que se coloca na caché, suas execuções posteriores estão altamente otimizadas já que o passo de tokenização se evita.
O tamanho da cache é zero como padrão (sem caché); deve ser criada ou ajustada com o comando SET DATABASE PARAMETER. Por exemplo:
SET DATABASE PARAMETER(Number of formulas in cache;0) //sem caché de fórmulas
SET DATABASE PARAMETER(Number of formulas in cache;3) //até três fórmulas podem ser armazenadas em cache para cada processo
O comando EXECUTE FORMULA utiliza a caché só quando se chama desde um banco de dados ou componente compilado.
Exemplo
Se quiser executar instruções usando chamadas para comandos 4D e tabelas. Já que esses elementos poderiam ser renomeados, pode-se garantir a correta execução em versões futuras de seu aplicativo ao usar a sintaxe token, como mostrado abaixo:
EXECUTE FORMULA("Year of:C25 ([Products:5]Creation_Date:2])+$add")
Ver também
Command name
EDIT FORMULA
SET DATABASE PARAMETER
Propriedades
Número do comando | 63 |
Thread-seguro | ✓ |