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

minilogowi


seta 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 func 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:

dateformatFunção para formatação de valores data.  
decodeDESFunção que decodifica uma sequência de caracteres usando o algoritmo DES.  
encodeDESFunção que codifica uma sequência de caracteres usando o algoritmo DES.  
evalFunção que realiza a avaliação de uma expressão numérica.  
fileCopyFunção que realiza a cópia de um arquivo.  
htmlFilterFunção que remove de um texto as tags HTML nele contidas.  
ifFunção que realiza um teste de condição e retorna um valor a depender do resultado da avaliação.  
md5Função que retorna o hash de um valor usando o algoritmo MD5.  
numberformatFunção para formatação de valores numéricos.  
pieceFunção que retorna uma substring baseada em um delimitador.  
randomFunção para geração de números aleatórios.  
textformatFunção para formatação de valores texto.  
wi.context   Função que realiza um dump no contexto do WebIntegrator.