Tags
Hoje no BPEL não existe uma função especifica para que possamos trabalhar diretamente com Regex (Regular Expression) no BPEL, por isso irei demonstrar neste Post uma das maneiras que podemos fazer para aplicar uma Regex à um processo.
Neste exemplo iremos basicamente passar um valor ao nosso BPEL e validaremos estes valores através do Regex.
Para nossos testes crie um projeto chamado RegexBpel
Dentro do nosso Composite.xml adicione um BPELProcess chamado RegexBPELProcess
Dentro do seu RegexBPELProcess adicione um Transformation e dê o nome de Transform_Regex
Dê um duplo clique agora sobre o seu Transform_Regex
Em Source adicione seu inputVariable e em Target Variable deixe seu outputVariable e clique em no Sinal de + para abrirmos a Transformation.
Ligue agora seu input com seu result.
Agora vá no Source do seu Transformation e adicione a seguinte linha na declaração de suas namespaces.
xmlns:strClass=”http://www.oracle.com/XSL/Transform/java/java.lang.String”
Agora adicione o trecho de código abaixo do seu <xsl:value-of select=”/client:process/client:input”/>
<xsl:call-template name=”strReplace”>
<xsl:with-param name=”param” select=”/client:process/client:input”/>
</xsl:call-template>
Agora retire sua linha <xsl:value-of select=”/client:process/client:input”/>
Então ficará assim:
Adicione agora o trecho de código abaixo do seu </xsl:template>
<xsl:template name=”strReplace”>
<xsl:param name=”param”/>
<xsl:value-of select=”strClass:replaceAll($param, ‘[^0-9]’, ”)”/>
</xsl:template>
Veja acima que estamos usando a função replaceAll, iremos pegar o que será passado em nosso Input através da variavel $param, aplicaremos a Regex [^0-9] onde não será permitido passarmos qualquer valor que seja diferente do intervalo de números de 0 a 9 e por ultimo através das aspas simples, digo que caso existe estes valores trocaremos por nada, ou seja, irá apenas retirar estes valores.
Faça agora o deploy do seu projeto e vamos aos testes
Direto no EM (Enterprise Manager) do seu BPEL veja abaixo que estou passando os valores
A-1-2%3*4=5
Execute e veja no Response o retorno:
Veja que no meu response foi retirado qualquer valor que passei diferente dos números.
Duvidas ? Deixe seu comentário e faça download deste Projeto
Abraços e até a Próxima
/:-D