Tutorial de Funções | Início Anterior Próximo

Tutorial de Funções

Uma função definida pelo usuário no WebIntegrator é uma classe Java que implementa a interface br.com.itx.integration.InterfaceFunction e que deve estar devidamente registrada pelo WI Builder.
A interface br.com.itx.integration.InterfaceFunction declara apenas o método execute(Hash wiMap, String[] args) cujo argumento contém os parâmetros que foram passados para a função. O código-fonte da interface segue abaixo:
package br.com.itx.integration;
public interface InterfaceFunction {
public String execute(WIMap wiMap, String[] args);
}
Logo abaixo segue um exemplo de implementação de uma função que retornará o valor passado como parâmetro, caso nenhum ou mais de um parâmetro seja passado a função retornará uma mensagem informando que foi passada uma quantidade incorreta de parâmetros.
import br.com.itx.integration.InterfaceFunction;
public class WIMensagem implements InterfaceFunction {
private static final String MSG = "Oops! Quantidade incorreta de parâmetros.";
public String execute(WIMap wiMap, String[] args) {
return (args.length == 0 || args.length > 1) ? WIMensagem.MSG : args[0];
}
}
Após compilar a classe Java que implementa a lógica de sua função coloque o arquivo compilado (arquivo com a extensão .class) no repositório de classes específico de um projeto ou no repositório de classes comum ao web container que você estiver utilizando. Se você criou a sua função dentro de um pacote (package) lembre-se de criar a estrutura de diretórios correspondente.
As funções que forem instaladas no repositório de classes de um projeto apenas poderão ser utilizada no projeto específico onde foi instalada. Já aquelas que forem instaladas no repositório comum ao web container ficarão disponíveis a todos os projetos.
Para registrar a função acesse o WI Builder e escolha a opção do menu Opções e indique o nome completo da classe e o nome pelo qual ela será chamada dentro dos projetos do WebIntegrator. Para registrar a função acima poderíamos usar os seguintes dados:

Nome: | msg

Classe:
WIMensagem
Agora você poderá executar a função msg implementada pela classe WIMensagem dentro do WebIntegrator bastando digitar |$msg("<mensagem>")$|. Sempre que você quiser usar uma função a sintaxe é:
|$<nome-da-função>([<parâmetro-#1>,...])$|
Caso um dos parâmetro a ser passado para a função contenha vírgula em seu conteúdo use a barra invertida (\) antes do sinal de vírgula para informar ao WI Engine que não se trata da vírgula como separadora de parâmetros e dessa forma evitando que a função receba parâmetros inesperados ou incorretos. Por exemplo, caso quiséssemos passar a mensagem "1, 2, 3, testando..." para a função msg a sintaxe seria:
|$msg(1\, 2\, 3\, testando...)$|
Junto com a distribuição do WebIntegrator seguem algumas funções já implementadas, são elas:

dateformat

Função para formatação de valores data.

decodeDES | Função que decodifica uma sequência de caracteres usando o algoritmo DES.

encodeDES | Função que codifica uma sequência de caracteres usando o algoritmo DES.

eval | Função que realiza a avaliação de uma expressão numérica.

fileCopy | Função que realiza a cópia de um arquivo.

htmlFilter | Função que remove de um texto as tags HTML nele contidas.

if | Função que realiza um teste de condição e retorna um valor a depender do resultado da avaliação.

md5 | Função que retorna o hash de um valor usando o algoritmo MD5.

numberformat | Função para formatação de valores numéricos.

piece | Função que retorna uma substring baseada em um delimitador.

random | Função para geração de números aleatórios.

textformat | Função para formatação de valores texto.

wi.context Função que realiza um dump no contexto do WebIntegrator.